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.

SN65DP159: SN65DP159RGZR

Part Number: SN65DP159
Other Parts Discussed in Thread: TUSB3410, TUSB3410UARTPDK

Issue:

  • Unable to get video output on sink device from retimers when GPU resolution is set to 3840x2160@60 (HDMI 2.0 resolutions in general).

What works:

  • Resolutions up to 4096x2160@30 (all HDMI1.4 resolutions).

What we have tried/verified:

  • We have verified that the retimer's functional mode and TMDS clock ratio is being setup correctly for HDMI 2.0 data rates.
  • We have verify with our scope that the data and clock signals are present at the expected voltage levels.
  • We have been able to tune the retimers to the point that we are passing HDMI 2.0 eye mask compliance test even though there is still no video present.
  • The scope is unable to complete interpair skew measurements because it can't find sync patterns in the data lanes.

Current Theory:

  • We believe the channel between the GPU and Retimer is the issue. We believe the default GPU settings intended for a port and cable is overdriving the channel when used with our 2 inches of trace between the GPU and retimers. We think this is causing the retimers to output corrupted data with a well shaped eye. 
  • We have changed the GPU Vswing and de-emphasis levels attempting to improve the channel between the GPU and retimers. Without some type of feedback here, we are turning knobs without being able to verify whether we are improving things or not.
  • We think the default retimer equalization settings would be correct for this setup but we are open to your input on this. 
  • Our next planned steps is to use the TI USB to I2C adaptor to try and characterize the channel between the GPU and Retimer (could you help us identify the part number for this adaptor?)
  • Is this the best next step considering that we are currently unable to get a video stream at 4k 60 on the sink device? EyeScan tool users guide seems to imply that this only works with a functional channel.
  • Any other ideas/suggestions on how to further debug this problem are welcome.

4k 60hz eye mask

   

  • Hi,

    1.Can I please take a look at your schematic?

    2. Does this issue happen with multiple sinks or a particular sink?

    3. If measuring the DP159 clock output, are you seeing ~150MHz clock output?

    4. Can you use an I2C controller to read out the DP159 registers?

    If the DP159 EQ_SEL is set to NC, the DP159 EQ will automatically adapt with the minimum EQ being 2dB. The 2in trace at 3GHz Nyquist frequency is ~1.2dB. so 2dB EQ will over-compensate the 2in channel loss. I will try to disable the GPU pre-emphasis or set it to 0dB.

    When you switch between HDMI1.4 and HDMI2.0, did you disable the GPU data and clock output first, make sure the TMDS_CLK_RATIO_STATUS is being clear/set correctly first, and then enable the output? 

    Thanks

    David  

  • Hi David, sorry for the late reply on this! I have prepared some answers to your questions below:

    1. Yes, I have attached the retimer sheet below

    2. This issue occurs on multiple sinks

    3. Measured Output clock frequency is 148.49MHz

    4. Here is the register dump after disabling eq starting at address 0x09h: 06 02 1A 61 01 00 0F 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 0A

    Question: Could you also help us identify the part number of the USB to I2C controller that we can use to capture the received eye?

    HDMI_Retimer_Sheet.pdf

  • Hi,

    1. Are you controlling the DP159 in I2C or GPIO mode? On the schematic, you need to change the pullup resistors from 10k to 65k.

    2. Since you are using the DP159 to level shifting the DDC bus between the GPU and the sink, can you check and see if the GPU supports clock stretching? 

    3. In the I2C mode, please write 0x01 to register 0xFF, and then dump register from 0x01 to 0xB1.

    4. If you enable the DP159 adaptive EQ (EQ_ADA_EN and EQ_EN bit are set to 1), are you able to get a video out to a sink?

    5. Can you set the DP159 DEV_FUNC_MODE to 0x00(Redrive mode) and see if you are able to get a video out to a sink?

    6. If you toggle HPD_SNK, are you able to get the sink to show the video?

    To capture the eye requires the EyeScan SW and TUSB3410. The DP159 EVM has a built-in USB to I2C function using the TUSB3410, so you can use the EVM and then blue wire the I2C bus from EVM to your board to capture the eye.

    Thanks

    David

    1. We are controlling the retimers through I2C currently. For BOM simplification reasons we were hoping to use 10K expecting them to be stronger than the recommended 65K. Is 65K truly required when we are relying on resistor straps to configure the part?
    2. We haven’t been able to verify that the GPU supports clock stretching. However, we have verified that the sink is being correctly configured for HDMI2.0 mode using an Aardvark i2c controller. We are still trying to get confirmation of I2C clock stretching support in the GPU.
    3. Register dump attached.
    4. No video with adaptive eq, fixed eq (with 0db and 2db settings) or with eq completely disabled. We have also tried all of the eq settings with various de-emphasis settings on the GPU. Including no de-emphasis.
    5. Still working on this. we’ll be able to provide this data point tomorrow.
    6. Still working on this. we’ll be able to provide this data point tomorrow.

    Questions:

     

          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    0x00: C3 01 3F 00 A0 00 00 00 01 00 00 33 00 00 11 00
    0x10: 0F 30 00 07 01 00 00 00 00 00 00 00 00 00 00 00
    0x20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x30: 07 30 08 00 00 00 00 00 09 00 08 08 04 06 00 00
    0x40: 80 80 80 80 E8 00 00 00 80 F0 80 FF 03 00 00 70
    0x50: 00 00 00 00 00 00 00 00 00 00 00 00 40 40 40 40
    0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x80: 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0xA0: 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00
    0xB0: 5E 82 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    

  • Hi,

    You can use the TUSB3410 with the updated firmware for the EyeScan SW. Would you please accept my friendship request so I can send you the firmware?

    Looking at the Register 1 dump, Register 0x00 returns a value of C3 indicating the DP159 is in retimer mode and PLL is locked. Register 0xB0 value of 5E indicates roughly the input frequency is 5*25+25 = 150MHz, which is correct. Register 0xB1 bit 7 is 1, indicating the DP159 is detecting the input clock.

    Out of curiosity, what is being connected to the DP159 output? Is it possible that the lane order gets swapped? Given that HDMI1.4 works, I don't think this is being the case, but want to double check. 

    Thanks

    David  

  • Hi David,

    Ok thank you I have accepted your friend request and we have ordered the TUSB3410UARTPDK. We are hoping to start capturing the received eye either tomorrow or early next week. 

    We have connected the retimers to various monitors including LG (34BK95U) and Dell (S2721Q) 4k monitors. We have also connected the outputs to the GoFango PRO-HDMI2Gen video analyzer and the Lecroy 780E video analyzer. To the best of our knowledge we would not expect any lane swap to occur or be needed. This should be a straight through connection. 

    As for your suggested test in the previous reply (5 & 6), unfortunately we do not get video on the sink with the device setup in Redriver mode and toggling HPD_SNK also does not make a difference for us. 

    If you have any other ideas/suggestion we welcome them and thank you again for your current effort in helping us with this!

  • Hi,

    I sent you the TUSB3410 firmware in a private message, please check.

    So far, I don't see an issue with the register dump or the eye diagram. The clock frequency and the ratio bit are also correct. Can you check and see if you are enabling the scrambling of the data? Scrambling is required for data rate > 3.4G.

    Thanks

    David

  • Hi David,

    Thank you for providing us with that firmware! We were able to update the device and are now using it to capture the received eye at the retimer. I have some updates to what we have observed so far below:

    Currently we are able to view outputs on the sinks as long as the resolution is capped to HDMI1.4 data rates but we do not get any video on the sink when running HDMI2.0 data rates.

    We have observed, while using TUSB3410, that for HDMI1.4 data rates the retimers are completing TMDS lane deskew.

    However, the retimers are unable to complete TMDS lane deskew when running HDMI2.0 data rates. The received eye for both cases look very similar so we were surprised that we did not see any output on the sink. 

    I have attached some captures showing the received eye and status registers for both the passing(clock @300MHz and below) and failing cases(clock @346MHz and above).

    What could cause the retimers to fail completing the TMDS lane deskew and what impact does this have on the outputs of the retimer?

    Received eye @300MHz

    Status/Control Registers @300MHz

    Received eye @346MHz

    Status/Control Registers @346MHz

  • Hi,

    Something is not right here. If the clock is 346MHz and the TMDS_CLK_RATIO_STATUS is 1/40, the actual data rate on each lane = 346 * 40 = 13.84G higher than what the DP159 can receive, this can cause the DP159 not able to de-skew the input data.

    For HDMI2.0, the clock rate is around 148.5MHz, which will give you around 6G data per lane.

    Thanks

    David 

  • Hi David,

    Sorry we are used to dealing with the GPU and we were referring to pixel clock rather than the TMDS clock rate. The TMDS clock rate at the HDMI2.0 resolution is about 86.6MHz.

    It appears that the retimers are unable to complete the TMDS lane deskew whenever we turn on data scramblers as required by HDMI2.0. Have seen issues with the enabling of data scramblers before? 

    In order to test a pixel clock of 346.5MHz, just above the HDMI2.0 crossover point, we are using a resolution of 1920x1080@144hz.

    If we disable data scramblers so the retimer can successfully complete the lane deskew, we can get video on the sink at pixel clocks of 346.5MHz which is an HDMI2.0 rate. However, if we re-enable data scramblers the retimers cannot complete the lane deskew and we do not get video. The enabling and disabling of scramblers is the only change the we are making between the working and failing cases at this data rate. 

  • HI,

    If you bump the resolution up to 4k@60Hz, do you still see this DP159 dependency on the scrambler being enabled/disabled?

    Thanks

    David

  • Yes we still see this dependency at 4k60. 

  • Hi,

    If you set the APPLY_RXTX_CHANGES bit, is the DP159 able to complete the de-skew?

    We tested the DP159 de-skew function with and without scrambler on, and the de-skew always works.

    And when you switch between different resolution, did you turn off the output before switching the resolution?

    Thanks

    David 

  • Hi David,

    Thank you for your assistance with this matter so far. Since the last update, we have discovered there was an error with the configuration of our Scramblers that caused bad data being transmitted which prevented the Retimer from completing the lane deskew function. We now have video working up to a pixel clock of 500MHz and any pixel clocks higher than this lead to artifacts and screen tearing. 

    We still believe that we may have a signal integrity issue between the GPU and Retimers. We are seeing some weird behaviour with the EyeScan tool while using the tool to capture the received eye to help debug this problem. From the image below, it appears there is a discrepancy in the generation of the received eye.  It appears that the light blue line hit a floor while the yellow line hit a ceiling. After this brief interruption, the data resembles what we would expect from the rest of the eye. Also notice that the eye seems to be shifted to the left instead of being centered. 

    This is a capture of eyes as we move from 300MHz up to 550MHz pixel clocks. This shows that as the speed increases, the eye keeps shifting to the left and at a pixel clock of 550MHz the discontinuity in the eye is introduced. We get this type of discontinuity in any eye capture at a pixel clock at or above 550MHz. I am not sure if this an error with the captured data or an error with the way the tool is rendering the data but I do not believe this is an accurate representation of the data. Is this something you have seen before? Or are we missing a setting somewhere in the tool when capturing eyes at these higher pixel clocks? Thanks again for your assistance with this issue and looking forward to hearing your thoughts. 

  • Hi,

    This is an issue with the EyeScan SW, please take a look at page 11 of the EVM user guide, https://www.ti.com/lit/ug/sllu228a/sllu228a.pdf.

    Are you using the DP150 adaptive equalization in your current testing?

    Thanks

    David

  • Hi David,

    thank you for the quick response and the explanation! One more question, it also appears that the Unit Interval is not being correctly calculated past about a 300MHz pixel clock. Is this why the eye is about half the size you would expect when testing at a pixel of 600MHz? Should we be reading the eye width directly or should we be scaling it to understand the actual quality of the eye? We have equalization disabled during these tests since our trace length is so short. 

    Thanks,

    Amadou

  • Amadou

    Correct, the unit interval is not being scaled properly in the Eye Scan SW. The SW allows people to review general eye quality per lane at the receiver, but it's not meant for a detailed signal integrity analysis. 

    Can you try to enable adaptive EQ? You can disable DP159 EQ, but are you enabling any GPU TX signal conditioning function to compensate for the short trace between the GPU and the DP159.

    Thanks

    David 

  • Hi David,

    Thank you for clarifying that for us. The below screenshot (raw data also attached) is a comparison of the received eye for adaptive eq vs eq off. In both of these configurations, we found that the settings of max Vswing and lowest de-emphasis on the GPU gives us the widest eye at retimer inputs. According to this capture, there is very little difference between eq off and adaptive eq. If you think enabling adaptive eq is the best settings for our configuration then we are happy to enable adaptive eq. From our research this eye should have enough height and width to properly pass video through the link. What are you thoughts on this? We are open to any additional feedback you may have and thanks again for your help with this issue.

    Current Retimer register settings starting at address 0x09h0x06 0x33 0x1B 0x61 0x00

    BestEyeSettings_Adeq_vs_eqoff.zip

  • Hi,

    With the short trace between the GPU and the DP159, I would agree that you want the little or no pre-emphasis on TX and some equalization on the RX side, or some pre-emphasis on the TX side and little or no equalization on the RX side. For HDMI2.0 6Gbps, the estimate loss per inch is 0.6dB/in. Knowing the trace length, you can then estimate the amount of loss between the GPU and the DP159 and how much you have to compensate either through the pre-emphasis or equalizer. 

    If you run the HDMI compliance testing on the DP159 TX side, are you still getting a HDMI2.0 compliant result with the current setting?

    Can you also probe the output clock and make sure the clock frequency is data_rate/4 for HDMI2.0?

    Thanks

    David  

  • Hi David,

    Yes we are still getting compliant results when we run the compliance test software with these settings and the clock frequency is also correct (see capture of test results below). We'll be probing the input side of the retimer to verify the clock frequency and will send you those results. 

    Thanks,

    Amadou

  • Amadou

    If you configure the DP159 into redriver mode, do you still have the same issue when the clock rate goes above 550MHz?

    Thanks

    David