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.

Linux/DS90UB954-Q1: DS90UB913 -----> DS90UB954-Q1

Part Number: DS90UB954-Q1

Tool/software: Linux

Hello, the following is my configuration code. I have achieved the obtained data from 913 to 953. PASS and LOCK signals are at high level.

#---------------------------------------- DS90UB913 --->> DS90UB954
i2cset -y 1 0x2E 0x4C 0x01 # write enable for RX port 0 register.
i2cset -y 1 0x2E 0x0C 0x01 # port 0 receiver enable !
i2cset -y 1 0x2E 0x0D 0x49 # 0100 -- IO_CTL
# 5E --- 50Mbps for DS90UB953
i2cset -y 1 0x2E 0x58 0xD6 # back channel frequency select. 50mbps for DS90UB953
i2cset -y 1 0x2E 0x18 0x00 # frameSync generation enable
sleep 1
i2cset -y 1 0x2E 0x6D 0x7F
#i2cset -y 1 0x2E 0x6D 0x7F # CSI mode -- ds90ub953:7C, 913:7F
#---------------------------------------------------------
#SER_ID --- for DS90UB953
#SER_ALIAS_ID
i2cset -y 1 0x2E 0x5B 0x30 # remote serializer ID
i2cset -y 1 0x2E 0x5C 0x4C # remote serializer alias ID

#SlaveID[0] --- for DS90UB953's SONY sensor
#SlaveAlias[0]
i2cset -y 1 0x2E 0x5D 0x20 # remote slave device ID 0
i2cset -y 1 0x2E 0x65 0x20 # remote slave device alias ID 0
#---------------------------------------------------------
#i2cset -y 1 0x2E 0x72 0xE8 # csi-2 virtual channel mapping register
sleep 1
i2cset -y 1 0x2E 0x33 0x23 # enable csi output
i2cset -y 1 0x2E 0x34 0x41 #
i2cset -y 1 0x2E 0x21 0xBC # csi replicate mode
i2cset -y 1 0x2E 0x20 0x00 # forwarding enabled for RX port
#
#i2cset -y 1 0x2E 0x7C 0x01

#i2cset -y 1 0x2E 0xBC 0x01
i2cset -y 1 0x2E 0xBA 0x03 # enable fpd-Link encoder crc
i2cset -y 1 0x2E 0x4A 0x10

  • May I ask which register is configured incorrectly?

  • Hello,

    please change register 0x58 in 954 from 0xD6 to 0x58.

    Also, which Mode are you using in the 913A?

  • Hello, I modified the following, oscilloscope test mipi-clk still has no waveform.My MODE is:

    10-bit mode, 20 to 100 MHz PCLK, 10 to 10 bit DATA + 2 SYNC

    #---------------------------------------- DS90UB913 --->> DS90UB954
    i2cset -f -y 1 0x2E 0x4C 0x01 # write enable for RX port 0 register.
    i2cset -f -y 1 0x2E 0x0C 0x81 # port 0 receiver enable !
    i2cset -f -y 1 0x2E 0x0D 0x49 # 0100 -- IO_CTL
    # 5E --- 50Mbps for DS90UB953
    i2cset -f -y 1 0x2E 0x58 0x58 # back channel frequency select. 50mbps for DS90UB953
    i2cset -f -y 1 0x2E 0x18 0x00 # frameSync generation enable
    sleep 1
    i2cset -f -y 1 0x2E 0x6D 0x7F
    #i2cset -y 1 0x2E 0x6D 0x7F # CSI mode -- ds90ub953:7C, 913:7F
    #---------------------------------------------------------
    # 30 echo " DS90UB913 B0(58) map to E2(71)"
    # 31 echo " Sensor 90(48) map to 62(31)"
    #SER_ID --- for DS90UB953
    #SER_ALIAS_ID
    #i2cset -f -y 1 0x2E 0x5B 0xB0 # remote serializer ID
    i2cset -f -y 1 0x2E 0x5C 0x7C # remote serializer alias ID
    i2cget -f -y 1 0x2e 0x5c
    #SlaveID[0] --- for DS90UB953's SONY sensor
    #SlaveAlias[0]
    #i2cset -f -y 1 0x2E 0x5D 0x90 # remote slave device ID 0
    #i2cset -f -y 1 0x2E 0x65 0x3C # remote slave device alias ID 0
    #---------------------------------------------------------
    #i2cset -f -y 1 0x2E 0x72 0xE8 # csi-2 virtual channel mapping register
    sleep 1
    i2cset -f -y 1 0x2E 0x33 0x23 # enable csi output
    i2cset -f -y 1 0x2E 0x34 0x41 #
    i2cset -f -y 1 0x2E 0x21 0xBC # csi replicate mode
    i2cset -f -y 1 0x2E 0x20 0x00 # forwarding enabled for RX port
    #
    #i2cset -f -y 1 0x2E 0x7C 0x01

    #i2cset -f -y 1 0x2E 0xBC 0x01
    i2cset -f -y 1 0x2E 0xBA 0x03 # enable fpd-Link encoder crc
    i2cset -f -y 1 0x2E 0x4A 0x10

    #
    i2cset -f -y 1 0x2E 0x1F 0x00
    i2cset -f -y 1 0x2E 0x70 0x1f
    #i2cset -f -y 1 0x2E 0x1E 0x0E

  • Are you initializing your Image sensor correctly? Can you measure the signals comming out of it into the 913A?

  • Are you configuring the correct SER Alias and Sensor ID and Alias in reg 0x5C, 0x5D and 0x65?
    Can you see the correct SER ID in reg 0x5B?

    Please do the following changes in your initialization:
    Change regsiter 0x21 from 0xBC to 0x81
    remove writing to reg 0x7C
    remove writing to reg 0xBA
    remove writing to reg 0xBC
    remove writing to reg 0x4A
    Change register 0x70 from 0x1F to 0x2B
    remove writing to reg 0x1E

  • Thank you for your reply. According to what you said above, oscilloscope detects that csi2-clk has waveform, but there is no waveform on csi_d0p. Is it normal?The 913 camera I'm using now outputs images when it's powered up and works without initialization.

    #---------------------------------------- DS90UB913 --->> DS90UB954
    i2cset -f -y 1 0x2E 0x4C 0x01 # write enable for RX port 0 register.
    i2cset -f -y 1 0x2E 0x0C 0x81 # port 0 receiver enable !
    i2cset -f -y 1 0x2E 0x0D 0x49 # 0100 -- IO_CTL
    # 5E --- 50Mbps for DS90UB953
    i2cset -f -y 1 0x2E 0x58 0x58 # back channel frequency select. 50mbps for DS90UB953
    i2cset -f -y 1 0x2E 0x18 0x00 # frameSync generation enable
    sleep 1
    i2cset -f -y 1 0x2E 0x6D 0x7F
    #i2cset -y 1 0x2E 0x6D 0x7F # CSI mode -- ds90ub953:7C, 913:7F
    #---------------------------------------------------------
    # 30 echo " DS90UB913 B0(58) map to E2(71)"
    # 31 echo " Sensor 90(48) map to 62(31)"
    #SER_ID --- for DS90UB953
    #SER_ALIAS_ID
    #i2cset -f -y 1 0x2E 0x5B 0xB0 # remote serializer ID
    i2cset -f -y 1 0x2E 0x5C 0x7C # remote serializer alias ID
    i2cget -f -y 1 0x2e 0x5c
    #SlaveID[0] --- for DS90UB953's SONY sensor
    #SlaveAlias[0]
    #i2cset -f -y 1 0x2E 0x5D 0x90 # remote slave device ID 0
    #i2cset -f -y 1 0x2E 0x65 0x3C # remote slave device alias ID 0
    #---------------------------------------------------------
    #i2cset -f -y 1 0x2E 0x72 0xE8 # csi-2 virtual channel mapping register
    sleep 1
    i2cset -f -y 1 0x2E 0x33 0x23 # enable csi output
    i2cset -f -y 1 0x2E 0x34 0x41 #
    i2cset -f -y 1 0x2E 0x21 0x81 # csi replicate mode
    i2cset -f -y 1 0x2E 0x20 0x00 # forwarding enabled for RX port
    #
    #i2cset -f -y 1 0x2E 0x7C 0x01

    #i2cset -f -y 1 0x2E 0xBC 0x01
    #i2cset -f -y 1 0x2E 0xBA 0x03 # enable fpd-Link encoder crc
    #i2cset -f -y 1 0x2E 0x4A 0x10

    #
    i2cset -f -y 1 0x2E 0x1F 0x00
    i2cset -f -y 1 0x2E 0x70 0x1E #
    #i2cset -f -y 1 0x2E 0x1E 0x0E

  • If you can measure at the 954 CSI outputs only clock but no data, that means your camera is not sending the video stream.

    Can you please answer my other questions? copying them again.

    1) Are you initializing your Image sensor correctly?

    2) Can you measure the signals comming out of the sensor into the 913A?

    3) Are you configuring the correct SER Alias and Sensor ID and Alias in reg 0x5C, 0x5D and 0x65?

    4) Can you see the correct SER ID in reg 0x5B?

     

  • Thank you very much for your reply.The position I measured above is wrong. According to the above configuration, there is already output.But it's green.I have confirmed that the format of the camera is YUV422 and RAW8.Could you please tell me how to modify register 913? I didn't see it in the manual.Here is my script:

    #---------------------------------------- DS90UB913 --->> DS90UB954
    i2cset -f -y 1 0x2E 0x4C 0x01 # write enable for RX port 0 register.
    i2cset -f -y 1 0x2E 0x0C 0x81 # port 0 receiver enable !
    i2cset -f -y 1 0x2E 0x0D 0x49 # 0100 -- IO_CTL
    # 5E --- 50Mbps for DS90UB953
    i2cset -f -y 1 0x2E 0x58 0x58 # back channel frequency select. 50mbps for DS90UB953
    i2cset -f -y 1 0x2E 0x18 0x00 # frameSync generation enable
    sleep 1
    i2cset -f -y 1 0x2E 0x6D 0x7F
    #i2cset -y 1 0x2E 0x6D 0x7F # CSI mode -- ds90ub953:7C, 913:7F
    #---------------------------------------------------------
    # 30 echo " DS90UB913 B0(58) map to E2(71)"
    # 31 echo " Sensor 90(48) map to 62(31)"
    #SER_ID --- for DS90UB953
    #SER_ALIAS_ID
    #i2cset -f -y 1 0x2E 0x5B 0xB0 # remote serializer ID
    i2cset -f -y 1 0x2E 0x5C 0x7C # remote serializer alias ID
    i2cget -f -y 1 0x2e 0x5c
    #SlaveID[0] --- for DS90UB953's SONY sensor
    #SlaveAlias[0]
    #i2cset -f -y 1 0x2E 0x5D 0x90 # remote slave device ID 0
    #i2cset -f -y 1 0x2E 0x65 0x3C # remote slave device alias ID 0
    #---------------------------------------------------------
    #i2cset -f -y 1 0x2E 0x72 0xE8 # csi-2 virtual channel mapping register
    sleep 1
    i2cset -f -y 1 0x2E 0x33 0x23 # enable csi output, 2 lanes
    i2cset -f -y 1 0x2E 0x34 0x41 #
    i2cset -f -y 1 0x2E 0x21 0x81 # csi replicate mode
    i2cset -f -y 1 0x2E 0x20 0x00 # forwarding enabled for RX port
    #
    #i2cset -f -y 1 0x2E 0x7C 0x01

    #i2cset -f -y 1 0x2E 0xBC 0x01
    #i2cset -f -y 1 0x2E 0xBA 0x03 # enable fpd-Link encoder crc
    #i2cset -f -y 1 0x2E 0x4A 0x10

    #
    i2cset -f -y 1 0x2E 0x1F 0x00
    i2cset -f -y 1 0x2E 0x70 0x1E #
    #i2cset -f -y 1 0x2E 0x1E 0x0E

  • Why are you using the address 0x2E for the 954? This is not valid. Please refer to the d/s table 15 for choosing the settings for the correct IDx.

     

     

    - Remove writing reg 0x0D --- you do not need to override IO supply mode detection.

    - Remove writing reg 0x18 --- using only one camera does not require Frame Sync.

    - Remove writing reg 0x72 --- this is valid only if your Serializer is a CSI device (953, 935...)

    Move writing reg 0x33 and reg 0x20 to the end of initialization.

    - Remove writing reg 0x34 --- you can keep the default

    - reg 0x7C -- why are you changing the polarity of Frame Valid signal?

    Which 8 bits are you using on the 913A side, upper 8 or lower 8 bits?

     

    Also please refer to the 954 data sheet section 7.4.2 and 7.4.3 to setup your 954 to the correct DVP Mode.

    Double check the resistor values in your design and compare them with table 2.

  • Hello,

    Is this issue resolved?

    Thanks,

    Casey