I have a board design with a DP83869HM which I am trying to use in "1000M Media Convertor Mode"
I have a microcontroller which I am using to configure the DP83869HM registers over MDIO/MDC
I programmed the registers, following the steps in the data sheet, section 9.4.8.4
- Write 0x0044 to register 0x01DF
- Write 0x1140 to register 0x0000
- Write 0x5048 to register 0x0010
- Write 0x1140 to register 0x0C00
After configuring the phy over MDIO, I connected my PC Ethernet to the board, and I see the network interface come up. I also am able to detect a link on the other end. But I am unable to ping from either side, and the receive packet counters never go up.
After further digging, I noticed that SNLA318, section 1.6 "1000 Mbps Media Converter" says ....
"Important: Required register configuration for 1000 Mbps Media Converter mode: - Write 0x1FFC to register 0x01EC (set bit [0] to 0)"
So I changed the register programming sequence to this,
- Write 0x0044 to register 0x01DF
- Write 0x1140 to register 0x0000
- Write 0x5048 to register 0x0010
- Write 0x1140 to register 0x0C00
- Write 0x1FFC to register 0x01EC
This causes the connection to go down/not be detected by my PC or on the other side.
I have double checked the strapping, pin-out, and register configs. But I have not been able to figure out why I cannot communicate through the phy.
Here are the values that I have read out of some of the registers.
OP_MODE_DECODE = 0x0044
BMCR = 0x1140
PHY_CONTROL = 0x5048
FX_CTRL = 0x1140
BMSR = 0x7969
FX_STS = 0x6149
1KSCR = 0xF000
STRAP_STS = 0x183E
SERDES_SYNC_STS = 0x0220