Part Number: DP83869HM
Hi,
We have designed a custom board using the DP83869HM as RGMII to copper interface. All configuration is done through strapping to set up the device as RGMII to Copper, 1000Base-T/100Base-TX/10Base-Te with Auto-negotiation, 1000/100/10 advertised, and Auto MDI-X. Which matches the values read on register STRAP_STS (0x6E) which is all 0x00
We are facing a couple issues that we can't get our head around.
First issue is that during boot up and after finalizing the PHY auto-negotiation we are facing several link down/up cycles until it stabilizes. Sometimes link stabilizes at 1Gb and sometimes it stabilizes by dropping to 100Mb sometimes it does not stabilize at all. The second issue which only occurs to one of the board we are testing is that during a period of usage the link would go down and thus restart the auto-negotiation or sometimes the board reboots itself.
We read the PHY registers when the link status goes down and after link status comes back up to try find the issue and nothing really stands out other than on register GEN_STATUS1 (0xA) shows the bit 12 (REM_RCVR_STATUS) as 0 or remote receiver not OK
We think there might be something else happening other than the remote receiver not being OK because we have tried with different partners (modems, routers, switches), cables (CAT5a, CAT6, CAT7, CAT8), and different boards even and they all experience the same behavior.
One sort of hacky solution we found for issue 1 is that if we add a 50ms delay after finalizing auto-negotiation and before we read the link status register we get a stable connection right away at 1Gb, and we are not sure that 50ms delay fixes it. However, one of the boards still might have a link drop at some point during usage
Any suggestions?
Note: we are not using linux, we are using mAbassi RTOS
Here are the register reads we are seeing
After link goes down:
[0x0] - 0x1000
[0x1] - 0x7969
[0x2] - 0x2000
[0x3] - 0xA0F1
[0x4] - 0x1E1
[0x5] - 0xCDE1
[0x6] - 0x6F
[0x7] - 0x2001
[0x8] - 0x6001
[0x9] - 0x300
[0xA] - 0x2800
[0xD] - 0x401F
[0xE] - 0x0
[0xF] - 0xF000
[0x10] - 0x5048
[0x11] - 0xA802
[0x12] - 0x0
[0x13] - 0x1C40
[0x14] - 0x29C7
[0x15] - 0x0
[0x16] - 0x0
[0x17] - 0x40
[0x18] - 0x6150
[0x19] - 0x4444
[0x1A] - 0x2
[0x1E] - 0x12
[0x1F] - 0x0
[0x25] - 0x480
[0x2C] - 0x141F
[0x2D] - 0x0
[0x2E] - 0x221
[0x31] - 0x10B0
[0x32] - 0xD0
[0x33] - 0x0
[0x37] - 0x0
[0x39] - 0x0
[0x3A] - 0x0
[0x43] - 0x7A0
[0x4F] - 0x200
[0x6E] - 0x0
[0x86] - 0x77
After link comes back up:
[0x0] - 0x1000
[0x1] - 0x796D
[0x2] - 0x2000
[0x3] - 0xA0F1
[0x4] - 0x1E1
[0x5] - 0xCDE1
[0x6] - 0x6D
[0x7] - 0x2001
[0x8] - 0x6001
[0x9] - 0x300
[0xA] - 0x3800
[0xD] - 0x401F
[0xE] - 0x0
[0xF] - 0xF000
[0x10] - 0x5048
[0x11] - 0xAC02
[0x12] - 0x0
[0x13] - 0x400
[0x14] - 0x29C7
[0x15] - 0x0
[0x16] - 0x0
[0x17] - 0x40
[0x18] - 0x6150
[0x19] - 0x4444
[0x1A] - 0x2
[0x1E] - 0x12
[0x1F] - 0x0
[0x25] - 0x480
[0x2C] - 0x141F
[0x2D] - 0x0
[0x2E] - 0x221
[0x31] - 0x10B0
[0x32] - 0xD0
[0x33] - 0x0
[0x37] - 0x0
[0x39] - 0x0
[0x3A] - 0x0
[0x43] - 0x7A0
[0x4F] - 0x200
[0x6E] - 0x0
[0x86] - 0x77