一个项目使用了bq40z50这个电量计IC,由于MStar平台没有使用到硬件的I2C,只能使用软件模拟I2C进行通信,遇到了一些奇怪的问题,特此记录。有遇到这种情况的可以参考参考。
问题1:无ack的情况,发送sbs command后,无法读取到ack。
原因:需要主控支持I2C clock streth
通过抓取到的波形看,第一个字节是slave地址,第二个字节是sbs command,可以明显看到sbs command的ack明显比较晚,发送sbs command之后,bq40z50会把SCL拉住,等到准备好了,才释放掉。