Dear team,
My customer has the following issue,
Could you please support me with this ?
DP83848YB-NOPB description of the issue :
- Our application needs to apply an auto test, for this do a check on the Ethernet line using the loopback of the PHY (as described in the datasheet)
- Doing so, we observed for time to time that the PHY stays in loopback.
- We did some tries in order to understand this issue, here are the investigations we did :
1) At first, we apply a RESET on the PHY (using the command). Applying a RESET (set bit 15 of BMCR register at 1) to the PHY at the beginning increase the success rate.
2) After the time T1 (waiting time between the RESET and write. This time is adjustable), we write the loopback command in the dedicated register (set bit14 of BMCR register at 1).
3) Then, after time TS1 (time to write in the register, this time is not adjustable, we can only measure it), we read register status to make sure the order has been taken into account (bit 3 from PHYSTS register).
4) After time T2 (waiting time between the read of the status and the loopback message. This time is adjustable), we check that the link is made on the Ethernet line by checking the value of the link status (bit0 from PHYSTS register). Then we send the loopback message.
5) After checking that the loopback is fine, we make an ‘’un-looping’’ check (DEBOUCLAGE on the picture).
6) We apply a RESET to the PHY. Same as 1)
7) Same as 2), but this time we send an ‘’un-looping’’ order to the PHY.
8) Same as 3)
9) Same as 4) but we send a message on the line in normal mode : we check that the message is moving along the line.
By doing these tests we observed (with an occurrence of 1 out of 5000) that from time to time the PHY in loopback mode is not receiving the message sent by the FPGA.
In the same way, but less often, when we go to ‘’un-looping’’ mode we don’t receive the message sent on the output of the line. Like if we are still in loopback mode.
We tried with several timings for T1, TS1, T2, TS2, T3, without any effect.
We tried with several temperatures (-40°C, +25°C, +80°C), without any effect.
We also observed a strange behavior of the PHY : we need 2 read to get the correct value of the register. Usually 1 read should be enough.