[STM32L4] 低功耗唤醒后I2C外设不响应,像是总线死锁

[复制链接]
195|10
Wordsworth 发表于 2025-11-8 07:18 | 显示全部楼层 |阅读模式
进入STOP2模式后用RTC唤醒,I2C设备不再响应,SCL和SDA都拉低。复位后恢复正常。看起来像I2C外设没有重新初始化成功,或者外设电源域没完全恢复。
Clyde011 发表于 2025-11-8 07:22 | 显示全部楼层
可以把I2C时钟源改成HSI,看稳定不稳定。
公羊子丹 发表于 2025-11-8 07:23 | 显示全部楼层
L4这类芯片休眠后要手动重新enable I2C时钟。
周半梅 发表于 2025-11-8 07:24 | 显示全部楼层
我用I2C1的时候,唤醒后必须先软复位I2C外设。
帛灿灿 发表于 2025-11-8 07:25 | 显示全部楼层
SDA拉低说明可能有设备在hold总线。
童雨竹 发表于 2025-11-8 07:26 | 显示全部楼层
也可能是MCU没释放GPIO复用,变成普通输出了。
万图 发表于 2025-11-8 07:28 | 显示全部楼层
我加了个I2C总线恢复函数,每次上电前先发9个时钟。
 楼主| Wordsworth 发表于 2025-11-8 07:29 | 显示全部楼层
有时RTC唤醒太快,外设电源还没起来。
Bblythe 发表于 2025-11-8 07:30 | 显示全部楼层
HAL库自带的Stop模式恢复不太完善,建议自己处理。
Pulitzer 发表于 2025-11-8 07:31 | 显示全部楼层
试着在唤醒后延时个10ms再初始化I2C。
Uriah 发表于 2025-11-8 07:32 | 显示全部楼层
我印象中有个Errata提过这个问题,你查查。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

6500

帖子

1

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