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总线的硬件解析

相关文章
|
29天前
|
消息中间件 缓存 中间件
缓存一致性问题,这么回答肯定没毛病!
缓存一致性问题,这么回答肯定没毛病!
|
6月前
|
编解码 网络协议
Kitex踩坑记录,Kitex超时控制问题
Kitex踩坑记录,Kitex超时控制问题
Kitex踩坑记录,Kitex超时控制问题
|
6月前
|
小程序 前端开发
怎么解决小程序的异步请求问题?
怎么解决小程序的异步请求问题?
85 1
|
6月前
|
前端开发 UED
面试官:【后端一次性返回10万条数据怎么处理/后端发送大数据量的数据如何处理】
面试官:【后端一次性返回10万条数据怎么处理/后端发送大数据量的数据如何处理】
131 0
|
微服务
什么是服务雪崩,怎么解决这个问题?
什么是服务雪崩,怎么解决这个问题?
250 0
|
JavaScript 前端开发 Java
干货|各种语言是怎么处理时间的?以及常见的 bug
干货|各种语言是怎么处理时间的?以及常见的 bug
122 0
|
消息中间件 存储 网络协议
大厂都是如何处理重复消息的?
消息消费失败,很多框架会自动执行重试,而重试就产生了重复消息。 MQTT协议给出三种传递消息时能够提供的
277 0
|
设计模式 Kubernetes 算法
leader说用下httpclient的重试,但我没用,因为我有更好的方案。
leader说用下httpclient的重试,但我没用,因为我有更好的方案。
189 0
|
消息中间件 关系型数据库 MySQL
|
编译器
rpath失效是怎么回事
rpath失效是怎么回事
117 0