I2C误码了怎么处理

简介: I2C误码了怎么处理

我相信不少人有遇到I2C设备识别不到,或者概率性误码。


我相信大部分工程师的做法如下:

1.调整上拉电阻的大小,然后重新老化测试;

2.降低I2C速率,然后老化测试;

3.软件加入一定判断条件,将能剔除的误码剔除掉。

       

站在硬件角度来看:


第一点,盲目调整,没有调整依据。

第二点,降低I2C速率可能影响使用体验,例如触摸屏应用;降低I2C速率并不能保证就OK。

第三点,软件并不能完全剔除掉误码。

       

所以此文章推荐硬件接入做I2C的信号测试。下面列举了I2C的Standard-mode,Fast-mode,Fast-mode Plus,Hs-mode,Ultra Fast-mode各个模式信号的要求。

Standard-mode,Fast-mode,Fast-mode Plus:

       

640.png640.png640.png


Hs-mode


640.png640.png640.png


Ultra Fast-mode

640.png640.png640.png

       

从上可知,信号要求一般有电平大小、电平宽度、速率、上升下降时间、建立时间、保持时间。所以我们应该先保证自己板上的I2C信号符合标准要求后,再去做其他排查或者规避措施。


如下是我列出的Standard-mode,Fast-mode测试表,如下:


Standard-mode

640.png


Fast-mode

640.png


咋们只需要填写黄色部分,如信号名、电平以及测试结果,则可以自动得出是否测试通过。

当然也建议各位可以导入到公司的硬件测试中,很多公司都是有在做这个测试的。

测试表文件可以后台回复“硬件人-I2C测试表”获取。


推荐阅读:

IIC总线的硬件解析

相关文章
|
6月前
|
数据库 开发者
Seata调用问题之全局异常捕获没法回滚如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
504 6
|
1月前
|
消息中间件 缓存 中间件
缓存一致性问题,这么回答肯定没毛病!
缓存一致性问题,这么回答肯定没毛病!
|
6月前
|
编解码 网络协议
Kitex踩坑记录,Kitex超时控制问题
Kitex踩坑记录,Kitex超时控制问题
Kitex踩坑记录,Kitex超时控制问题
|
6月前
|
小程序 前端开发
怎么解决小程序的异步请求问题?
怎么解决小程序的异步请求问题?
88 1
|
6月前
|
前端开发 UED
面试官:【后端一次性返回10万条数据怎么处理/后端发送大数据量的数据如何处理】
面试官:【后端一次性返回10万条数据怎么处理/后端发送大数据量的数据如何处理】
137 0
|
消息中间件 存储 资源调度
订单超时怎么处理?我们用这种方案
在电商业务下,许多订单超时场景都在24小时以上,对于超时精度没有那么敏感,并且有海量订单需要批处理,推荐使用基于定时任务的跑批解决方案。
1572 5
订单超时怎么处理?我们用这种方案
|
微服务
什么是服务雪崩,怎么解决这个问题?
什么是服务雪崩,怎么解决这个问题?
252 0
|
NoSQL Java 数据库
java接口防重提交如何处理
举一个最简单的例子:日常开发中crud在业务系统中普遍存在,在服务端没有做任何处理,客户端没有做节流、防抖等限流操作时,同一秒一个用户点了两次新增按钮,导致数据库中存在同样两条数据,其结果可想而知,同理修改、删除同样的道理;查询本身具有幂等性,但是在同一秒钟同样的操作,查询多次和一次,有区别吗?区别大了去了,不谈用户体验如何,光是网络开销、流量占用、带给服务器的压力等等,生产中一点小的问题,如何不及时处理,可能会引发灾难性bug。
|
数据采集 Python
python爬虫怎么解决超时timeou错误
python爬虫怎么解决超时timeou错误
|
设计模式 Kubernetes 算法
leader说用下httpclient的重试,但我没用,因为我有更好的方案。
leader说用下httpclient的重试,但我没用,因为我有更好的方案。
191 0