news 2026/7/30 11:57:58

[其他ST产品] STM32 IIC总线死锁问题总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[其他ST产品] STM32 IIC总线死锁问题总结

简介我们这个项目是一款移动电源设备,该设备在不工作的时候,在调试过程中发现,在设备休眠时不断的唤醒设备,会偶发设备死机现象,怎么操作设备都没有反应。

问题点:
现象:当设备死机时,我们发现这时候IIC死锁了,也就是SDA, SCL电平都为低电平,无法通信。

问题:偶发唤醒的时候,IIC通信挂掉,MCU出现死机现象?
案例中设备是低功耗设备,设备休眠时会关闭IIC上拉电源,以降低功耗,外部从机有2个。

一、先分析软件层面
当IIC死锁复现时,首先确认两个问题:
1.用STM32CubeProgrammer读取寄存器状态数据,IIC配置时要把故障中断使能,TCIE和ERRIE标志为1,则表示故障中断已配置。



I2C_CR1的寄存器TCIE和ERRIE


配置IIC故障[color=rgb(78, 161, 219) !important]中断,可以手动加入程序中:



2.PE标志位置1就是说明IIC已经使能,等效于__HAL_I2C_ENABLE(&hi2c1);BUSY标志位置1说明硬件已经开始,没有问题。




IIC寄存器数据没有问题,说明软件是OK的,那么,再从硬件角度分析。

二、分析硬件
1.IIC上拉电源是否稳定?
2.IIC上拉电阻阻值是否合适?一般1~10K。
3.IIC电源的电容是否过大?
4.一主多从通信,是否都为读数据?如果有一路有写数据,要分时去通信,避免数据交叉通信。
5.主机、从机是否都为硬件IIC?
经过以上排查,基本问题可以解决。
最终经过和供应商技术支持沟通,问题出在STM32的IIC是硬件IIC,而充电管理IC的IIC是软件模拟IIC,这就是硬件IIC和模拟IIC通信,时序无法保证一致,当软件模拟的IIC应答超时,硬件IIC就会进入死锁状态,现象就是死机。

重要提示:IIC总线通信时,如果设计为一主多从时,主机为硬件IIC,从机也得是硬件IIC,从机是软件模拟IIC时,那么主机最好也设计为模拟IIC,否则,在写数据时有可能会出现总线死锁。
另外,一主多从通信时,最好都是只读数据,如果有一个从机有写数据,要单独一路IIC通信。因为两个从机在一个总线上,当一个从机被写的时候,同样另一路从机也在总线上,虽然从机地址不同,但是也有一定风险。



---------------------
作者:liao6
链接:https://bbs.21ic.com/icview-3492538-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 14:50:58

Motrix WebExtension:重构浏览器下载体验的效率革命

Motrix WebExtension:重构浏览器下载体验的效率革命 【免费下载链接】motrix-webextension A browser extension for the Motrix Download Manager 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 在数字化工作流中,下载管理往…

作者头像 李华
网站建设 2026/7/14 14:51:00

用于X射线成像的单光栅干涉仪

摘要X射线成像通常是基于Talbot效应,以及光栅的周期性自成像。按照N. Morimoto等人的工作,我们选择了三种类型的相位光栅,有十字、棋盘和网状图案。这些光栅在一个单一的光栅干涉仪中被采用,被建模为仅有相位的传输函数&#xff0…

作者头像 李华
网站建设 2026/7/14 14:51:01

Firecrawl批量抓取实战解析:千级URL并发处理与架构深度优化

Firecrawl批量抓取实战解析:千级URL并发处理与架构深度优化 【免费下载链接】firecrawl 🔥 Turn entire websites into LLM-ready markdown 项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl 当面对大规模网页数据采集任务时&#xf…

作者头像 李华
网站建设 2026/7/14 14:51:02

2026 AI 应用的“最后一公里”:OpenClaw 与星链4SAPI 的协同实战

一、从“模型过剩”到“调用困境”:2026年开发者的真实焦虑2026年,人工智能领域已迈入“模型爆发”的深水区。Claude-Opus 4.6 凭借其无与伦比的逻辑推理能力,成为复杂任务的首选;Kimi K2.5 在超长文本理解与深度思考上的表现&…

作者头像 李华