Dear TI:
Can we configure these like configure in pattern test? We met one issue , UB941 -> two UB948, and only one display is ok, so we want to configure port[x] for each FPD link.
BRs,
Arvin
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.
Dear TI:
Can we configure these like configure in pattern test? We met one issue , UB941 -> two UB948, and only one display is ok, so we want to configure port[x] for each FPD link.
BRs,
Arvin
Hello Chen,
Can you please share the full panel timing parameter spec for both panels including the tolerances? There is some limited adjustment capability for the timing parameters in splitter mode, but not full control so if you share the timing parameters, then I can help you figure out if there is a method to meet the timing of both panels
Best Regards,
Casey
Hello Chen,
The above seems to show only one panel spec but you mentioned there are two panels connected through 941AS. Can you share the timing for both panels?
Also is the above showing only one half of the horizontal timing (one OLDI channel?) It looks like a 1920x720 panel size if I were to double the Hactive. 960x720 is a relatively uncommon panel size
Best Regards,
Casey
Hi Casey:
It's same panel.
And for your doubt about size, you're right. It's 1920*720...
Hello Chen,
So you are trying to drive two identical 1920x720p panels? Can you also provide the timing information for the superframe which you are providing to 941AS which contains both images and the 941AS device configuration?
Best Regards,
Casey
Hello Chen,
Here's my understanding of the current system you have:
1x DSI -> 941AS -> 2x 948 -> each display 1920x720@60 with PCLK = 96MHz
The timing parameters for each display are as follows:
HACT = 1920
HFP = 64
HSYNC = 32
HBP = 32
VACT = 720
VFP = 45
VSYNC = 8
VBP = 8
PCLK = 96MHz
In order to generate a superframe to support 2x of these screens, then the source image must have 2x the horizontal timing for each parameter in side by side 3D format and 2x the PCLK of the video for each screen, so that would mean that the DSI source image should have the following dimensions:
HACT = 3840
HFP = 128
HSYNC = 64
HBP = 64
VACT = 720
VFP = 45
VSYNC = 8
VBP = 8
PCLK = 192MHz
Then you can run the following example code to init the 941AS to drive the two screens:
# 3840x720@60 Symmetric Split Example - 2x 1920x720@60 # Video 0 and Video 1 Parameters: # HACT = 1920 # HFP = 64 # HSYNC = 32 # HBP = 32 # VACT = 720 # VFP = 45 # VSYNC = 8 # VBP = 8 # PCLK = 96MHz # DSI Superframe Dimensions: # HACT = 3840 # HFP = 128 # HSYNC = 64 # HBP = 64 # VACT = 720 # VFP = 45 # VSYNC = 8 # VBP = 8 # PCLK = 192MHz # DSI clock = 576MHz # DSI Lane Speed = 1152Mbps/lane # 4 Lanes DSI # DSI input port 0 import time UB941AS = 0x18 board.WriteI2C(UB941AS,0x01,0x02) # Reset time.sleep(0.1) board.WriteI2C(UB941AS,0x01,0x08) # Disable DSI board.WriteI2C(UB941AS,0x1E,0x01) # Select port 0 board.WriteI2C(UB941AS,0x4F,0x8C) # 4 Lane Mode continuous clock board.WriteI2C(UB941AS,0x5B,0x07) # Splitter mode board.WriteI2C(UB941AS,0x40,0x04) # TSKIP_CNT board.WriteI2C(UB941AS,0x41,0x05) # TSKIP_CNT board.WriteI2C(UB941AS,0x42,0x40) # TSKIP_CNT board.WriteI2C(UB941AS,0x56,0x80) # L/R Pixel Processing board.WriteI2C(UB941AS,0x32,0x80) # Set 2D Line Size 1920 board.WriteI2C(UB941AS,0x33,0x07) # board.WriteI2C(UB941AS,0x1E,0x01) # Select port 0: 1920x720 board.WriteI2C(UB941AS,0x36,0x00) board.WriteI2C(UB941AS,0x37,0x80) # X Start = 0 board.WriteI2C(UB941AS,0x38,0x7F) board.WriteI2C(UB941AS,0x39,0x07) # X Stop = 1919 board.WriteI2C(UB941AS,0x3A,0x00) board.WriteI2C(UB941AS,0x3B,0x00) # Y Start = 0 board.WriteI2C(UB941AS,0x3C,0xCF) board.WriteI2C(UB941AS,0x3D,0x02) # Y Stop = 719 board.WriteI2C(UB941AS,0x1E,0x02) # Select port 1: 1920x720 board.WriteI2C(UB941AS,0x36,0x00) board.WriteI2C(UB941AS,0x37,0x80) # X Start = 0 board.WriteI2C(UB941AS,0x38,0x7F) board.WriteI2C(UB941AS,0x39,0x07) # X Stop = 1919 board.WriteI2C(UB941AS,0x3A,0x00) board.WriteI2C(UB941AS,0x3B,0x00) # Y Start = 0 board.WriteI2C(UB941AS,0x3C,0xCF) board.WriteI2C(UB941AS,0x3D,0x02) # Y Stop = 719 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
Best Regards,
Casey