IDX=0V,
R1=不接;
R2=10K;
MCU发送地址0X58 收不到ACK响应;
问题:I2C通讯失败,监控MCU发送出来的波形正常,这个问题如何处理,造成通讯失败的原因是什么?
Kailyn Chen:
MCU是用GPIO模拟的I2C还是本身就是I2C接口? 是否内部已经集成上拉?
另外,SCL和SDA 的上拉电阻是多少,如果VCC=3.3V的话,上拉电阻值建议4.7Kohm。
zhipeng fu:
回复 Kailyn Chen:
SCL和SDA采用MCU内部上拉,外部没有上拉
能不能留个联系方式,邮箱也行啊?
zhipeng fu:
回复 zhipeng fu:
用的是MCU集成的I2C,端口内部上拉,ds90ub948-q1芯片上的SDA和SCL外部上拉了4.7k
Kailyn Chen:
回复 zhipeng fu:
您好,端口内部已经上拉的话,外部则不需要上拉,将上拉4.7Kohm电阻去掉再试试。
zhipeng fu:
回复 Kailyn Chen:
MCU的I2C我是通过TCA9406DCUR芯片转了下的
zhipeng fu:
回复 Kailyn Chen:
MCU上的I2C和ds90ub948-q1上的I2C我是经过TCA9406DCUR转了下,所以应该没有关系,有没有可能是ds90ub948-q1还没有正常工作起来?但是如果通过判断芯片是否正常工作起来了,可以进行I2C通讯呢
Kailyn Chen:
回复 zhipeng fu:
您好,也就是说MCU的I2C经过TCA9404转换输出的I2C接到了UB948上,但是TCA9406内部也已经集成了上拉,所以外部SCL, SDA也无需上拉,所以还是建议将上拉4.7Kohm电阻去掉,因为外部再上拉之后,电阻并联,总电阻减小,会影响主控将其拉低,从而收不到ACK
信号。
zhipeng fu:
回复 Kailyn Chen:
您好!MCU内部上拉去掉了,波形还是一样的,没有ACK
zhipeng fu:
回复 zhipeng fu:
这个问题出现好久了,板子上的EEPROM I2C通讯都很正常,就是这个ds90ub948-q1芯片没有ACK响应
Kailyn Chen:
回复 zhipeng fu:
嗯,如果其他device 可以I2 C正常通讯,说明程序没问题。
是否可以把通过TCA9404 转换的I2C这部分电路附上看下?