×

I2C接口进入Busy状态不能退出怎么办

消耗积分:0 | 格式:pdf | 大小:0.12 MB | 2023-08-02

陈存楼

分享资料个

问题: 该问题由某客户提出,发生在 STM32F103VDT6 器件上。据其工程师讲述:在其产品设计中,使用了 STM32 的一个 I 2 C 接口与一个 EEPROM 通信。在系统靠性测试中发现,经过长时间运行后,STM32 会 出现不能读写 EEPROM 的现象。通过 NRST 管脚对 STM32 进行复位,复位后该现象依旧存在。关掉电 源,然后重新上电,现象消失。通过进一步测试发现,如果对 STM32 反复做复位操作,会很容易复现 这一现象。
调研: 修改软件,通过打印监控 I 2 C 通信程序的流程,及 I2C 接口的各个寄存器的状态。当出 现上述现象时,I 2 C 接口的状态寄存器 SR2 中的 Busy 位置‘1’,状态寄存器 SR1 中的 ARLO 位置‘1’。用示波器观察 I 2 C 总线,发现其 SCL 为高电平,SDA 为低电平。将 STM32 的复位脚拉到地,SCL 及 SDA 的状态不变。检查原理图,确认 I 2 C 总线上只有 STM32 和 EEPROM 两颗器件。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !