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.

DS90UB9702-Q1: How can the I2C channel passthrough between the 9702 and the 935 be achieved through FPGA configuration in the 9702 + FPGA + 935 architecture?

Part Number: DS90UB9702-Q1

Tool/software:

The FPGA configures the test board 9702 and 935 through I2C to achieve I2C passthrough between 9702 and 935, enabling Orin to directly control the camera. The entire FPGA test board achieves seamless insertion that is completely transparent to the Orin system.

  • Hi Tianmeng, 

    Are you looking to control the 9702 on the test board via the Orin? 

    Please take a look at the following thread on how this can be achieved:  DS90UB953-Q1: I2C control over multiple Serializer and Deserializes

    The same method applies to the UB97xx devices. 

    Best,

    Zoe

  • Hi,

    It's not about using Orin to control the 9702. Instead, we need to configure the transparent transmission between the 9702 and 935 on the test board via the I2C bus on the test board, so that Orin can access the camera.

    Best regards,
  • Hi Tianmeng, 

    For pure I2C passthrough, enable I2C passthrough all on both UB9702s in register 0x58[7] for the selected port (selected in register 0x4C). 

    If the same strap address for the UB935 is used on the test board and the camera. Then I2C passthrough all can not be used in this case as transactions for the camera will be responded to by the test board serializer as it is the first in the chain. 

    See below example to set up communication with the camera on the Orin side: 

    #  des addresses
    des_9702_0 = 0x7A
    des_9702_1_addr = 0x60
    des_9702_1_alias = 0x60
    # 935 addresses
    ser_935_0_addr = 0x30
    ser_935_0_alias = 0x94
    ser_935_1_addr = 0x30
    ser_935_1_alias = 0x96
    
    # 9702-0 config
    # select rx port 3
    board.WriteI2C(des_9702_0, 0x4C, 0x38)  
    board.WriteI2C(des_9702_0, 0xB0, 0x10) 
    # set 971 address/alias
    board.WriteI2C(des_9702_0,0x5B,ser_935_0_addr) #ser_addr 
    board.WriteI2C(des_9702_0,0x5C,ser_935_0_alias) #ser_alias
    # turn on i2c passthrough
    board.WriteI2C(des_9702_0,0x58,0x5E) 
    # 9702-0 target config
    # Only the devices on 9702_1 ports[0:2] are programmed due to a limit of 8 target_id/alias registers per port
    # If you need to communicate to port 3 devices, modify one of the 935 and sensor configs to include port 3
    # For example, replace target_id[3] and target_alias[3] with the 935 address/alias on port 3, and replace target_id[6] and target_alias[6] with the sensor address/alias on port 3
    board.WriteI2C(des_9702_0,0x5D, des_9702_1_addr) # target_id[0]
    board.WriteI2C(des_9702_0,0x65, des_9702_1_alias) # target_alias[0]
    board.WriteI2C(des_9702_0,0x5E,ser_935_1_alias) # target_id[1] 
    board.WriteI2C(des_9702_0,0x66,ser_935_1_alias) # target_alias[1] 
    
    # 9702_1 config
    # select rx port 0
    board.WriteI2C(des_9702_1_alias, 0x4C, 0x01) 
    board.WriteI2C(des_9702_1_alias, 0xB0, 0x04)
    #turn on i2c passthrough
    board.WriteI2C(des_9702_1_alias,0x58,0x5E) # I2C passthrough = ON
    #set 935 address/alias
    board.WriteI2C(des_9702_1_alias,0x5B, ser_935_1_addr) # ser_addr
    board.WriteI2C(des_9702_1_alias,0x5C, ser_935_1_alias) # ser_alias
    

    Best,

    Zoe

  • Hi Zoe

        Are the addresses of IIC devices all 8 bits when configuring them? We will find some time to verify it next week!

        Best regards,              

  • Hi Tianmeng, 

    Yes, these are the 8-bit I2C addresses being used in the script example. 

    Best,

    Zoe

  • Hi Zoe

        
        Configure the 9702 for the orin and the test board respectively according to what you said. The orin cannot find the addresses of any devices on the test board. Is 0x7A the I2C device address of orin?

      Best regards,    

  • Hi Tianmeng, 

    The IDX values in the first few lines will need to be configured based on your application. 

    Best,

    Zoe