HI ALL,
we using ds90ub936q1/ds90ub935q1 to build a multi camera system. The config as follows:
936:
input=>2 rx port, CSI-2 SYNCHRONOUS mode
output=>2-lane with 2 vc, Replication mode
hardware scheme==>
register=>
{0x01, 0x02},
{0xB3, 0x00}, /* BIST */
{0x1F, 0x00}, /* 1.6 Gbps csi clock per lane */
{0x33, 0x23}, /* 2 lane, continuous clock*/
{0x20, 0x00},
{0x21, 0x81},
/*RX port 0*/
{0x4C, 0x01},
{0x58, 0x5E},
{0x5C, (DS90UB935_CAM1_ADDR << 1)}, /* TI 935 alias address */
{0x5D, (SENSOR_ADDR << 1)},
{0x65, (CAM1_SENSOR_ADDR << 1)}, /* CAM alias address */
{0x72, 0xE8},
{0x0F, 0x7F},
{0x6E, 0x08},
{0x6F, 0x12},
/*RX port 1*/
{0x4C, 0x12},
{0x58, 0x5E},
{0x5C, (DS90UB935_CAM2_ADDR << 1)},
{0x5D, (SENSOR_ADDR << 1)},
{0x65, (CAM2_SENSOR_ADDR << 1)},
{0x72, 0xE9},
{0x0F, 0x7F},
{0x6E, 0x08},
{0x6F, 0x12},
935:
input=>4-lanes mipi-csi2, 600M
hardware scheme==>
register:
{DS90UB935_CAM1_ADDR, 0x01, 0x02},
{DS90UB935_CAM1_ADDR, 0x02, 0x73},
{DS90UB935_CAM1_ADDR, 0x0E, 0xF0},
{DS90UB935_CAM1_ADDR, 0x0D, 0x3C},
data flow:
sensor==>ds90ub935====fpdlink(50-Ω single-ended coaxial)====>ds90ub936====>host
problem:
1.when we stream on only one sensor, the fpdlink is no error, the host can get data correctly, no frame drops.
status register as follows==>
[ 145.477346] ds90ub936 30-0030: Dump rx0 936 status*******
[ 145.488881] ds90ub936 30-0030: reg[0x4d]=0x3
[ 145.500416] ds90ub936 30-0030: reg[0x4e]=0x4
[ 145.511937] ds90ub936 30-0030: reg[0x4f]=0x64
[ 145.523432] ds90ub936 30-0030: reg[0x50]=0x0
[ 145.534541] ds90ub936 30-0030: reg[0x54]=0x0
[ 145.546081] ds90ub936 30-0030: reg[0x55]=0x0
[ 145.558073] ds90ub936 30-0030: reg[0x56]=0x0
[ 145.569568] ds90ub936 30-0030: reg[0x57]=0x0
[ 145.581402] ds90ub936 30-0030: reg[0x73]=0x1
[ 145.592907] ds90ub936 30-0030: reg[0x74]=0xe0
[ 145.604435] ds90ub936 30-0030: reg[0x75]=0x3
[ 145.615930] ds90ub936 30-0030: reg[0x76]=0xc0
[ 145.627436] ds90ub936 30-0030: reg[0x7a]=0x0
[ 145.627446] ds90ub936 30-0030: Dump rx0 935 status*******
[ 145.638548] ds90ub936 30-0030: reg[0x54]=0x0
[ 145.650077] ds90ub936 30-0030: reg[0x55]=0x0
[ 145.661634] ds90ub936 30-0030: reg[0x56]=0x0
[ 145.673943] ds90ub936 30-0030: reg[0x5c]=0x0
[ 145.685644] ds90ub936 30-0030: reg[0x5d]=0x0
[ 145.697210] ds90ub936 30-0030: reg[0x5e]=0x0
[ 145.708731] ds90ub936 30-0030: reg[0x5f]=0x0
[ 145.720310] ds90ub936 30-0030: reg[0x60]=0x0
[ 145.731853] ds90ub936 30-0030: reg[0x61]=0x2c
[ 145.743360] ds90ub936 30-0030: reg[0x62]=0xc0
[ 145.754537] ds90ub936 30-0030: reg[0x63]=0x3
[ 145.766041] ds90ub936 30-0030: reg[0x64]=0x13
2.when we stream on two sensor input at the the same time, the fpdlink raising Errors, the worst thing of all is that host can't get correct data.
status register as follows==>
[ 380.717639] ds90ub936 30-0030: Dump rx1 936 status*******
[ 380.729222] ds90ub936 30-0030: reg[0x4d]=0x53
[ 380.740807] ds90ub936 30-0030: reg[0x4e]=0x7d
[ 380.752387] ds90ub936 30-0030: reg[0x4f]=0x64
[ 380.763933] ds90ub936 30-0030: reg[0x50]=0x0
[ 380.775511] ds90ub936 30-0030: reg[0x54]=0x0
[ 380.787087] ds90ub936 30-0030: reg[0x55]=0x0
[ 380.798651] ds90ub936 30-0030: reg[0x56]=0x0
[ 380.810214] ds90ub936 30-0030: reg[0x57]=0x0
[ 380.822138] ds90ub936 30-0030: reg[0x73]=0x1
[ 380.834316] ds90ub936 30-0030: reg[0x74]=0xe0
[ 380.846143] ds90ub936 30-0030: reg[0x75]=0x3
[ 380.858186] ds90ub936 30-0030: reg[0x76]=0xc0
[ 380.870133] ds90ub936 30-0030: reg[0x7a]=0xf
[ 380.870143] ds90ub936 30-0030: Dump rx1 935 status*******
[ 380.881722] ds90ub936 30-0030: reg[0x54]=0x0
[ 380.894371] ds90ub936 30-0030: reg[0x55]=0x83
[ 380.906122] ds90ub936 30-0030: reg[0x56]=0x10
[ 380.917700] ds90ub936 30-0030: reg[0x5c]=0x0
[ 380.929963] ds90ub936 30-0030: reg[0x5d]=0x0
[ 380.941739] ds90ub936 30-0030: reg[0x5e]=0x0
[ 380.953856] ds90ub936 30-0030: reg[0x5f]=0x0
[ 380.965865] ds90ub936 30-0030: reg[0x60]=0x0
[ 380.977422] ds90ub936 30-0030: reg[0x61]=0x2c
[ 380.988977] ds90ub936 30-0030: reg[0x62]=0xc0
[ 381.000537] ds90ub936 30-0030: reg[0x63]=0x3
[ 381.012121] ds90ub936 30-0030: reg[0x64]=0x13
[ 381.028386] ds90ub936 30-0030: Dump rx0 936 status*******
[ 381.040007] ds90ub936 30-0030: reg[0x4d]=0x3
[ 381.051541] ds90ub936 30-0030: reg[0x4e]=0x14
[ 381.063064] ds90ub936 30-0030: reg[0x4f]=0x64
[ 381.074565] ds90ub936 30-0030: reg[0x50]=0x0
[ 381.086113] ds90ub936 30-0030: reg[0x54]=0x0
[ 381.097682] ds90ub936 30-0030: reg[0x55]=0x0
[ 381.109320] ds90ub936 30-0030: reg[0x56]=0x0
[ 381.120973] ds90ub936 30-0030: reg[0x57]=0x0
[ 381.132532] ds90ub936 30-0030: reg[0x73]=0x1
[ 381.144060] ds90ub936 30-0030: reg[0x74]=0xe0
[ 381.155595] ds90ub936 30-0030: reg[0x75]=0x3
[ 381.167171] ds90ub936 30-0030: reg[0x76]=0xc0
[ 381.178544] ds90ub936 30-0030: reg[0x7a]=0x0
[ 381.178554] ds90ub936 30-0030: Dump rx0 935 status*******
[ 381.190095] ds90ub936 30-0030: reg[0x54]=0x0
[ 381.202206] ds90ub936 30-0030: reg[0x55]=0x0
[ 381.213830] ds90ub936 30-0030: reg[0x56]=0x0
[ 381.225455] ds90ub936 30-0030: reg[0x5c]=0x0
[ 381.236986] ds90ub936 30-0030: reg[0x5d]=0x0
[ 381.248502] ds90ub936 30-0030: reg[0x5e]=0x0
[ 381.260018] ds90ub936 30-0030: reg[0x5f]=0x0
[ 381.271532] ds90ub936 30-0030: reg[0x60]=0x0
[ 381.283043] ds90ub936 30-0030: reg[0x61]=0x2c
[ 381.294597] ds90ub936 30-0030: reg[0x62]=0xc0
[ 381.306117] ds90ub936 30-0030: reg[0x63]=0x3
[ 381.318201] ds90ub936 30-0030: reg[0x64]=0x13
Anything wrong with my hardware design or register config?
Looks forward your help.
thans