Other Parts Discussed in Thread: DS90UB951-Q1, DS90UB958-Q1
Hi,
Firstly, my actual part number is DS90UB951-Q1 which is not in the list. Hence using the nearest cousin. Apologies for that.
I am trying to generate a Test pattern from Serializer with the following configuraitons
- 3848x2168 (4K) resolution @ 30fps
- RAW12 data type.
I have attached the register configuration that I am currently using (The CSI Enable will be set at a later point in code)
#if GENERATE_SER_TEST_PATTERN slave_id = SER_SLAVE_ADDR #else slave_id = DES_SLAVE_ADDR /* Pre-requisite * 1. Disable video forwarding * 2. Configure Tx operating speed * 3. Enable Transmitter for port 0 */ reg_addr = 0x20; reg_data = 0x30; reg_addr = 0x1F; reg_data = 0x00; reg_addr = 0x33; reg_data = 0x00; #endif /* Access indirect pat gen registers*/ reg_addr = 0xB0; reg_data = 0x00; /* Enable pattern Generator*/ reg_addr = 0xB1; reg_data = 0x01; reg_addr = 0xB2; reg_data = 0x01; /* Gen color bar pattern, 8 Color bars, and a block size of 3*/ reg_addr = 0xB1; reg_data = 0x02; reg_addr = 0xB2; reg_data = 0xB3; /* Data format RAW12, Virtual channel identifier to 0*/ reg_addr = 0xB1; reg_data = 0x03; reg_addr = 0xB2; reg_data = 0x2C; /* PGEN line length*/ reg_addr = 0xB1; reg_data = 0x04; reg_addr = 0xB2; reg_data = 0x16; reg_addr = 0xB1; reg_data = 0x05; reg_addr = 0xB2; reg_data = 0x8C; /* PGEN bar size*/ reg_addr = 0xB1; reg_data = 0x06; reg_addr = 0xB2; reg_data = 0x02; reg_addr = 0xB1; reg_data = 0x07; reg_addr = 0xB2; reg_data = 0xD2; /* PGEN active Line per frame*/ reg_addr = 0xB1; reg_data = 0x08; reg_addr = 0xB2; reg_data = 0x08; reg_addr = 0xB1; reg_data = 0x09; reg_addr = 0xB2; reg_data = 0x78; /* PGEN total line per frame*/ reg_addr = 0xB1; reg_data = 0x0A; reg_addr = 0xB2; reg_data = 0x09; reg_addr = 0xB1; reg_data = 0x0B; reg_addr = 0xB2; reg_data = 0x20; /* Setup Line Period*/ reg_addr = 0xB1; reg_data = 0x0C; reg_addr = 0xB2; reg_data = 0x05; reg_addr = 0xB1; reg_data = 0x0D; reg_addr = 0xB2; reg_data = 0x93; /* Vertical Back Porch*/ reg_addr = 0xB1; reg_data = 0x0E; reg_addr = 0xB2; reg_data = 0xA8; /* Vertical Front Porch*/ reg_addr = 0xB1; reg_data = 0x0F; reg_addr = 0xB2; reg_data = 0x00; /* Configure Color values*/ reg_addr = 0xB1; reg_data = 0x10; reg_addr = 0xB2; reg_data = 0x88; reg_addr = 0xB1; reg_data = 0x11; reg_addr = 0xB2; reg_data = 0xFF; reg_addr = 0xB1; reg_data = 0x12; reg_addr = 0xB2; reg_data = 0xF8;
The same configuration works for deserializer as shown in the below image (Ignore the color as it is done by incorrect post processing)
However, When I apply the same register configurations for Serializer, I get something completely different. It looks like below images
When I dumped the Registers from (0x4C - 0x7F) of my DS90UB958-Q1 deserializer during streaming, I see that there are a lot of errors on the Channel. Attached the logs for reference
========= Reg dump [0] ======== value @ 0x4C is [0x1] value @ 0x4D is [0x38] value @ 0x4E is [0xfb] value @ 0x4F is [0x0] value @ 0x50 is [0x0] value @ 0x51 is [0x0] value @ 0x52 is [0x0] value @ 0x53 is [0x4] value @ 0x54 is [0x6] value @ 0x55 is [0x0] value @ 0x56 is [0x0] value @ 0x57 is [0x0] value @ 0x58 is [0x5a] value @ 0x59 is [0x0] value @ 0x5A is [0x0] value @ 0x5B is [0x30] value @ 0x5C is [0x30] value @ 0x5D is [0x20] value @ 0x5E is [0x0] value @ 0x5F is [0x0] value @ 0x60 is [0x0] value @ 0x61 is [0x0] value @ 0x62 is [0x0] value @ 0x63 is [0x0] value @ 0x64 is [0x0] value @ 0x65 is [0x20] value @ 0x66 is [0x0] value @ 0x67 is [0x0] value @ 0x68 is [0x0] value @ 0x69 is [0x0] value @ 0x6A is [0x0] value @ 0x6B is [0x0] value @ 0x6C is [0x0] value @ 0x6D is [0x7c] value @ 0x6E is [0x88] value @ 0x6F is [0x88] value @ 0x70 is [0x2b] value @ 0x71 is [0x2c] value @ 0x72 is [0xe4] value @ 0x73 is [0x1] value @ 0x74 is [0xc4] value @ 0x75 is [0x16] value @ 0x76 is [0x8c] value @ 0x77 is [0xc1] value @ 0x78 is [0x0] value @ 0x79 is [0x1] value @ 0x7A is [0xf] value @ 0x7B is [0xff] value @ 0x7C is [0x0] value @ 0x7D is [0x0] value @ 0x7E is [0x0] value @ 0x7F is [0x0] ========= Reg dump [1] ======== value @ 0x4C is [0x1] value @ 0x4D is [0x37] value @ 0x4E is [0x3c] value @ 0x4F is [0x79] value @ 0x50 is [0x40] value @ 0x51 is [0x0] value @ 0x52 is [0x0] value @ 0x53 is [0x4] value @ 0x54 is [0x6] value @ 0x55 is [0x1] value @ 0x56 is [0x33] value @ 0x57 is [0x0] value @ 0x58 is [0x5a] value @ 0x59 is [0x0] value @ 0x5A is [0x0] value @ 0x5B is [0x30] value @ 0x5C is [0x30] value @ 0x5D is [0x20] value @ 0x5E is [0x0] value @ 0x5F is [0x0] value @ 0x60 is [0x0] value @ 0x61 is [0x0] value @ 0x62 is [0x0] value @ 0x63 is [0x0] value @ 0x64 is [0x0] value @ 0x65 is [0x20] value @ 0x66 is [0x0] value @ 0x67 is [0x0] value @ 0x68 is [0x0] value @ 0x69 is [0x0] value @ 0x6A is [0x0] value @ 0x6B is [0x0] value @ 0x6C is [0x0] value @ 0x6D is [0x7c] value @ 0x6E is [0x88] value @ 0x6F is [0x88] value @ 0x70 is [0x2b] value @ 0x71 is [0x2c] value @ 0x72 is [0xe4] value @ 0x73 is [0x1] value @ 0x74 is [0xc4] value @ 0x75 is [0x16] value @ 0x76 is [0x8c] value @ 0x77 is [0xc1] value @ 0x78 is [0x0] value @ 0x79 is [0x1] value @ 0x7A is [0xf] value @ 0x7B is [0xff] value @ 0x7C is [0x0] value @ 0x7D is [0x0] value @ 0x7E is [0x0] value @ 0x7F is [0x0] ========= Reg dump [2] ======== value @ 0x4C is [0x1] value @ 0x4D is [0x30] value @ 0x4E is [0x79] value @ 0x4F is [0x2a] value @ 0x50 is [0x58] value @ 0x51 is [0x0] value @ 0x52 is [0x0] value @ 0x53 is [0x4] value @ 0x54 is [0x6] value @ 0x55 is [0x0] value @ 0x56 is [0xdc] value @ 0x57 is [0x0] value @ 0x58 is [0x5a] value @ 0x59 is [0x0] value @ 0x5A is [0x0] value @ 0x5B is [0x30] value @ 0x5C is [0x30] value @ 0x5D is [0x20] value @ 0x5E is [0x0] value @ 0x5F is [0x0] value @ 0x60 is [0x0] value @ 0x61 is [0x0] value @ 0x62 is [0x0] value @ 0x63 is [0x0] value @ 0x64 is [0x0] value @ 0x65 is [0x20] value @ 0x66 is [0x0] value @ 0x67 is [0x0] value @ 0x68 is [0x0] value @ 0x69 is [0x0] value @ 0x6A is [0x0] value @ 0x6B is [0x0] value @ 0x6C is [0x0] value @ 0x6D is [0x7c] value @ 0x6E is [0x88] value @ 0x6F is [0x88] value @ 0x70 is [0x2b] value @ 0x71 is [0x2c] value @ 0x72 is [0xe4] value @ 0x73 is [0x0] value @ 0x74 is [0xa] value @ 0x75 is [0x16] value @ 0x76 is [0x8c] value @ 0x77 is [0xc1] value @ 0x78 is [0x0] value @ 0x79 is [0x1] value @ 0x7A is [0xf] value @ 0x7B is [0xff] value @ 0x7C is [0x0] value @ 0x7D is [0x0] value @ 0x7E is [0x0] value @ 0x7F is [0x0] ========= Reg dump [3] ======== value @ 0x4C is [0x1] value @ 0x4D is [0x30] value @ 0x4E is [0x3a] value @ 0x4F is [0x0] value @ 0x50 is [0x0] value @ 0x51 is [0x0] value @ 0x52 is [0x0] value @ 0x53 is [0x4] value @ 0x54 is [0x6] value @ 0x55 is [0x0] value @ 0x56 is [0x0] value @ 0x57 is [0x0] value @ 0x58 is [0x5a] value @ 0x59 is [0x0] value @ 0x5A is [0x0] value @ 0x5B is [0x30] value @ 0x5C is [0x30] value @ 0x5D is [0x20] value @ 0x5E is [0x0] value @ 0x5F is [0x0] value @ 0x60 is [0x0] value @ 0x61 is [0x0] value @ 0x62 is [0x0] value @ 0x63 is [0x0] value @ 0x64 is [0x0] value @ 0x65 is [0x20] value @ 0x66 is [0x0] value @ 0x67 is [0x0] value @ 0x68 is [0x0] value @ 0x69 is [0x0] value @ 0x6A is [0x0] value @ 0x6B is [0x0] value @ 0x6C is [0x0] value @ 0x6D is [0x7c] value @ 0x6E is [0x88] value @ 0x6F is [0x88] value @ 0x70 is [0x2b] value @ 0x71 is [0x2c] value @ 0x72 is [0xe4] value @ 0x73 is [0x0] value @ 0x74 is [0x4b] value @ 0x75 is [0xfe] value @ 0x76 is [0x0] value @ 0x77 is [0xc1] value @ 0x78 is [0x0] value @ 0x79 is [0x1] value @ 0x7A is [0xf] value @ 0x7B is [0xff] value @ 0x7C is [0x0] value @ 0x7D is [0x0] value @ 0x7E is [0x0] value @ 0x7F is [0x0] ========= Reg dump [4] ======== value @ 0x4C is [0x1] value @ 0x4D is [0x30] value @ 0x4E is [0xf3] value @ 0x4F is [0x0] value @ 0x50 is [0x0] value @ 0x51 is [0x0] value @ 0x52 is [0x0] value @ 0x53 is [0x4] value @ 0x54 is [0x6] value @ 0x55 is [0x0] value @ 0x56 is [0x0] value @ 0x57 is [0x0] value @ 0x58 is [0x5a] value @ 0x59 is [0x0] value @ 0x5A is [0x0] value @ 0x5B is [0x30] value @ 0x5C is [0x30] value @ 0x5D is [0x20] value @ 0x5E is [0x0] value @ 0x5F is [0x0] value @ 0x60 is [0x0] value @ 0x61 is [0x0] value @ 0x62 is [0x0] value @ 0x63 is [0x0] value @ 0x64 is [0x0] value @ 0x65 is [0x20] value @ 0x66 is [0x0] value @ 0x67 is [0x0] value @ 0x68 is [0x0] value @ 0x69 is [0x0] value @ 0x6A is [0x0] value @ 0x6B is [0x0] value @ 0x6C is [0x0] value @ 0x6D is [0x7c] value @ 0x6E is [0x88] value @ 0x6F is [0x88] value @ 0x70 is [0x2b] value @ 0x71 is [0x2c] value @ 0x72 is [0xe4] value @ 0x73 is [0x0] value @ 0x74 is [0x4b] value @ 0x75 is [0xfe] value @ 0x76 is [0x0] value @ 0x77 is [0xc1] value @ 0x78 is [0x0] value @ 0x79 is [0x1] value @ 0x7A is [0x0] value @ 0x7B is [0x0] value @ 0x7C is [0x0] value @ 0x7D is [0x0] value @ 0x7E is [0x0] value @ 0x7F is [0x0]
Could someone shed a light on what the issue might be?
Please let me know if anything else is required.