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.

TMDS181: Now we use TI TMDS181 in the process of plugging and unplugging HDMI cable or switching EDID black screen or flower screen situation.

Part Number: TMDS181

Hi TI Team,

Now we use TI TMDS181 in the process of plugging and unplugging HDMI cable or switching EDID black screen or flower screen situation. At present, the test shows that the communication between TMDS181 and the graphics card is OK, but the part of the signal from TMDS181 to FPGA is not good, and there is something wrong with the data received by FPGA under abnormal circumstances.

I want to ask if this problem is caused by the pull-up resistance of the AC coupling. In the TI data I saw, the resistance was all replaced by RTERM. What is the recommended resistance value?

We did not add this resistor before, so we could not run at all. Later, we found out on the forum that we should add the pull resistor, and the recommendation in the forum was 50 ohms, so now we add 50 ohms.

Is the pull-up resistor 50 ohms acceptable? Is it too big? If it is not the pull-up resistance problem, could you help to analyze it and give us some suggestions? thank you.

  • Hi,

    The external Rterm along with the FPGA internal termination produces double termination network. A Rterm value of 50-Ω works with the TMDS181 TX, but also cuts in half the signal into the FPGA. If 50-Ω is used, then the TMDS181 TX voltage swing must be increased (VSADJ) to compensate for the double termination. A larger Rterm will also minimize the impact of double termination.

    Do you have any TMDS181 output waveform?

    Thanks

    David 

  • Hi,David

    Let me add a few things.
    We initially encountered the same problem as described in this post:
    https://e2e.ti.com/support/interface/f/interface-forum/911859/tmds181-tmds181-output-invalid-singnal?tisearch=e2e-sitesearch&keymatch=TMDS181#

    Later we found that switching EDID also caused this problem.
    They happen probabilistically.In serious cases once in seven or eight times.
    We can solve this problem by restarting TMDS181 with IIC power down instruction.But that's also probabilistic.


    We use TMDS181 as the sink side,and TX of TMDS181 connected to FPGA with AC Coupled.
    50-Ω pull-up resistors are installed.
    We tested the amplitude of the output , found the swing of TMDS data are not very stable ,sometimes are about 350mV,sometimes are only 210mV.
    And the FPGA can receive data, but it is invalid or incorrect.

    Could you tell me anything advice of that? Thank you so much.

  • Hi,

    Can you provide schematic, layout and read out the TMDS181 registers? The Page 0 registers are in the datasheet. To access Page 1 registers, please write 0x01 to register 0xFF first, and then read out the registers from 0x00 to 0xB1.

    The EDID and the output voltage looks to be two separate issues. 

    Later we found that switching EDID also caused this problem.
    They happen probabilistically.In serious cases once in seven or eight times.
    We can solve this problem by restarting TMDS181 with IIC power down instruction.But that's also probabilistic.

    • Did you toggle HPD_SNK when switching the EDID?

    We use TMDS181 as the sink side,and TX of TMDS181 connected to FPGA with AC Coupled.
    50-Ω pull-up resistors are installed.
    We tested the amplitude of the output , found the swing of TMDS data are not very stable ,sometimes are about 350mV,sometimes are only 210mV.
    And the FPGA can receive data, but it is invalid or incorrect.

    • I need to review the layout. 
    • Can you also check and make sure you have sufficient solder coverage for the TMDS181 thermal pad? We recommend at least 73% thermal pad solder coverage.
    • Can you also try to tune the TMDS181 VSADJ and see if it helps?

    Thanks

    David 

  • Hi,

    Read out of the TMDS181 registers when the problem occurs  is down here.
    Please agree to my friendship request , I'll provide schematic and layout for you. Thanks a lot.

    [Failing-case PAGE0]

    PAGE0_0x00 = 54
    PAGE0_0x01 = 4D
    PAGE0_0x02 = 44
    PAGE0_0x03 = 53
    PAGE0_0x04 = 31
    PAGE0_0x05 = 38
    PAGE0_0x06 = 31
    PAGE0_0x07 = 20
    PAGE0_0x08 = 01
    PAGE0_0x09 = 02
    PAGE0_0x0A = B1
    PAGE0_0x0B = 02
    PAGE0_0x0C = 00
    PAGE0_0x0D = 00
    PAGE0_0x0E = 00
    PAGE0_0x0F = 0F
    PAGE0_0x10 = 00
    PAGE0_0x11 = 00
    PAGE0_0x12 = 00
    PAGE0_0x13 = 00
    PAGE0_0x14 = 00
    PAGE0_0x15 = 80
    PAGE0_0x16 = 00
    PAGE0_0x17 = F0
    PAGE0_0x18 = 00
    PAGE0_0x19 = 00
    PAGE0_0x1A = 00
    PAGE0_0x1B = 00
    PAGE0_0x1C = 00
    PAGE0_0x1D = 00
    PAGE0_0x1E = 00
    PAGE0_0x1F = 00
    PAGE0_0x20 = 0A


    [Failing-case PAGE1]

    PAGE1_0x00 = c3
    PAGE1_0x01 = 01
    PAGE1_0x02 = 3f
    PAGE1_0x03 = 00
    PAGE1_0x04 = a0
    PAGE1_0x05 = 00
    PAGE1_0x06 = 00
    PAGE1_0x07 = 00
    PAGE1_0x08 = 01
    PAGE1_0x09 = 00
    PAGE1_0x0A = 00
    PAGE1_0x0B = 33
    PAGE1_0x0C = 00
    PAGE1_0x0D = 00
    PAGE1_0x0E = 11
    PAGE1_0x0F = 00
    PAGE1_0x10 = 0f
    PAGE1_0x11 = 00
    PAGE1_0x12 = 00   
    PAGE1_0x13 = 07
    PAGE1_0x14 = 00
    PAGE1_0x15 = 00
    PAGE1_0x16 = 00
    PAGE1_0x17 = 00
    PAGE1_0x18 = 00
    PAGE1_0x19 = 00
    PAGE1_0x1A = 00
    PAGE1_0x1B = 00
    PAGE1_0x1C = 00
    PAGE1_0x1D = 00
    PAGE1_0x1E = 00
    PAGE1_0x1F = 00
    PAGE1_0x20 = 00
    PAGE1_0x21 = 00
    PAGE1_0x22 = 00
    PAGE1_0x23 = 00
    PAGE1_0x24 = 00
    PAGE1_0x25 = 00
    PAGE1_0x26 = 00
    PAGE1_0x27 = 00
    PAGE1_0x28 = 00
    PAGE1_0x29 = 00
    PAGE1_0x2A = 00
    PAGE1_0x2B = 00
    PAGE1_0x2C = 00
    PAGE1_0x2D = 00
    PAGE1_0x2E = 00
    PAGE1_0x2F = 00
    PAGE1_0x30 = 07
    PAGE1_0x31 = 30
    PAGE1_0x32 = 08
    PAGE1_0x33 = 00
    PAGE1_0x34 = 00
    PAGE1_0x35 = 00
    PAGE1_0x36 = 00
    PAGE1_0x37 = 00
    PAGE1_0x38 = 08
    PAGE1_0x39 = 08
    PAGE1_0x3A = 00
    PAGE1_0x3B = 08
    PAGE1_0x3C = 04
    PAGE1_0x3D = 06
    PAGE1_0x3E = 00
    PAGE1_0x3F = 00
    PAGE1_0x40 = 80
    PAGE1_0x41 = 80
    PAGE1_0x42 = 80
    PAGE1_0x43 = 80
    PAGE1_0x44 = cd
    PAGE1_0x45 = 00
    PAGE1_0x46 = 00
    PAGE1_0x47 = 00
    PAGE1_0x48 = f0
    PAGE1_0x49 = ff
    PAGE1_0x4A = ff
    PAGE1_0x4B = ff
    PAGE1_0x4C = 03
    PAGE1_0x4D = 00
    PAGE1_0x4E = 75
    PAGE1_0x4F = 76
    PAGE1_0x50 = 00
    PAGE1_0x51 = 00
    PAGE1_0x52 = 00
    PAGE1_0x53 = 00
    PAGE1_0x54 = 00
    PAGE1_0x55 = 00
    PAGE1_0x56 = 00
    PAGE1_0x57 = 00
    PAGE1_0x58 = 00
    PAGE1_0x59 = 00
    PAGE1_0x5A = 00
    PAGE1_0x5B = 00
    PAGE1_0x5C = 40
    PAGE1_0x5D = 40
    PAGE1_0x5E = 40
    PAGE1_0x5F = 40
    PAGE1_0x60 = 00
    PAGE1_0x61 = 00
    PAGE1_0x62 = 00
    PAGE1_0x63 = 00
    PAGE1_0x64 = 00
    PAGE1_0x65 = 00
    PAGE1_0x66 = 00
    PAGE1_0x67 = 00
    PAGE1_0x68 = 00
    PAGE1_0x69 = 00
    PAGE1_0x6A = 00
    PAGE1_0x6B = 00
    PAGE1_0x6C = 00
    PAGE1_0x6D = 00
    PAGE1_0x6E = 00
    PAGE1_0x6F = 00
    PAGE1_0x70 = 00
    PAGE1_0x71 = 00
    PAGE1_0x72 = 00
    PAGE1_0x73 = 00
    PAGE1_0x74 = 00
    PAGE1_0x75 = 00
    PAGE1_0x76 = 00
    PAGE1_0x77 = 00
    PAGE1_0x78 = 00
    PAGE1_0x79 = 00
    PAGE1_0x7A = 00
    PAGE1_0x7B = 00
    PAGE1_0x7C = 00
    PAGE1_0x7D = 00
    PAGE1_0x7E = 00
    PAGE1_0x7F = 00
    PAGE1_0x80 = 00
    PAGE1_0x81 = 20
    PAGE1_0x82 = 00
    PAGE1_0x83 = 00
    PAGE1_0x84 = 00
    PAGE1_0x85 = 00
    PAGE1_0x86 = 00
    PAGE1_0x87 = 00
    PAGE1_0x88 = 00
    PAGE1_0x89 = 00
    PAGE1_0x8A = 00
    PAGE1_0x8B = 00
    PAGE1_0x8C = 00
    PAGE1_0x8D = 00
    PAGE1_0x8E = 00
    PAGE1_0x8F = 00
    PAGE1_0x90 = 00
    PAGE1_0x91 = 00
    PAGE1_0x92 = 00
    PAGE1_0x93 = 00
    PAGE1_0x94 = 00
    PAGE1_0x95 = 00
    PAGE1_0x96 = 00
    PAGE1_0x97 = 00
    PAGE1_0x98 = 00
    PAGE1_0x99 = 00
    PAGE1_0x9A = 00
    PAGE1_0x9B = 00
    PAGE1_0x9C = 00
    PAGE1_0x9D = 00
    PAGE1_0x9E = 00
    PAGE1_0x9F = 00
    PAGE1_0xA0 = 00
    PAGE1_0xA1 = 00
    PAGE1_0xA2 = fd
    PAGE1_0xA3 = 00
    PAGE1_0xA4 = 00
    PAGE1_0xA5 = 00
    PAGE1_0xA6 = 00
    PAGE1_0xA7 = 00
    PAGE1_0xA8 = 00
    PAGE1_0xA9 = 00
    PAGE1_0xAA = 00
    PAGE1_0xAB = 00
    PAGE1_0xAC = 00
    PAGE1_0xAD = 00
    PAGE1_0xAE = 00
    PAGE1_0xAF = 00
    PAGE1_0xB0 = 5e
    PAGE1_0xB1 = 88

  • Hi,

    I accepted your friendship request, please send me the schematic and layout file.

    Looking at the register dump, it looks like you are trying to communicate to a HDMI2.0 source, is this correct?

    If this is the case, are you leaving the TX_TERM pin to be NC so the TMDS181 TX_TERM can automatically select between HDMI1.4 and 2.0?

    Data rate (DR) > 3.4 Gbps – 75 to 150 Ω differential near end termination HDMI2.0

    2 Gbps > DR < 3.4 Gbps – 150 to 300 Ω differential near end termination HDMI1.4

    DR < 2 Gbps – no termination HDMI1.4

    Thanks

    David

  • Hi,

    I send you the schematic and layout , please review it , thanks.

    TX_TERM pin is NC.

  • Hi,

    The layout looks fairly clean, I don't see any major issue with it.

    Is this a HDMI2.0 application? 

    I see the TMDS_CLK_RATIO_STATUS bit from register 0x0B is being read 0x02, which indicates this is HDMI2.0. Can you verify if this is true?

    If this is a HDMI2.0 application, does the issue only show up with HDMI2.0?

    From the schematic

    Are you using U29 or TMDS181 to pass the DDC traffic? Please use U29 to pass the DDC traffic.

    • R946、R939、R947、R941 上件,R938、R940、R977、R978 NC

    Can you have SIG_EN pulled low?

    Thanks

    David