最近做MAX20087的I2C通信时发现数据手册中有错误,还是挺坑的,分享出来供大家参考:
因为用的是IO模拟I2C,所以I2C读写时序都需要手动实现。手册中描述I2C写单个字节的时序为:
![](https://img-blog.csdnimg.cn/img_convert/a3c13843e4ced728d158d7eaef7dbb07.png)
最后一个NA有误,如果这儿不等待一个从机的ACK的话,是无法正确向MAX20087的寄存器写入数据的。
![](https://img-blog.csdnimg.cn/img_convert/3fa109a515b0273ea1e3ed575841a49c.png)
在写驱动时,这儿修改一下,等待一下从机的ACK即可正常写入数据。
最近做MAX20087的I2C通信时发现数据手册中有错误,还是挺坑的,分享出来供大家参考:
因为用的是IO模拟I2C,所以I2C读写时序都需要手动实现。手册中描述I2C写单个字节的时序为:
最后一个NA有误,如果这儿不等待一个从机的ACK的话,是无法正确向MAX20087的寄存器写入数据的。
在写驱动时,这儿修改一下,等待一下从机的ACK即可正常写入数据。