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.
您好,
通过分析仪发现,具体失败是在设置电压寄存器后,发restart无法发送。
您这里具体说的是哪个电压寄存器?您是在连续1000次读取转换结果的哪个节点设置的寄存器?寄存器具体设置的是什么?
1、如果大于4ms,对INA226应该没影响吧
2、如果小于4ms,甚至小于2.2ms,那也可以读到寄存器上一个周期的值。
您说的对。
看下STOP和START之间的时间要求是否满足:
看您所附时序图,是想将Register Pointer设置到03寄存器,如下时序截图:
然后再restart 启动读03寄存器值吗?即restart 开启如下时序:
如果是这样的话,看您时序图,在将Register Pointer设置到03寄存器时,最后并没有STOP信号:
INA226是否支持这种操作模式?
不确定INA226是否支持这种模式,但是建议您按照INA226 datasheet 中的时序来操作,以免后期出现异常。
您可以抓一个有STOP的异常波形吗?您是否有办法用示波器抓一个异常波形,我想看下SDA无法拉低时,其SCL波形是怎样的?
I2C总线上挂了几个设备?是否其他设备的原因
连续读1000次,中间会有一两次读取失败。
读出失败的数据发生的位置一样吗?比如说连续读取1000次,每次失败都发生在第700次左右读取?还是说读取失败发生的位置是随机的?
如果是每次发生的位置都差不多,可能与程序有关,建议您仔细检查程序。
如果是发生的位置是随机的,我个人感觉可能与程序关系不大。这种情况建议您在E2E英文技术论坛上咨询资深的英文论坛工程师,看他们是否有更好的排查建议。英文论坛对应子论坛链接:https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum