我在使用TMS320DM368的时候:发现sersor如果是TVP5150的话,应用层的i2c读写没有任何问题;但在使用的sersor是ADV7441A的时候,应用层的i2c写没有任何问题,但i2c读就会出现错误返回。
我使用的是IPNC_RDK5。
在对比TVP5150和ADV7441A的i2c时序以后,发现TVP5150在读的时序中多了一个主机STOP信号,如下图:
想请教一下怎么样在i2c_davinci.c这个文件中修改i2c读的时序,将这个stop给去掉?
Chris Meng:
你好,
标准的I2C传输最后都是有停止位的。你可以网上搜索一下。
会不是是其他的原因?我建议你测量一下读时候的信号。
malik:
回复 Chris Meng:
Chris Meng,
这个stop信号不是最后i2c结束后由主机发送的停止信号,而是在i2c读时序的过程中,主机发送寄存器地址后紧接着由主机发送的一个stop信号。
TVP5150的读时序如下:
而ADV7441A的i2c读时序如下:
在ADV7441A的读时序中,主机发送SUB ADDR(即寄存器地址)后,主机紧接着没有发送一个STOP信号。
所以,想请教一下,i2c_davinci.c这个文件中怎样将这个STOP信号对应的代码去掉?
malik:
回复 malik:
Chris Meng,
您知道这个问题吗?如果不知道,请回复一下好吗!!!
XIANSHENG LIAO:
回复 malik:
问题解决了吗?qq761227397相互探讨
TI中文支持网



