Other Parts Discussed in Thread: DS90UB960-Q1, ALP
Tool/software: TI C/C++ Compiler
Dear TI
I put four lines camera in TDA4M board, the sensor is AR0233, the ISP is GW5200, the serializer is UB953, the deserializer is UB960 in TDA4M board.
I use the outside ISP, the sensor and ISP is powered on and starts itself, I don't need to config the register of sensor and ISP, the camera is 1920*1080P, 60FPS. so I just need to config the register of UB953 and UB960.
I found that two lines camera camera can work well, but the stream of four lines camera looks like a jam. So I wonder if it's the bandwidth?
for the configuration of UB960, I make incoming VC-ID of 0 for RX Port 0, VC-ID of 1 for
RX Port 1, VC-ID of 2 for RX Port 2, and VC-ID of 3 for RX Port 3,. Each port is sending a video stream
using VC-ID of 0. but I want wo config RX Ports 0 and 1 assigned to CSI-2
Transmitter 0 which RX Ports 2 and 3 are assigned to CSI-2 Transmitter 1, can you tell me how to config the register of UB960?
this is my register configuration.
I2cParams ub960DesCfg_AR0233[AR0233_DES_CFG_SIZE] = {
{0x1, 0x2, 1000},
{0x1f, 0x5, 1000},
{0xB0, 0x1C,0x1},
{0xB1, 0x16,0x1},
{0xB2, 0x00,0x1},
{0xB1, 0x17,0x1},
{0xB2, 0x00,0x1},
{0xB1, 0x18,0x1},
{0xB2, 0x00,0x1},
{0xB1, 0x19,0x1},
{0xB2, 0x00,0x1},
{0xB0, 0x1C,0x1},
{0xB1, 0x15,0x1},
{0xB2, 0x0A,0x1},
{0xB2, 0x00,0x10},
{0x0D, 0x90, 0x1}, /*I/O to 3V3 - Options not valid with datashee*/
{0x0C, 0x0F, 0x1}, /*Enable All ports*/
/*Select Channel 0*/
{0x4C, 0x01, 0x1},
{0x58, 0x5e, 0x1},
{0x72, 0x00, 0x1}, /*VC map*/
/*Select Channel 1*/
{0x4C, 0x12, 0x1},
{0x58, 0x5e, 0x1},/*Enable Back channel, set to 50Mbs*/
/*Select Channel 2*/
{0x4C, 0x24, 0x1},
{0x58, 0x5e, 0x1},/*Enable Back channel, set to 50Mbs*/
/*Select Channel 3*/
{0x4C, 0x38, 0x1},
{0x58, 0x5e, 0x1},/*Enable Back channel, set to 50Mbs*/
/*Select Channel 0*/
{0x4C, 0x01, 0x1},
{0xB0, 0x04, 0x1},
{0xB1, 0x03, 0x1},
{0xB2, 0x20, 0x1},
{0xB1, 0x13, 0x1},
{0xB2, 0x20, 0x1},
{0xB0, 0x04, 0x1},
{0xB1, 0x04, 0x1},
{0xB2, 0x3F, 0x1},
{0xB1, 0x14, 0x1},
{0xB2, 0x3F, 0x1},
{0x42, 0x71, 0x1}, /*Unknown*/
{0x41, 0xF0, 0x1}, /*Unknown*/
{0xB9, 0x18, 0x1},
/*Select Channel 1*/
{0x4C, 0x12, 0x1},
{0xB0, 0x08, 0x1},
{0xB1, 0x03, 0x1},
{0xB2, 0x20, 0x1},
{0xB1, 0x13, 0x1},
{0xB2, 0x20, 0x1},
{0xB0, 0x08, 0x1},
{0xB1, 0x04, 0x1},
{0xB2, 0x3F, 0x1},
{0xB1, 0x14, 0x1},
{0xB2, 0x3F, 0x1},
{0x42, 0x71, 0x1}, /*Unknown*/
{0x41, 0xF0, 0x1}, /*Unknown*/
{0xB9, 0x18, 0x1},
/*Select Channel 2*/
{0x4C, 0x24, 0x1},
{0xB0, 0x0C, 0x1},
{0xB1, 0x03, 0x1},
{0xB2, 0x20, 0x1},
{0xB1, 0x13, 0x1},
{0xB2, 0x20, 0x1},
{0xB0, 0x0C, 0x1},
{0xB1, 0x04, 0x1},
{0xB2, 0x3F, 0x1},
{0xB1, 0x14, 0x1},
{0xB2, 0x3F, 0x1},
{0x42, 0x71, 0x1}, /*Unknown*/
{0x41, 0xF0, 0x1}, /*Unknown*/
{0xB9, 0x18, 0x1},
/*Select Channel 3*/
{0x4C, 0x38, 0x1},
{0xB0, 0x10, 0x1},
{0xB1, 0x03, 0x1},
{0xB2, 0x20, 0x1},
{0xB1, 0x13, 0x1},
{0xB2, 0x20, 0x1},
{0xB0, 0x10, 0x1},
{0xB1, 0x04, 0x1},
{0xB2, 0x3F, 0x1},
{0xB1, 0x14, 0x1},
{0xB2, 0x3F, 0x1},
{0x42, 0x71, 0x1}, /*Unknown*/
{0x41, 0xF0, 0x1}, /*Unknown*/
{0xB9, 0x18, 0x1},
{0x32, 0x01, 0x1}, /*Enable TX port 0*/
{0x20, 0x00, 0x1}, /*Forwarding and using CSIport 0 */
/*Sets GPIOS*/
{0x10, 0x83, 0x1},
{0x11, 0xA3, 0x1},
{0x12, 0xC3, 0x1},
{0x13, 0xE3, 0x1},
{0x4C, 0x01, 0x1},
{0x58, 0x5e, 0x1},
{0xBC, 0x00, 0x1}, /*Unknown*/
{0x5C, (SER_0_I2C_ALIAS << 1), 0x10},
{0x5D, (SENSOR_0_I2C_ALIAS << 1), 0x10},
{0x65, (SER_0_I2C_ALIAS << 1), 0x10},
{0x5E, (AR0233_I2C_ADDR << 1), 0x10},
{0x66, (SENSOR_0_I2C_ALIAS << 1), 0x10},
{0x6D, 0x6C,0x1}, /*CSI Mode*/
{0x72, 0x00,0x1}, /*VC Map - All to 0 */
{0x7C, 0x20, 0x10}, /*Line Valid active high, Frame Valid active high*/
{0xD5, 0xF3, 0x10}, /*Auto Attenuation*/
{0xB0,0x1C, 0x1},
{0xB1,0x15, 0x1},
{0xB2,0x0A, 0x1},
{0xB2,0x00, 0x1},
{0x32, 0x21, 0x1},
{0x33, 0x02, 0x1},
{0x4C, 0x12, 0x1},
{0x58, 0x5e, 0x1},
{0xBC, 0x00, 0x1}, /*Unknown*/
{0x5C, (SER_1_I2C_ALIAS << 1), 0x10},
{0x5D, (SENSOR_1_I2C_ALIAS << 1), 0x10},
{0x65, (SER_1_I2C_ALIAS << 1), 0x10},
{0x5E, (AR0233_I2C_ADDR << 1), 0x10},
{0x66, (SENSOR_1_I2C_ALIAS << 1), 0x10},
{0x6D, 0x6C,0x1}, /*CSI Mode*/
{0x72, 0x55,0x1}, /*VC Map - All to 1 */
{0x7C, 0x20, 0x10}, /*Line Valid active high, Frame Valid active high*/
{0xD5, 0xF3, 0x10}, /*Auto Attenuation*/
{0xB0,0x1C, 0x1},
{0xB1,0x15, 0x1},
{0xB2,0x0A, 0x1},
{0xB2,0x00, 0x1},
{0x32, 0x21, 0x1},
{0x33, 0x02, 0x1},
{0x4C, 0x24, 0x1},
{0x58, 0x5e, 0x1},
{0xBC, 0x00, 0x1}, /*Unknown*/
{0x5C, (SER_2_I2C_ALIAS << 1), 0x10},
{0x5D, (SENSOR_2_I2C_ALIAS << 1), 0x10},
{0x65, (SER_2_I2C_ALIAS << 1), 0x10},
{0x5E, (AR0233_I2C_ADDR << 1), 0x10},
{0x66, (SENSOR_2_I2C_ALIAS << 1), 0x10},
{0x6D, 0x6C,0x1}, /*CSI Mode*/
{0x72, 0xaa,0x1}, /*VC Map - All to 2 */
{0x7C, 0x20, 0x10}, /*Line Valid active high, Frame Valid active high*/
{0xD5, 0xF3, 0x10}, /*Auto Attenuation*/
{0xB0,0x1C, 0x1},
{0xB1,0x15, 0x1},
{0xB2,0x0A, 0x1},
{0xB2,0x00, 0x1},
{0x32, 0x21, 0x1},
{0x33, 0x02, 0x1},
{0x4C, 0x38, 0x1},
{0x58, 0x5e, 0x1},
{0xBC, 0x00, 0x1}, /*Unknown*/
{0x5C, (SER_3_I2C_ALIAS << 1), 0x10},
{0x5D, (SENSOR_3_I2C_ALIAS << 1), 0x10},
{0x65, (SER_3_I2C_ALIAS << 1), 0x10},
{0x5E, (AR0233_I2C_ADDR << 1), 0x10},
{0x66, (SENSOR_3_I2C_ALIAS << 1), 0x10},
{0x6D, 0x6C,0x1}, /*CSI Mode*/
{0x72, 0xff,0x1}, /*VC Map - All to 3 */
{0x7C, 0x20, 0x10}, /*Line Valid active high, Frame Valid active high*/
{0xD5, 0xF3, 0x10}, /*Auto Attenuation*/
{0xB0,0x1C, 0x1},
{0xB1,0x15, 0x1},
{0xB2,0x0A, 0x1},
{0xB2,0x00, 0x1},
{0x32, 0x21, 0x1},
{0x33, 0x02, 0x1},
{0x21, 0x03, 0x1},
{0x20, 0x00, 0x1},
{0xFFFF, 0x00, 0x0} //End of script
};