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.

DS90UB954-Q1: Need Register sequence for Camera bringup

Part Number: DS90UB954-Q1
Other Parts Discussed in Thread: DS90UB953-Q1

Hello TI Team,

Currently we are working on one project, where we are bringing up On Semi camera AR0544, connected using serializer and deserializer IC of TI.

Deserializer : DS90UB954-Q1
Serializer : DS90UB953-Q1

Camera : AR0544
Co-axial cable

PMIC : TPS65033000RGERQ1
SOC : QCS5430 Qualcomm.

We need register the sequence of both deserializer and serializer to write sensor XML in our Qualcomm QCS5430 soc. If you need any more information from our side, let us know.

Thank you,

Reena Patel

  • Hello Reena,

    How many cameras are connected to the DES? just one or two? to which DES RX port?

    Which mode are you using, Synch or non-Synch?

    Are you using any GPIO from the DES to the SER to enable/disable the image sensor?

    Are you sending Frame synch signal over the back channel to the image sensor?

    Is this Frame synch signal generated on the DES or coming from the SoC to the DES? over which GPIO?

  • Helio Hamzeh,

    How many cameras are connected to the DES? just one or two? to which DES RX port?
    - We are using one camera, connected to RX Port 0 of the deserializer.

    Which mode are you using, Synch or non-Synch?
    We are currently planning to use non-synchronous mode, as both the serializer and deserializer have independent 26 MHz crystal oscillators.
    Our cable length is approximately 1 meter (FAKRA cable).
    Based on our understanding, non-synchronous mode should be sufficient for this setup. Please let us know if synchronous mode is recommended instead for better performance or stability.

    Are you using any GPIO from the DES to the SER to enable/disable the image sensor?
    We are not using GPIO for sensor power or shutdown control.
    Current connections:
    Serializer GPIO1 → Camera sensor GPIO0 (reserved for future use)
    SoC GPIO → Deserializer GPIO1 (reserved for future use)
    At present, we have not configured forward channel or back channel GPIO.
    Please advise if any GPIO configuration is required for proper operation or future flexibility.

    Are you sending Frame synch signal over the back channel to the image sensor?
    Since our system uses only one camera, we are not using FrameSync.
    Our understanding is that FrameSync is primarily required for multi-camera synchronization, so it is not needed in our case. Please confirm if this is correct.

    Is this Frame synch signal generated on the DES or coming from the SoC to the DES? over which GPIO?
    Not applicable for our current design, as FrameSync is not used.
    However, if required in future, we understand it can be generated either:
    Internally by the deserializer, or
    Externally from the SoC via a GPIO input to the deserializer.


    This is our first time bringing up a GMSL/FPD-Link based camera solution. Any suggestions, best practices, or recommendations for configuration and bring-up would be greatly appreciated.

    Thank you,

    Reena Patel

  • Hello Reena,

    Based on our understanding, non-synchronous mode should be sufficient for this setup. Please let us know if synchronous mode is recommended instead for better performance or stability.

    That is correct. Both Modes do support same Datarates.

    Only different is Sync mode the SER uses the clock coming from the DES over back channel, while in non-Sync each device has it's own CLK source.

    Are you using any GPIO from the DES to the SER to enable/disable the image sensor?
    We are not using GPIO for sensor power or shutdown control.
    Current connections:
    Serializer GPIO1 → Camera sensor GPIO0 (reserved for future use)
    SoC GPIO → Deserializer GPIO1 (reserved for future use)
    At present, we have not configured forward channel or back channel GPIO.
    Please advise if any GPIO configuration is required for proper operation or future flexibility.

    This is completely depending on your use case. If you are not requiring any GPIO that is fine.

    Are you sending Frame synch signal over the back channel to the image sensor?
    Since our system uses only one camera, we are not using FrameSync.
    Our understanding is that FrameSync is primarily required for multi-camera synchronization, so it is not needed in our case. Please confirm if this is correct.

    That is correct. Although in some cases, some people uses the Fsync signal to trigger the frame generation even on one camera. But this is use case dependent.

    For the above configurations you really do not need any initialization script. The devices should be plug and play if your hardware settings (MODE and IDx pins) are correct and matching on both sides.

    Here is an example for initializing your link:

    # Deserializer Device Address = 0x60

    # Disable RX Port forwarding on RX0 and RX1 first
    board.WriteI2C(0x60, 0x20, 0x30)

    # Write to FPD RX0 Port
    board.WriteI2C(0x60, 0x4C, 0x01)

    # Enable Back-Channel and I2C Pass-through
    board.WriteI2C(0x60, 0x58, 0x5A) # 0x5A for non-Sync mode, 0x5E for Sync mode

    # Set Serializer Alias, SlaveID, and SlaveAlias for RX0
    board.WriteI2C(0x60, 0x5C, 0x) # Serializer Alias = 0x__
    board.WriteI2C(0x60, 0x5d, 0x) # SlaveID[0] = 0x__
    board.WriteI2C(0x60, 0x65, 0x) # SlaveAlias[0] = 0x__

    # Ensure RX Ports are Enabled and Lock Status is Detected

    # Once link is established, meaning 0x4D = 0x03 (LOCK and PASS are HIGH)

    # ----- Image Sensor Configuration Placeholder ---


    # Enable CSI Port 0, CSI Continuous Clock
    board.WriteI2C(0x60, 0x33, 0x03)

    # Enable CSI Round Robin forwarding
    board.WriteI2C(0x60, 0x21, 0x01)

    # Now forward RX port0 to CSI Port 0
    board.WriteI2C(0x60, 0x20, 0x20)