Other Parts Discussed in Thread: ISO1541, ISO1540
电路中MCU和BQ76952的IIC通讯进行了隔离,如下图所示:
使用了ISO1541,是单向CLK+双向DATA的IIC隔离芯片,此时IIC通信会失败。
换成ISO1540,是双向CLK+双向DATA的IIC隔离芯片,此时IIC通信成功。
抓取波形,下图是ISO1541通信失败的波形(黄色是CLK、蓝色是DATA):
抓取波形,下图是ISO1540通信成功的波形(黄色是CLK、蓝色是DATA):
可以看到,通信成功的时候,IIC_CLK有一段时间是被一直拉低的,和通信失败的波形对比发现:拉低CLK的这个动作是由AFE_BQ76952执行的。
那为什么作为从机的BQ76952会拉低CLK呢?
而且拉低的这段时间DATA其实是有数据变化的,那这段时间的数据不就丢了吗?怎么反而通信成功了呢?
(备注:我们使用的是IIC_CRC,不知道带了这个校验是不是有关系?)