Hi team,
我们在IIC通讯时候会偶尔会出现,芯片SDA脚一直被下拉状态,只能断电重启才可以恢复,是不是芯片内部进入了某种保护模式?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,I2C总线上只有DAC121C085一个器件吗?SDA一直为低,会被认为总线一直处于占用状态,主机会一直等到,直到SDA释放到高电平。
Hi Kailyn,
单片机的IIC直连接了两个一样的DAC芯片,在多次通讯偶尔其中一个DAC芯片的SDA会一直拉低.我使用飞线连接芯片SDA到单片机,在现象出现后,断开SDA到单片机连接,发现SDA总线是被其中一个DAC芯片内部拉低的
在多次通讯偶尔其中一个DAC芯片的SDA会一直拉低.
有没有通过示波器看下这个I2C的时序,这颗DAC芯片是DAC121C085吗?可以通过时序图看下是什么情况导致SDA拉低。比如在发送给主机ACK信号之后一直拉低还是其他情况。
另外,主机的I2C是GPIO模拟的I2C吗?如果是的话,要看下GPIO内部是否有上拉,这样外部就不需要再上拉了。
Hi Kailyn,
两颗芯片都是DAC121C085,主机的I2C是硬件的I2C,不是GPIO模拟的。
芯片什么情况会出现,我用飞线断开和主机连接的SDA后,内部SDA还是一直处于拉低状态。
SDA上拉阻值为多少?
正常通讯一段时间,没有进行什么动作,然后SDA被拉低了是吗?
因为我想可以排除总线电容的关系,总线上只有两个DAC,所以容性负载不会太大。
其次,上拉阻值应该取的也是合适的,因为开始能正常通讯。
两个I2C地址没有冲突吧?
频繁的对I2C进行配置。那每一次改变是否等到上一次转换完成再对其进行配置?
或者说每次对I2C进行配置的时候,是否每次都能收到ACK信号?
我想频率的配置不是问题,而是要注意观察它的时序,保证每次配置都能收到ACK信号,才能确保配置没问题从而输出也没问题。