This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ds90ub935/ds90ub936 MODE电压不对应与同步模式无法lock问题

TI的各位好:

我们使用的是ds90ub935+ds90ub936的方案,接入的sensor是imx327,当前我们在调试的时候有两个问题想请教一下:

1,936实际工作模式与datasheet上标注的不对应。若想配置0.995v的同步模式的话我们必须要配置成1.1v左右才能在0x6d寄存器的后两位读出是CSI模式,0x58寄存器读出是50mbps的速率,不然就是RAW10模式。同时我们还尝试过配置成0.374v的RAW12_LF模式,读寄存器获得到的模式却是CSI2非同步模式而不是RAW12。想问一下这个是由什么造成的?

2,当935和936上电后都达到了同步模式后(此时936 mode引脚电压是1.1V),在936上配置好了935的iic地址,sensor的iic地址后,lock不成功,无法访问到935。在这个前提下,我们刻意将936的0x58寄存器的BC_FREQ_SELECT[2:0]从默认数值50mbps修改成了10mbps,其他配置不改动,935和936就能成功lock上,此时可以通过iic访问到935的各个寄存器,读出935的0x03寄存器的MODE[2:0]为CSI2同步模式(000: CSI-2 Synchronous Mode)。证明当前935是工作在同步模式下的。但是依然没有办法访问到Sensor寄存器。

附936寄存器配置代码(935 936同处于同步模式):

unsigned char imx327_i2c_addr = 0x34;
unsigned char imx327_i2c_vir_addr = 0x36;

unsigned char Ti935_i2c_addr = 0x30; /* I2C Address of Ti935_i2c_addr */
unsigned char Ti935_i2c_vir_addr = 0x32; /* I2C Address of Ti935_i2c_addr */

write_register_8bitAddr(0x01, 0x03); //reset

write_register_8bitAddr(0x33, 0x23); //Enable CSI, Line2-Line, Continue Clock

write_register_8bitAddr(0x4c, 0x01); // Port Select 0
write_register_8bitAddr(0x0c, 0x81); // Receive Port Select 0
write_register_8bitAddr(0x20,0x08); // Forward Port Select 0

//write_register_8bitAddr(0x58,0x7a); //10mbps no_sync (can lock)  配置成非同步的10mbps这个才能lock
write_register_8bitAddr(0x58,0x7e); //50mbps sync (can't lock!)

write_register_8bitAddr(0x7c,0x81); //PORT_CONFIG2
write_register_8bitAddr(0x5b,Ti935_i2c_addr); //serid
write_register_8bitAddr(0x5c,Ti935_i2c_vir_addr); //seraliasid

//sensor iic id
write_register_8bitAddr(0x5d, imx327_i2c_addr); //Slave_ID[0]
write_register_8bitAddr(0x65, imx327_i2c_vir_addr); //Slave_Alias[0]

至此,如果在寄存器配置上有什么问题的话还请指正,谢谢。