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.

DP83TD510E-EVM: How can the PRBS checker be reliably locked?

Part Number: DP83TD510E-EVM
Other Parts Discussed in Thread: DP83TD510E, USB-2-MDIO

We are implementing a simple cable diagnostics tool for the DP83TD510E. When we follow the available examples e.g. DP83TD510E Cable Diagnostics Toolkit or the forum post DP83TD510E-EVM: Any sample script for testing communication distance?, sometimes the PRBS checker does not sync. This behaviour can be reproduced with the DP82TD510E-EVM as well as with a custom hardware.

In detail: After initialization of register PRBS_CFG_1 (Address 0x0119) with value 0x155F, bit 8 (PRBS_Lock) in register PRBS_STATUS_4 does not change to "1". This phenomenon occurs irregularly, we could not recognize a connection yet. The problem also occurs irregularly after a complete hardware reset:

begin
001F 8000 //reset the part
0119 155F //enable packet generation towards cable and packet checker coming back from the cable
001F 4000 //soft reset
end

Is there a special reset strategy for the PRBS Checker, or is there a special timing that has to be observed?

Thank you,

Gerrit.

  • Hi Gerrit,

    You can try to use the following script and check

    001F 8000
    0119 055F
    001F 4000

    This should make PRBS lock signal 1.

    --
    Regards,
    Gokul.

  • Hi Gokul,

    thank you for your answer! We have used your sequence now and we read the PRBS_STATUS_4 at the end:

    begin
    001F 8000  //Hard reset
    0119 055F  //PRBS_CFG_1: Enable packet generation towards cable and packet checker coming back from the cable
    001F 4000  //Soft reset
    011F 0001  //PRBS_STATUS_4: Lock & Clear signal for the PRBS counters
    011F       //Result is 0B00 on success and 0800 when failed
    end
    

    The result is more or less the same - sometimes it works, sometimes not. The chance is about 50%.The same problem is on the DP83TD510E-EVM using a Windows PC, as well as on our custom-made hardware.

    Do you have another idea?

    Thank you,

    Gerrit.

  • Hi Gerrit,

    Can you please share a block diagram of the whole setup with details on where the loopback of the data is happening?

    Is the link between TI-PHY to TI-PHY?

    --
    Regards,
    Gokul.

  • Here is a small diagram of our test setup. It is really very simple: We have two DP83TD510E coupled together via a cable, both are connected by USB to a PC running USB-2-MDIO. One of the DP83TD510E is in reverse loopback mode, the other one generates packets with the PRBS generator, configured as described above.

               TI-PHY1                                      TI-PHY2
      PRBS Packet Generator Config                 Reverse Loopback Config
        +---------+------------+                  +------------+---------+
        | DP83822 | DP83TD510E +~~~~~~~~~~~~~~~~~~+ DP83TD510E | DP83822 |

        +---------+------+-----+      Cable       +------+-----+---------+
                         |                               |
                         |                               |
                     USB-2-MDIO                      USB-2-MDIO

    We configure the DP83TD510E in Reverse Loopback Config (TI-PHY2) only once and keep it in this configuration.

    The other DP83TD510E (TI-PHY1) is completely reconfigured for every attempt. We find that after a hard reset (001F 8000 //Hard reset), followed by the other configuraton steps described in my previous post, the PRBS checker is not always locked - only in about 66% of the attempts. The phenomenon is clearly related to the hard reset, but we cannot see why it does not work in some cases. It looks like a random phenomenon at the moment. The communication link is always established, but the PRBS checker is not always locked. When PRBS checker is locked, that is in 66% of the attempts, we read 0B00 from register 011F. In all other cases (failured attempts) we read 0800.

    We might create a loop and try it again and again if the PRBS checker is not locked after a hard reset (followed by the other configuration steps), but this would not be satisfacotry. Do we need to do more configuration steps, e.g. write to other registers? A more relaxed timing (waiting 1s after hard reset) does not help either.

  • Hi Gerrit,

    Can we try hard reset first and then wait for link-up before configuring PRBS?

    This would require you to first write 0x1F=0x8000 and then wait to manually watch LED_0 go up and then program the script above (without 1F 8000) to enable PRBS.

    --
    Regards,
    Gokul.

  • Hi Gokul,

    we have tried this, but it does not help. The PRBS checker is still not locked after the hard reset sometimes, also when the LED_0 is active. The link is established always, but only the PRBS checker is not locked. Is it possible that our reset and initialization sequence is not (see above) is not sufficient?

    Thank you

    Gerrit

  • Hi Gerrit,

    I will try to recreate this on my end by Monday next week.

    I will be using the following sequence.

    -------------------------------------------------------------------------------------

    Step-1: 0x0001 = 0x8000 //Hard Reset

    ------------ Wait for at least 2 sec-------------

    Step-2: 0x0119 = 0x055F (I'll remove 0x001F = 0x4000, I suggest you also to)

    ------------Wait for at least 2sec------------

    Step-3: Write 0x011F = 0x0001, Read 0x011F

    ------------------------------------------------------------------------------------

    Can you please try this too?

    --
    Regards,
    Gokul.

  • Hi Gokul,

    thank you for your reply! This sequence works now!

    We've tested a bit more and found out that (a) the different hard reset (0x0001 = 0x8000 //Hard Reset) and (b) the delay makes the main change. But also the soft reset using register 0x001F = 0x4000 seems to make problems, so it was good to omit this.

    We found (our wrong) reset sequence (0x001F = 0x8000 //Hard Reset) in the "DP83TD510E Cable Diagnostics Toolkit", page 6, first table. So it seems to me that this documentation is wrong. Is there a more detailled register description available for the DP83TD510E?

    But our problem is solved now. Thank you very much for your help!

    Gerrit.