2019-07-14 18:34发布
zhouxk 发表于 2018-8-14 08:29 这个没道理呀,查检下程序,抓一下波形看看。 是用的MCU硬件I2C接口,还是IO模拟的。建议用IO模拟的试试,IO模拟时序和逻辑更可控些。
leoleesir 发表于 2018-8-14 08:35 总线挂接3个IIC设备时只有AT24C02能正常读写,去掉AT24C02后其他两个器件就可以正常读写。3个IIC设备的器件地址不重复分别是(0XA0,0XA1) (0XA2,0XA3 (0XAE,0XAF)。核心问题是无论发送器件地址是多少AT24C02都可以正常读写数据而其他两个设备必须发送正确的器件地址才会回应!所以是24C02影响了其他两个IIC设备通讯。 ...
zhouxk 发表于 2018-8-14 08:50 这样理解好像不妥,有个叫停止位的东西,还有I2C总线复位。 还是好好理解一下你的I2C时序吧。
最多设置5个标签!
总线挂接3个IIC设备时只有AT24C02能正常读写,去掉AT24C02后其他两个器件就可以正常读写。3个IIC设备的器件地址不重复分别是(0XA0,0XA1) (0XA2,0XA3 (0XAE,0XAF)。核心问题是无论发送器件地址是多少AT24C02都可以正常读写数据而其他两个设备必须发送正确的器件地址才会回应!所以是24C02影响了其他两个IIC设备通讯。
这样理解好像不妥,有个叫停止位的东西,还有I2C总线复位。
还是好好理解一下你的I2C时序吧。
低级的错误我不可能犯!不过问题已经解决,咨询了代理给的答案是Atmel有一批次的EEPROM有问题正好我购买的是那一批次同时也有很多厂家反映了相同问题。目前用PIC24CXX替换了AT24CXX解决了问题。
一周热门 更多>