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: unstable function

Part Number: TMDS181

Tool/software:

Hello,

I use the TMDS181 for redriving/retiming an HDMI signal at the front panel of a device.

Unfortunately, the redriver/retimer is not working reliably. When I plug it in with my laptop as a source and a monitor as a sink, sometimes it works great in 4k, sometimes it doesn't work at all.

I read out the I²C registers and noticed 3 registers differ in the IO to the NIO case:

Reg 0B: Bit 4 is off in IO and on in NIO, so the termination changes from 150-300 Ohms (IO) to 75-150 Ohms (NIO)

Reg 15: Bit 7 is on in IO and off in NIO, so the deskew is not finished in NIO

REG 20: Bit 6 is off in IO and on in NIO, so the device goes to standby in the NIO case.

Could you please help me find the root of the instability?

Best regards,

Jonas

  • Jonas

    Can you please share your schematic for me to review? Does the cable length impact the instability?

    Are you only seeing issue with 4k@60Hz resolution or across all the resolutions?

    Thanks

    David

  • Hello David,

    attached the schematic.

    I test with very short cables (30 cm in 1 m out) so I don't think it's dependent on the cable length.

    I have also Problems at FullHD 60Hz. It looks like the Problems are less with lower resolution but they are definitely also there.

    Best regards

    Jonas

    Schematic Prints_HDMI.pdf

  • Jonas

    1. SIG_EN is being pulled high in the schematic, can you please pull it low to disable input signal detect?

    2. Please remove R16, R17, R45, and R46 as pullup resistor on the DDC bus should already be in the HDMI source and HDMI sink.

    3. Depends on the HDMI cable length at both the input and the output, you may need an external I2C buffer to boost the I2C signal over long HDMI use case.

    4. Are you seeing HPD_SNK and HPD_SRC both being driven high when there is a display issue?

    Thanks

    David

  • Hello David,

    I changed the SIG_EN to low.

    In the first tests, the setup seems a lot more stable. I only had a non-functioning situation once (which makes it harder to debug but, of course, is better in general).

    What irritates me is that reg 0A changed from 0x12 to 0x02 when i changed SIG_EN (in both cases, NIO/IO). So the equalizer was enabled but in fixed mode, and with SIG_EN low, it's completely disabled. But in both cases, EQ_SEL is left floating, which should result in an adaptive EQ setting.

    I will test further and report.

    Best regards

    Jonas

  • Jonas

    Good to hear that you are making good progress. The SIG_EN and EQ are two separate functions. Changing SIG_EN should not impact the EQ setting. Is the I2C_EN being pulled low or high? If I2C_EN is low, then the register write to TMDS181 is ignored. Write will only take effect if the I2C_EN is high.

    You can also read register 0x00h to 0x08h. These are read-only registers, and if you are consistently reading back the same back, then the I2C bus itself is ok.

    Thanks

    David

  • Hello David,

    sorry for the late replay, I had to take care of other topics.

    I2C_EN is pulled low. I don't write any registers, I only read them. So the change of the equalizer register comes not from me setting the register. It has to has a other origin that  I don't know. EQ_SEL is floating. in both cases.

    0x00h to 0x08h are always the same.

    If the device is running  HPD_SNK is 4.8V and HPD_SRC is 3.3V. I had a non-running state twice since I changed the SIG_EN. Once I could messured HPD, and it was the same as when the device is running.

    Best regards

    Jonas

  • Jonas

    With I2C_EN being low, the register will reflect the pin status. If bit 5 of register 0x0A is reading back the value of '0', then it indicates the EQ_SEL pin is not floating, it is being pulled low, or high (I2C address = 0x5D). Can you double check the EQ_SEL pin soldering and make sure it is floating?

    Thanks

    David