Hi,
I pull up RX_CTRL(38 pin) by 2.49KΩ resistor to 3.3V which disable Auto-negotiation , and I use SMI to configure BMCR(address 0) to 0x2100.
I can see 25Mhz clock at RX_CLK pin, and this clock should indicate the phy is wording at 100M mode.
My DP83867 is DP83867IRRGZ.
If I remove the pull up resistor at RX_CTRL and Auto-negotiation is enabled, the phy can link at 1000M mode.
Please give me some advice about how to make this phy work at 100M mode and can link successfully. Thanks.
Jianwei
Kailyn Chen:
This question is the same with one post on E2E, please refer to the detailed advice which our foreign engineer provided:
(Please read register 0x6f. Please use the extended register access method shown in the datasheet section 8.4.2.1.4
Check to see if bit[8] in register 0x6f is set. If you are strapping RX_CTRL pin properly, then 0x6f.8 = 1If 0x6f.8 = 0, please set 0x31.7 = 0 using extended register access method shown in datasheet section 8.4.2.1.3. After register 0x31.7 = 0, restart auto-negotiation using register 0x0.9 = 1. Total word written to register 0x0 = 0x1200You can also try disabling EEE mode on your PC link partner.)
More information, please refer to
https://e2e.ti.com/support/interface/ethernet/f/903/p/638319/2355473?tisearch=e2e-sitesearch&keymatch=DP83867%20%20100M#2355473
jianwei luo:
回复 Kailyn Chen:
Hi Kailyn,
The register defination of 0x6f is like the following picture. The 0x6f.8 is a reserved read-only bit.
The register defination of 0x31 is like the following picture. The 0x31.7 bit is reverved bit.
The register defination of 0x0 is like the following picture. If I write 0x1200 into this register, the auto-negotiation function will be enabled. The 13th bit will be ignored. How can I change the speed to 100Mbps. In my system, the phy and my host all can support 1000Mbps, but it's not stable in 1000Mbps mode. So we want to use the 100Mbps mode. Please give me more advice. Thanks.
I have pulled up tx_ctl by 2.49KΩ resistor, the rx_clk is 125Mhz with or without cable. So this indicates the RX_CTL is in mode 4 and the auto-negotiation function is disabled. And then I try to write 0x1200 to 0x0 register. It works at 1000Mbps, and it can't link. Thanks.