TI中文支持网
TI专业的中文技术问题搜集分享网站

DS90UB914+DS90UB913不能写Camera sensor

各位大神好:

        我在使用DS90UB914+DS90UB913实现CPU和Camera Sesnor之间的单对差分(STP)线传输视频数据的功能。其连接结构如下图所示。我

我现在能通过驱动程序读写DS90UB914,能读DS90UB913和Camera Sesnor的寄存器。可是,当Camera Sensor驱动程序中向Camera Sensor写数据时,报以下NOACK错误:

[10.455268] set sensor gpio as PA-low-10bit
[10.461612] @@@@@@@probe ok ------->jxh62
[10.515683] JXh62_read
[10.519178] -----jxh62_detect: 424 ret = 0, v = 0xa0
[10.519186] JXh62_read
[10.522673] -----jxh62_detect: 432 ret = 0, v = 0x62
[10.522684] jxh62 chip found @ 0x30 (i2c0)
[10.541753] jxh62_init
[10.544191] JXh62_write_array
[10.548089] JXh62_write
[10.550611] client addr = 0x30,buf[0]=0x12,buf[1]=0x00,ret=1
[10.556472] vals->reg_num:12, vals->value:0
[11.178615] i2c i2c-0: i2c_jz_irq 441, I2C transfer error, ABORT interrupt
[11.185740] i2c i2c-0: --I2C txabrt:
[11.189427] i2c i2c-0: --I2C TXABRT[3]=I2C_TXABRT_ABRT_XDATA_NOACK
[11.195831] JXh62_write
[11.198351] client addr = 0x30,buf[0]=0x0e,buf[1]=0x11,ret=-11
[11.204358] Failed to deinit the pipeline of (null).

我读取到的DS90UB914、DS90UB913和Camera Sensor(JXh62)的部分寄存器信息如下:

[43.846100]  ds90ub914q reg value:
[43.851168]  sensor_read: addr=0x0 value = 0xc0
[43.856253]  sensor_read: addr=0x3 value = 0xe9
[43.861316]  sensor_read: addr=0x6 value = 0xb4
[43.866396]  sensor_read: addr=0x7 value = 0xb2
[43.871498]  sensor_read: addr=0x8 value = 0x60
[43.876582]  sensor_read: addr=0x10 value = 0x60
[43.881334] ds90ub913q reg value:
[43.885230]  sensor_read: addr=0x0 value = 0xb0
[43.890478]  sensor_read: addr=0x3 value = 0xc5
[43.895755]  sensor_read: addr=0x8 value = 0x0
[43.900821]  sensor_read: addr=0x10 value = 0x17
[43.906057]  sensor_read: addr=0x6 value = 0xc0
[43.911205]  sensor_read: addr=0x7 value = 0x0
[43.915792] jxh62_sinfo reg value:
[43.920267]  sensor_read: addr=0x0 value = 0x0
[43.925812]  sensor_read: addr=0x1 value = 0xff
[43.931440]  sensor_read: addr=0xa value = 0xa0
[43.937085]  sensor_read: addr=0xb value = 0x62
[43.942714]  sensor_read: addr=0xc value = 0x40
[43.948444]  sensor_read: addr=0xd value = 0x50
[43.954160]  sensor_read: addr=0xe value = 0x10
[43.959806]  sensor_read: addr=0x12 value = 0x0

请TI专家帮忙解答一下问题:

1、由于采用的是视频SOC官方调试好的驱动,在没有接FPD-LinkIII接口电路时,Camera Sensor的驱动程序能正常读写。我采用FPD-Link III接口时,用同样的Camera Sensor驱动程序,能正常读取到的DS90UB914、DS90UB913和Camera Sensor(JXh62)的寄存器,
为什么在写Camera  Sensor时,会报I2C_TXABRT_ABRT_XDATA_NOACK错误?我采用的Pass through模式,需要设置DS90UB914Q的0x03 General configuration1寄存器Auto ACK位为1吗?
2、Pass throught 模式和Pass through ALL模式的主要区别是什么?我能否直接把DS90UB914Q设置为Pass throught ALL模式,让主CPU直接访问Camera Sensor?

非常感谢!

Kailyn Chen:

您好,pass through和pass through all的区别在于,pass through all 的意思通过serial link来进行主控和其他device的通讯,而不是通过寻址local device的方法。 在SNLA222.pdf中有详细介绍pass though和pass though all的配置区别:
www.ti.com/…/snla222.pdf

赞(0)
未经允许不得转载:TI中文支持网 » DS90UB914+DS90UB913不能写Camera sensor
分享到: 更多 (0)