凡亿教育-婷婷
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | I2C卡等待应答,别只怪上拉电阻
I2C卡等待应答,别只怪上拉电阻

嵌入式调试I2C通信时,经常卡在循环等待从机应答的死循环里,反复检查电路确认上拉电阻已经焊好,还是通信失败。问题不全是上拉电阻的锅,很多隐性细节没处理好就会导致无应答。

4.png

1. 上拉电阻阻值不匹配

上拉电阻选得太大,总线上升沿速度太慢,超过I2C协议规定的时序阈值。

总线电平无法在规定时间内拉高到识别阈值,主机会误判从机没有发出应答信号。

2. 从机地址配置冲突

代码里写的7位从机地址,和硬件芯片手册标注的地址偏移了一位。

主机发送的地址和从机实际地址完全不匹配,从机根本不会响应,主机自然收不到应答。

3. GPIO模式配置错误

把I2C引脚配置成了推挽输出模式,而不是开漏输出模式。

两个推挽引脚直接对拉,总线电平被强制钳位,无法正常完成双向应答握手。

4. 硬件隐性故障排查

用示波器抓总线波形,确认SDA和SCL的上升沿时间在规定范围内。

核对从机供电引脚电压,部分传感器供电不足时,会完全不响应I2C指令,导致主机一直卡等待应答。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论