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: Driver code

Part Number: DS90UB941AS-Q1
Other Parts Discussed in Thread: ALP

Hi team,

Could you please provide the driver code for configuring the register of this device? Customer would like to take as an example to fasten design. Thanks.

BR

Sirui

  • Hi Sirui, 

    This is very dependent on particular application/implementation.

    Common items for scripting 941 are the following:

    1. I2C setting, such as pass-through, slave ID / Alias ID etc.

    2. DSI port setting, such as Tskip, channel number, port, etc.

    3. FPD-Link setting: such as single / dual etc.

    4. CLK mode (DSI CLK mode vs REFCLK mode, etc)

    ModeSel pins will also set many of these settings. 

    You need provide full information on the system (PCLK, CLK modes, etc) for further guidance on required script. Much of this information for creating init script is also in the datasheet which can be referenced. 

    Regards, 

    Logan

  • Hi   Ti,Sirui

    Please provide specific driver code. The project is urgent. Thank you!

  • Hi Li Li, Sirui

    We do have a specific driver code that applies to all customers/projects/configurations. If you need help assigning some of the previously mentioned register values, you will need to specifically provide the context of your project and specifically what is needed.

    Furthermore, for fastest bring-up, consider using the ALP software tool which can configure much of these settings via a software GUI. https://www.ti.com/tool/ALP

    Below is example script for 941:

    • Customer will need to make changes for TSKIP_CNT value
    • Customer will need to verify and check their ModeSel straps (CLK mode type, etc)
    • Please refer to datasheet for other functional mode details and configuration needs that may or may not apply to the system

    UB941AS = 0x18
    
    board.WriteI2C(UB941AS,0x01,0x02) # Reset
    time.sleep(0.1)
    board.WriteI2C(UB941AS,0x01,0x08) # Disable DSI
    
    board.WriteI2C(UB941AS,0x40,0x04) # TSKIP_CNT
    board.WriteI2C(UB941AS,0x41,0x05) # TSKIP_CNT
    board.WriteI2C(UB941AS,0x42,0x40) # TSKIP_CNT
    
    board.WriteI2C(UB941AS,0x41,0x21) # DSI_CONFIG_1
    board.WriteI2C(UB941AS,0x42,0x60) # Set negative HSYNC and VSYNC
    
    board.WriteI2C(UB941AS,0x40,0x10) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(UB941AS,0x41,0x86) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(UB941AS,0x42,0x0A) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(UB941AS,0x41,0x94) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(UB941AS,0x42,0x0A) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    
    board.WriteI2C(UB941AS,0x01,0x00) #Release DSI

    Regards, 

    Logan