DS90UB948-Q1: DS90UB948TNKDRQ1

Part Number: DS90UB948-Q1

The serializer DS90UB947 is paired with the deserializer DS90UB948, and the screen resolution is 1920*1080. When resetting to factory settings, the screen icons appear jagged. How can this be resolved?image.png

  • Hello,

    1. When you mention that this is happening when the system is reset to factory settings, does that mean that the devices are just power-cycles or PDB is toggled?

    2. Could you tell us about what you are testing? Does this happen every time the system is run, or on certain power-cycles or if the device is not programmed? Is there any case when this issue is not observed?

    I am asking whether you already have a working system and this is a sporadic issue, or if the system hasn't been configured in a valid case yet.

    3. We would need more information about this to narrow down, but on first glance this seems like a pixel-swap issue. It's possible that the output of the 948 ODD/EVEN pixels are connected to swapped ports of the OLDI receiver.

    Please check the "Dual Swap" section of the datasheet that shows how it can be swapped using either MODE_SEL0 or overwritten via registers:

    "When operated in Dual OLDI output mode, the odd and even output channels (D0-3 and D4-7 respectively) can be swapped. This is configurable through MODE_SEL0 pin strapping (see table 7-8) and can be overridden via I2C using the FPD_TX_MODE register."



    If this initial configuration does not resolve the issue, them please provide more information about the working vs non-working issue cases so we can compare.

    Best regards,
    Ikram

  • Hello:
          Previously, by adding a work queue to poll and query the registers of 948 in the 947 driver of the Linux kernel, a sawtooth issue arose. Now, after removing it, this problem has been resolved. However, during the automated loop stress test for power-on/power-off experiments, a black screen appeared, and the issue was reproduced after 241 tests. Please help analyze the cause. Below are the register values during normal screen display and abnormal black screen. Thank you for your support:


    Abnormal black screen

    console:/ # i2cdump -fy 5 0x0c

    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef

    00: 18 00 00 d2 90 00 58 60 60 00 45 00 17 23 33 00 ?..??.X``.E.?#3.

    10: 00 00 00 98 00 01 fe 9e 7f 7f 09 00 05 00 04 00 ...?.??????.?.?.

    20: 0b 00 25 00 00 00 00 00 01 20 20 a0 00 00 a5 5a ?.%.....? ?..?Z

    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    40: 14 4b 00 00 80 00 63 00 00 00 00 00 00 00 00 00 ?K..?.c.........

    50: 16 00 00 00 03 00 00 02 00 00 cd 03 02 06 44 8b ?...?..?..????D?

    60: 22 02 00 00 10 00 00 00 00 00 00 00 00 00 00 00 "?..?...........

    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    c0: 00 00 80 00 78 00 00 60 c0 00 00 00 00 00 ff 00 ..?.x..`?.....?.

    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    e0: 00 00 80 00 68 38 00 00 00 00 00 00 00 00 00 00 ..?.h8..........

    f0: 5f 55 42 39 34 37 00 00 00 00 00 00 00 00 00 00 _UB947..........

    console:/ #

    console:/ #

    console:/ # i2cdump -fy 5 0x2c

    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef

    00: 58 04 00 fa fe 1e 00 18 60 00 00 00 00 00 00 00 X?.???.?`.......

    10: 00 00 00 00 00 00 00 00 00 01 00 00 33 10 53 03 .........?..3?S?

    20: 00 00 00 20 08 00 83 84 19 00 00 00 00 00 00 00 ... ?.???.......

    30: 00 00 90 25 01 00 00 8c 00 00 00 00 20 e0 23 00 ..?%?..?.... ?#.

    40: 43 03 03 00 60 88 00 00 0f 80 00 08 00 00 63 00 C??.`?..??.?..c.

    50: 03 10 00 01 80 00 00 00 00 7f 20 20 00 00 00 00 ??.??....? ....

    60: 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ....?...........

    70: 00 00 00 07 07 08 00 00 00 00 00 00 02 00 00 00 ...???......?...

    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    a0: 00 00 84 00 00 00 00 00 00 00 00 00 00 00 00 00 ..?.............

    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    c0: 00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 ........?.......

    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    f0: 5f 55 42 39 34 38 00 00 00 00 00 00 00 00 00 00 _UB948..........

    正常亮屏:

    console:/ # i2cdump -fy 5 0x0c

    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef

    00: 18 00 00 d2 90 00 58 60 60 00 05 00 07 23 33 00 ?..??.X``.?.?#3.

    10: 00 00 00 98 00 01 fe 9e 7f 7f 09 00 05 00 04 00 ...?.??????.?.?.

    20: 0b 00 25 00 00 00 00 00 01 20 20 a0 00 00 a5 5a ?.%.....? ?..?Z

    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    40: 14 4b 00 00 80 00 63 00 00 00 00 00 00 00 00 00 ?K..?.c.........

    50: 16 00 00 00 03 00 00 02 00 00 cd 03 02 06 44 8b ?...?..?..????D?

    60: 22 02 00 00 10 00 00 00 00 00 00 00 00 00 00 00 "?..?...........

    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    c0: 00 00 80 00 78 00 00 40 c0 00 00 00 00 00 ff 00 ..?.x..@?.....?.

    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    e0: 00 00 80 00 68 38 00 00 00 00 00 00 00 00 00 00 ..?.h8..........

    f0: 5f 55 42 39 34 37 00 00 00 00 00 00 00 00 00 00 _UB947..........

    console:/ # i2cdump -fy 5 0x2c

    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef

    00: 58 04 00 fa fe 1e 00 18 60 00 00 00 00 00 00 00 X?.???.?`.......

    10: 00 00 00 00 00 00 00 00 00 01 00 00 33 10 53 03 .........?..3?S?

    20: 00 00 00 20 08 00 83 84 19 00 00 00 00 00 00 00 ... ?.???.......

    30: 00 00 90 25 01 00 00 8c 00 00 00 01 20 e0 23 00 ..?%?..?...? ?#.

    40: 43 03 03 00 60 88 00 00 0f 80 00 08 00 00 63 00 C??.`?..??.?..c.

    50: 03 10 00 01 80 00 00 00 00 7f 20 20 00 00 00 00 ??.??....? ....

    60: 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ....?...........

    70: 00 00 00 07 07 08 00 00 00 00 00 00 02 00 00 00 ...???......?...

    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    a0: 00 00 84 00 00 00 00 00 00 00 00 00 00 00 00 00 ..?.............

    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    c0: 00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 ........?.......

    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    f0: 5f 55 42 39 34 38 00 00 00 00 00 00 00 00 00 00 _UB948..........

  • Hello,

    Previously, by adding a work queue to poll and query the registers of 948 in the 947 driver of the Linux kernel, a sawtooth issue arose. Now, after removing it, this problem has been resolved.

    Could you please share what registers were changed between the issue and working cases? Are there specific registers on the 947 or 948 that had to be changed to correct this?

    When the black screen issue during power-up occurred, did you initialize the device with the power-up sequence? Please check the sequence from the datasheet to confirm.

    Best regards,
    Ikram

  • hello:

         According to the specification, initialization is performed in a timely manner, and the timing requirements are met, such as the time for pulling down the PDB pin。

    init 947 as follows:

        i2c_writeByte(I2C_947_ADDR, 0x4f, 0x00);//dual input
        i2c_writeByte(I2C_947_ADDR, 0x5b, 0x03);//dual output
        i2c_writeByte(I2C_947_ADDR, 0x1e, 0x04);//Use I2C ID+1 for FPD-Link III Port 1 register access
        i2c_writeByte(I2C_947_ADDR, 0x08, 0x30<<1);//I2C Pass-through Port0/Port1
        i2c_writeByte(I2C_947_ADDR, 0x17, 0x9e);//config I2C Pass All
        i2c_writeByte(I2C_947_ADDR, 0x04, 0x90);//mode select
        i2c_writeByte(I2C_947_ADDR, 0x07, 0x30<<1);//slave id
        i2c_writeByte(I2C_947_ADDR, 0x08, 0x30<<1);//slave alias id
        i2c_writeByte(I2C_947_ADDR, 0x0e, 0x33);
        i2c_writeByte(I2C_947_ADDR, 0x0d, 0x03);
    948:
        i2c_writeByte(I2C_948_ADDR, 0x03, 0xfa);//i2c pass all
        i2c_writeByte(I2C_948_ADDR, 0x08, 0x30<<1);//remote device ID
        i2c_writeByte(I2C_948_ADDR, 0x1e, 0x53);
        i2c_writeByte(I2C_948_ADDR, 0x1f, 0x03);
        value = i2c_readByte(I2C_948_ADDR, 0x1e);
        value1 = i2c_readByte(I2C_948_ADDR, 0x1f);
  • Hello,

    I will check the register dumps and get back to you by tomorrow.

    Best regards,
    Ikram