I2C设备初始化阶段经常NACK的问题分析
系统启动后I2C设备偶尔NACK,重启后又正常。像是启动顺序的问题,但我已经加了延时。想知道是不是L4的I2C硬件在上电初期比较敏感?L476的I2C比F系列复杂一点,注意时序寄存器。 我之前加个100ms延时彻底好了。 确实,L4的I2C在冷启动时挺挑剔。 有时主机先发了启动信号,设备还没醒。 可以试试加电后先扫描一遍设备确认状态。 我遇到过设备端上拉电阻太大导致的。 也可能是电源电容太小,稳压慢了点。 建议用示波器看下SCL、SDA的上升沿。 我加了I2C复位逻辑防止死锁。 有时候是I2C总线残留状态,手动清下寄存器。
页:
[1]