[STM32L0] I2C读写偶尔超时,怀疑是仲裁丢失引起的

[复制链接]
85|10
万图 发表于 2025-11-6 07:15 | 显示全部楼层 |阅读模式
单主机模式下访问EEPROM,偶尔会卡在busy状态不退出。逻辑分析仪显示SCL停在低电平,像是总线被谁“占住”了。复位I2C外设后恢复正常。
Clyde011 发表于 2025-11-6 07:19 | 显示全部楼层
或者在上电后延迟一点再开始通信。
公羊子丹 发表于 2025-11-6 07:21 | 显示全部楼层
我之前的确遇过EEPROM释放总线慢的问题。
周半梅 发表于 2025-11-6 07:22 | 显示全部楼层
可以在超时后手动产生时钟脉冲让设备释放。
帛灿灿 发表于 2025-11-6 07:22 | 显示全部楼层
I2C这玩意儿真是脾气大,尤其是低速设备。
童雨竹 发表于 2025-11-6 07:23 | 显示全部楼层
是不是拉电阻太小?可能下拉太强了。
 楼主| 万图 发表于 2025-11-6 07:24 | 显示全部楼层
有的EEPROM在写周期中不应答,你要等它内部写完。
Wordsworth 发表于 2025-11-6 07:26 | 显示全部楼层
我加了个超时检测,每次死锁就重新初始化I2C。
Bblythe 发表于 2025-11-6 07:27 | 显示全部楼层
有时候设备没上电完全就开始通讯也会这样。
Pulitzer 发表于 2025-11-6 07:28 | 显示全部楼层
我觉得可以用软件I2C先验证下现象是不是硬件问题。
Uriah 发表于 2025-11-6 07:29 | 显示全部楼层
换条短点的线试试,I2C线长确实会影响稳定性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

192

主题

6454

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部