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

2019-07-14 18:34发布

       一条IIC总线挂接了AT24C02、PCF8563、PCF8591,发现AT24C02干扰其他两个器件正常工作,无论如何修改AT24C02的器件地址其他两个设备都不能正常工作,拆掉24C02后就就正常了(AT24C02可以正常工作不受其他两个芯片影响)。大家有没有遇到同样问题?我记得以前用过24LCxx系列IIC可以。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
leoleesir
1楼-- · 2019-07-15 00:08
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设备通讯。
zhouxk
2楼-- · 2019-07-15 01:21
leoleesir 发表于 2018-8-14 08:35
总线挂接3个IIC设备时只有AT24C02能正常读写,去掉AT24C02后其他两个器件就可以正常读写。3个IIC设备的器件地址不重复分别是(0XA0,0XA1)  (0XA2,0XA3  (0XAE,0XAF)。核心问题是无论发送器件地址是多少AT24C02都可以正常读写数据而其他两个设备必须发送正确的器件地址才会回应!所以是24C02影响了其他两个IIC设备通讯。 ...

这样理解好像不妥,有个叫停止位的东西,还有I2C总线复位。
还是好好理解一下你的I2C时序吧。
leoleesir
3楼-- · 2019-07-15 05:17
zhouxk 发表于 2018-8-14 08:50
这样理解好像不妥,有个叫停止位的东西,还有I2C总线复位。
还是好好理解一下你的I2C时序吧。

低级的错误我不可能犯!不过问题已经解决,咨询了代理给的答案是Atmel有一批次的EEPROM有问题正好我购买的是那一批次同时也有很多厂家反映了相同问题。目前用PIC24CXX替换了AT24CXX解决了问题。
脑洞大赛20
4楼-- · 2019-07-15 05:20
虚惊啊,我同时使用同一地址的IIC器件,用了一个IC中转,用的HAL库暂时稳定性OK
cknz
5楼-- · 2019-07-15 08:05
 精彩回答 2  元偷偷看……

一周热门 更多>