打印
[家电应用]

I2C总线多主模式下的仲裁丢失

[复制链接]
945|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SophiaOP|  楼主 | 2025-3-24 08:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在双主设备I2C通信中,当两设备同时发起数据传输时,偶尔出现总线仲裁失败,导致通信死锁。通过逻辑分析仪发现,SCL线在仲裁过程中被异常拉低,且SDA线数据不一致,但硬件未产生仲裁丢失中断,需软件实现超时检测和总线恢复机制。

使用特权

评论回复
沙发
lidi911| | 2025-3-24 08:21 | 只看该作者
你用的硬件IIC还是软件IIC呢?

使用特权

评论回复
板凳
中国龙芯CDX| | 2025-3-24 22:34 | 只看该作者
建议使用主从设计通讯

使用特权

评论回复
地板
星辰大海不退缩| | 2025-3-27 13:06 | 只看该作者
硬件未产生仲裁丢失中断,需软件实现超时检测和总线恢复机制

使用特权

评论回复
5
分形梦想家| | 2025-4-2 18:18 | 只看该作者
这种情况也很可能是从设备混乱了。

使用特权

评论回复
6
stormwind123| | 2025-4-8 14:02 | 只看该作者
建议用合适的上拉电阻值,通常为4.7kΩ至10kΩ。

使用特权

评论回复
7
powerantone| | 2025-4-8 14:03 | 只看该作者
使用具有仲裁丢失检测和恢复功能的I2C控制器。
在总线上添加滤波电容,减少噪声干扰。

使用特权

评论回复
8
laocuo1142| | 2025-4-8 18:00 | 只看该作者
如果主设备的时钟频率不同,可以考虑使用较低的时钟频率进行通信。

使用特权

评论回复
9
flycamelaaa| | 2025-4-9 14:00 | 只看该作者
用优先级机制,为不同的主设备分配不同的优先级,高优先级设备在仲裁中具有更高的获胜概率。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

288

帖子

0

粉丝