0
收藏
微博
微信
复制链接

I2C卡在等待应答,上拉电阻白焊了?

2026-06-26 09:59
56

上拉电阻焊了,示波器也能看到波形,但程序就是卡在HAL_I2C_Master_Transmit的ACK等待里。问题往往不在电阻本身。

11.png

1、电阻焊了不等于电路通了

上拉电阻的作用是把SDA和SCL拉到高电平。但很多人忽略了一个事实:电阻两端必须真正连到VDD。

用万用表量一下电阻上端电压。如果是0V,说明过孔没打通,或者VDD网络根本没连到那颗电阻。焊了不等于通了。

2、比电阻更常见的四个坑

坑一:从机地址错了。 7位地址和8位地址搞混是最高频的错误。HAL库默认用7位左移一位,如果你的器件手册写的是8位地址,直接差一位,从机永远不应答。

坑二:从机没供电。 SDA和SCL有波形,但从机芯片的VDD没接。从机内部电路没工作,自然不会拉低SDA来应答。先量从机电源引脚。

坑三:时钟速度太快。 新手上来就配400kHz,线缆长一点、寄生电容大一点,上升沿就变形,从机根本来不及拉低SDA。降到100kHz试试,立刻恢复。

坑四:总线被多主机抢占。 两个主设备同时操作总线,仲裁失败的一方会一直等ACK。确认系统里只有一个I2C主机在工作。

3、快速排查顺序

先量从机供电,再核对地址位数,接着降速测试,最后用示波器看SDA在第9个时钟是否被拉低。按这个顺序,十分钟内必定位。


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

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

电路之家

专注电子、科技分享,对电子领域深入剖解

开班信息