在之前的工作中遇到一次IIC总线的问题:一个主设备和两个从设备使用的一路硬件IIC的环境下,当分别加载两个从设备驱动的时候,出现了IIC总线中的SDA被一直拉低,SCL有周期性的毛刺
(图中SDA是黄色线,SCL是蓝色线)
细节图:

用逻辑分析仪抓取的:

其中一个从设备是ATmel系列芯片,而问题就是出在Atmel的硬件IIC中。
经分析,在Atmel发送数据时产生了一个冲突,而在冲突的处理函数中,这里直接重新初始化IIC。

本文探讨了在一路硬件IIC环境下,主设备与两个从设备间出现的SDA持续拉低及SCL周期性毛刺问题。通过分析Atmel芯片的硬件IIC冲突处理,发现重新初始化IIC导致时钟混乱和SDA占用。修改冲突处理函数,仅进行打印通知并由主机过滤数据,解决了后续帧数据问题。
在之前的工作中遇到一次IIC总线的问题:一个主设备和两个从设备使用的一路硬件IIC的环境下,当分别加载两个从设备驱动的时候,出现了IIC总线中的SDA被一直拉低,SCL有周期性的毛刺
(图中SDA是黄色线,SCL是蓝色线)
细节图:

用逻辑分析仪抓取的:

其中一个从设备是ATmel系列芯片,而问题就是出在Atmel的硬件IIC中。
经分析,在Atmel发送数据时产生了一个冲突,而在冲突的处理函数中,这里直接重新初始化IIC。


被折叠的 条评论
为什么被折叠?