STM32/STM8技术论坛
直播中

李如昊

7年用户 212经验值
私信 关注
[问答]

请问一条IIC总线挂接多个器件发现工作不正常是什么问题

       一条IIC总线挂接了AT24C02、PCF8563、PCF8591,发现AT24C02干扰其他两个器件正常工作,无论如何修改AT24C02的器件地址其他两个设备都不能正常工作,拆掉24C02后就就正常了(AT24C02可以正常工作不受其他两个芯片影响)。大家有没有遇到同样问题?我记得以前用过24LCxx系列IIC可以。

回帖(6)

李维嘉

2018-8-14 08:29:27
这个没道理呀,查检下程序,抓一下波形看看。
是用的MCU硬件I2C接口,还是IO模拟的。建议用IO模拟的试试,IO模拟时序和逻辑更可控些。
举报

李如昊

2018-8-14 08:35:15
引用: zhouxk 发表于 2018-8-14 08:29
这个没道理呀,查检下程序,抓一下波形看看。
是用的MCU硬件I2C接口,还是IO模拟的。建议用IO模拟的试试,IO模拟时序和逻辑更可控些。

总线挂接3个IIC设备时只有AT24C02能正常读写,去掉AT24C02后其他两个器件就可以正常读写。3个IIC设备的器件地址不重复分别是(0XA0,0XA1)  (0XA2,0XA3  (0XAE,0XAF)。核心问题是无论发送器件地址是多少AT24C02都可以正常读写数据而其他两个设备必须发送正确的器件地址才会回应!所以是24C02影响了其他两个IIC设备通讯。
举报

李维嘉

2018-8-14 08:50:08
引用: leoleesir 发表于 2018-8-14 08:35
总线挂接3个IIC设备时只有AT24C02能正常读写,去掉AT24C02后其他两个器件就可以正常读写。3个IIC设备的器件地址不重复分别是(0XA0,0XA1)  (0XA2,0XA3  (0XAE,0XAF)。核心问题是无论发送器件地址是多少AT24C02都可以正常读写数据而其他两个设备必须发送正确的器件地址才会回应!所以是24C02影响了其他两个IIC设备通讯。 ...

这样理解好像不妥,有个叫停止位的东西,还有I2C总线复位。
还是好好理解一下你的I2C时序吧。
举报

李如昊

2018-8-14 08:56:07
引用: zhouxk 发表于 2018-8-14 08:50
这样理解好像不妥,有个叫停止位的东西,还有I2C总线复位。
还是好好理解一下你的I2C时序吧。

低级的错误我不可能犯!不过问题已经解决,咨询了代理给的答案是Atmel有一批次的EEPROM有问题正好我购买的是那一批次同时也有很多厂家反映了相同问题。目前用PIC24CXX替换了AT24CXX解决了问题。
举报

龙旭

2018-8-14 09:14:15
虚惊啊,我同时使用同一地址的IIC器件,用了一个IC中转,用的HAL库暂时稳定性OK
举报

陈斌

2018-8-14 09:34:03
引用: 脑洞大赛20 发表于 2018-8-14 09:14
虚惊啊,我同时使用同一地址的IIC器件,用了一个IC中转,用的HAL库暂时稳定性OK

你好,请问用IC中转是个什么东西,有什么目的呢,目前我的器件为IIC通讯,模拟的IIC,由于几个同时要用到,频率不能满足那,就是想能否找到可以有什么中转的可以同步使用的呢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分