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.

DS90UB941AS-Q1: how to config reg to access port1 948 in Splitter Mode

Part Number: DS90UB941AS-Q1

In spitter mode, i can access port0 948 through i2c slave address 0x2c,

but select to port1 , i can not access port1 948 through i2c slave address 0x2c,

actually operated port0 948.How to config reg to access  port1 948 in  Splitter Mode?

Thanks.

  • Hello Jianlin,

    We had this question come up recently and we need to double check what the conclusion was there. I can say that if you can strap the IDX pins on the two 948s differently to give them different I2C addresses on power up this solution can work much more easily. We have to double check if there is a solution to modify the addresses remotely. Do you have the capability to modify the IDX strapping for the 948s independently?

    Best Regards,

    Casey 

  • Hello Jianlin,

    To get this to work you need to assign different addresses to each of the 948s so that they can be distinguished from eachother. 

    Try the following:

    Write 941AS reg 0x1E = 0x01 to select port 0 

    Write 941AS reg 0x03 = 0x9A to enable I2C passthrough on port 0

    Write 948 reg 0x00 = 0x5D to override the address of the 948 on port 0 to 0x2E

    Write 941AS reg 0x1E = 0x02 to select port 0 

    Write 941AS reg 0x03 = 0x9A to enable I2C passthrough on port 1

    Write 941AS reg 0x1E = 0x03 to select both ports 

    Now you should be able to talk to port 0 DES by using 0x2C, and port 1 DES by using 0x2E

    Best Regards,

    Casey 

  • Hello Casey,

    I config reg as follow, 948 reg 0x00 = 0x34, try to write 0x09 to port 1 DES reg 0x1f by using 0x1a, the i2c write can success.

    But the 948 GPIO3 can not output high.The i try to read port 1 DES reg by using 0x1a, what i read is 941 reg.

    splitter mode port1.txt
    (ti941_addr, 0x01,0x08); //Disable DSI
    (ti941_addr,0x1E,0x01); //Select FPD-Link III Port 0
    (ti941_addr,0x03,0x9A); //Enable I2C_PASSTHROUGH, FPD-Link III Port 0
    (ti941_addr,0x17,0x9E);
    
    (ti941_addr,0x06,0x59);
    (ti941_addr,0x07,0x30);
    (ti941_addr,0x08,0x32);  
    
    (ti941_addr,0x0E,0x03);
    (ti941_addr,0x0F,0x03);
    (ti941_addr,0x4F,0x8C); //Set DSI_CONTINUOUS_CLOCK, 4 lanes, DSI Port 0
    (ti941_addr,0x5B,0x07); //Force Splitter mode
    (ti941_addr,0x56,0x80); //Enable Left/Right 3D processing to allow superframe splitting
    
    (ti941_addr,0x1E,0x02); //Select FPD-Link III Port 1
    (ti941_addr,0x03,0x9A); //Enable I2C_PASSTHROUGH, FPD-Link III Port 1
    (ti941_addr,0x17,0x9E);
    
    (ti941_addr,0x06,0x61);
    (ti941_addr,0x07,0x30);
    (ti941_addr,0x08,0x34);  
    
    (ti941_addr,0x0E,0x03);
    (ti941_addr,0x0F,0x03);   
    (ti941_addr,0x4F,0x8C); //Set DSI_CONTINUOUS_CLOCK, 4 lanes, DSI Port 1
    (ti941_addr,0x5B,0x07); //Force Splitter mode
    (ti941_addr,0x56,0x80); //Enable Left/Right 3D processing to allow superframe splitting
    
    (ti941_addr,0x32,0x80); //Set the line size to 1280(LSB)
    (ti941_addr,0x33,0x07); //Set the line size to 1280 (MSB)
    
    (ti941_addr,0x1E,0x01); //Select FPD-Link III Port 1
    (ti941_addr,0x36,0x00); //Set crop start X position to 0 (LSB)
    (ti941_addr,0x37,0x80); //Set crop start X position to 0 (MSB) and enable cropping
    (ti941_addr,0x38,0x7F); //Set crop stop X position to 1919 (LSB)
    (ti941_addr,0x39,0x07); //Set crop stop X position to 1919 (MSB)
    (ti941_addr,0x3A,0x00); //Set crop start Y position to 0 (LSB)
    (ti941_addr,0x3B,0x00); //Set crop start Y position to 0 (MSB)
    (ti941_addr,0x3C,0xCF); //Set crop stop Y position to 719 (LSB)
    (ti941_addr,0x3D,0x02); //Set crop stop Y position to 719 (MSB)
    
    (ti941_addr,0x1E,0x02); //Select FPD-Link III Port 1
    (ti941_addr,0x36,0x00); //Set crop start X position to 0 (LSB)
    (ti941_addr,0x37,0x80); //Set crop start X position to 0 (MSB) and enable cropping
    (ti941_addr,0x38,0x7F); //Set crop stop X position to 1919 (LSB)
    (ti941_addr,0x39,0x07); //Set crop stop X position to 1919 (MSB)
    (ti941_addr,0x3A,0x00); //Set crop start Y position to 0 (LSB)
    (ti941_addr,0x3B,0x00); //Set crop start Y position to 0 (MSB)
    (ti941_addr,0x3C,0xcF); //Set crop stop Y position to 719 (LSB)
    (ti941_addr,0x3D,0x02); //Set crop stop Y position to 719 (MSB)
    
    (ti941_addr,0x40,0x04); //Select DSI Port 0 digital registers
    (ti941_addr,0x41,0x05); //Select DPHY_SKIP_TIMING register
    (ti941_addr,0x42,0x18); //Write TSKIP_CNT value for 300 MHz DSI clock frequency
    (ti941_addr,0x01,0x00); //Enable DSI
    (ti941_addr,0x30,0x01);
    (ti941_addr,0x1E,0x07);
    
    (ti941_addr,0x1E,0x01); 
    (ti948_addr, 0x1f, 0x09);
    
    (ti941_addr,0x1e,0x01);
    (ti941_addr,0x03,0x9a);
    (ti941_addr,0x00,0x34);
    (ti941_addr,0x1e,0x02);
    (ti941_addr,0x03,0x9a);
    (ti941_addr,0x1e,0x07);
    
    (ti948_2nd_addr, 0x1f, 0x09);
    

  • Jianlin,

    What addresses are your devices strapped to in your system with IDX?

    - 941AS

    - 948 Port 0

    - 948 Port 1?

    Best Regards,

    Casey 

  • 941AS trap IDX\ SEL0\ SEL1: 1\1\0,

    948 Des Slave:0x58

    splitter mode dump0117.txt
    //port0 941 dump
    34 00 00 9a 00 00 59 30 32 01 12 00 67 30 03 03 
    00 00 00 8f 00 00 fe 9e 7f 7f 01 00 00 00 01 16 
    0b 00 25 00 00 00 00 00 01 20 20 a0 00 00 a5 5a 
    00 09 80 07 0c 00 00 80 7f 07 00 00 cf 02 81 02 
    04 05 18 00 00 00 00 00 00 00 00 00 00 00 00 8c 
    16 00 00 00 02 10 80 02 00 00 f9 07 07 06 44 38 
    22 02 00 00 10 00 00 00 00 00 00 00 00 00 20 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 82 00 78 00 00 44 40 00 00 00 00 02 ff 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 82 00 68 08 00 00 00 00 00 00 00 02 00 00 
    5f 55 42 39 34 31 00 00 00 00 00 00 00 00 00 00 
    
    //port0 948 dump 
    58 04 00 f0 fe 9e 00 34 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 01 00 00 23 13 53 05 
    05 00 40 30 08 00 83 84 01 00 00 00 00 00 00 00 
    00 00 90 25 01 00 00 ac 00 00 00 01 20 e0 23 00 
    43 03 03 00 60 88 00 00 0f 80 00 08 00 00 63 00 
    03 10 00 01 80 00 00 00 00 7f 20 20 00 00 00 00 
    00 00 00 00 10 00 00 00 00 00 00 00 00 00 01 00 
    00 00 00 07 07 08 00 00 00 00 00 00 02 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    5f 55 42 39 34 38 00 00 00 00 00 00 00 00 00 00 
    
    //port1 941 dump 
    36 00 00 9a 00 00 61 30 34 01 10 00 67 30 03 03 
    00 00 00 8f 00 00 fe 9e 7f 7f 01 00 00 00 02 16 
    0b 00 25 00 00 00 00 00 01 20 20 a0 00 00 a5 5a 
    00 09 80 07 0c 00 00 80 7f 07 00 00 cf 02 81 02 
    04 05 18 00 00 00 00 00 00 00 00 00 00 00 00 8c 
    16 00 00 00 02 10 80 02 00 00 f9 07 07 06 44 38 
    22 02 00 00 10 00 00 00 00 00 00 00 00 00 20 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 72 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 82 00 78 00 00 64 40 00 00 00 00 02 ff 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 82 00 68 08 00 00 00 00 00 00 00 02 00 00 
    5f 55 42 39 34 31 00 00 00 00 00 00 00 00 00 00 
    
    //port1 948 dump 
    34 00 00 9a 00 00 59 30 32 01 12 00 67 30 03 03 
    00 00 00 8f 00 00 fe 9e 7f 7f 01 00 00 00 07 16 
    0b 00 25 00 00 00 00 00 01 20 20 a0 00 00 a5 5a 
    00 09 80 07 0c 00 00 80 7f 07 00 00 cf 02 81 02 
    04 05 18 00 00 00 00 00 00 00 00 00 00 00 00 8c 
    16 00 00 00 02 10 80 02 00 00 f9 07 07 06 44 38 
    22 02 00 00 10 00 00 00 00 00 00 00 00 00 20 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 7b 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 82 00 68 08 00 00 40 00 00 00 00 02 ff 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 82 00 68 08 00 00 00 00 00 00 00 02 00 00 
    5f 55 42 39 34 31 00 00 00 00 00 00 00 00 00 00

  • Hello Jianlin,

    So you have actually strapped the two 948s to different I2C addresses in each PCB? 

    941AS = 0x34

    948 port 0 = 0x58

    948 port 1 = 0x34

    Is that correct?

    Best Regards,

    Casey 

  • yes, port0 941 reg 0x06 = 0x59,

    port1 941 reg 0x06 = 0x61,

    i use 0x2c/0x30 access port 0 948/port1 948, the port1 948 still fail.

  • Hello Jianlin,

    If you have the devices strapped to different addresses from the HW, then there is no need to do address overrides. Do not program any registers - just start up the system to link the 941AS + 948s, then you should be able to read the detected addresses of each DES using PORT_SEL

    Set 0x1E = 0x01

    Read 0x06

    Set 0x1E = 0x02

    Read 0x06

    If your port 1 DES is strapped for address 0x68, then you should be accessing it with 7 bit address 0x34 instead of 0x30

    Best Regards,

    Casey 

  • Hello Casey,

    Thanks for your reply.I try your method, but access port1 DES still fail.

    Set 0x1E = 0x01,read 0x06, value 0x59, using 0x2c access port0 DES success.

    Set 0x1E = 0x02,read 0x06, value 0x61, using 0x30 access port1 DES fail.

    what other registers need to be set for access the port1 DES?

  • Jianlin,

    You must be programming the 0x06 register because I see for both ports bit 0 is set to FREEZE_DEVICE_ID which is not the default. The default is bit = 0 to let the device ID auto load, so can you please revert any programming you are doing to 0x06 before doing this procedure to see what the auto loaded addresses are?

    Best Regards,

    Casey 

  • Hi Casey,

    You are right, port0 port1 strap the same 0x58.

    using follow setting to overwrite port0 948 address to 0x60, and access port0 948 using 0x30, still fail.

    (ti941_addr,0x1e,0x01);
    (ti941_addr,0x03,0x9a);
    (ti948_addr,0x00,0x60);
    (ti941_addr,0x1e,0x02);
    (ti941_addr,0x03,0x9a);
    (ti941_addr,0x1e,0x03);

  • Hello Jianlin,

    You need to change the highlighted:

    (ti941_addr,0x1e,0x01);
    (ti941_addr,0x03,0x9a);
    (ti948_addr,0x00,0x60); -> (ti948_addr,0x00,0x61);
    (ti941_addr,0x1e,0x02);
    (ti941_addr,0x03,0x9a);
    (ti941_addr,0x1e,0x03);

    Bit 0 needs to be set to enable the override 

    Best Regards,

    Casey 

  • Hi Casey,

    The issue is solved,thanks very much.