如果兩個 DP83867PHY 能夠以 10Mbps 和 100Mbps 建立鏈路,但無法以 1Gbps 建立鏈路,請參閱以下調試過程:
注: 此勘誤表僅出現在舊版 DP83867PHY(寄存器 0x0003 = A0F1)中
- 通過在其中一個 DP83867PHY 上寫入寄存器 0x001F = 4000 來嘗試軟件復位,然后查看是否解決了問題。
- 讀取寄存器 0x0005[15],如果 0x0005 bit[15] = 0,
- 則自動 MDIX 很可能沒有完成。兩個 PHY 同時在同一通道上發送自動 MDIX FLP_Brust,導致死鎖情況。
解決方案:
- 更改其中一個 PHY 上的自動 MDIX 計時器可以防止死鎖情況。
- 在其中一個 DP83867PHY 上更改寄存器 0x002C bit[32] = 0
- 寫入 0x001F = 4000 以對 PHY 進行軟件復位
- 讀取寄存器 0x0005[15],如果 0x0005 bit[15] = 1
- 自動 MDIX 已完成,自動協商偽隨機數 (PRN) 很可能是問題所在。偽隨機數 (PRN) 發送隨機數 以確定兩個 PHY 在 1000Base-T 下進行通信時,哪個 PHY 是主 PHY(由本地時鐘源提供時鐘信號),哪個 PHY 是從 PHY(由所接收數據流中的恢復時鐘提供時鐘信號)。這可以通過寄存器 0x000A bit[14] 來檢查。
- 但是,PRN 不是完全隨機的,如果兩個 DP83867 同時啟動自動協商,則可能兩個 DP83867 發送完全相同的隨機種子 (PRN) 并導致死鎖。
解決方案:
- 在其中一個 DP83867PHY 上將 0x0009 bit[12:11] 設置為 11,并在另一個 DP83867PHY 上將 0x0009 bit[12:11] 設置為 10。這個寄存器可以強制一個 PHY 始終作為 1000Base-T 通信的主機,以防止偽隨機數 (PRN) 進程。
- 寫入 0x001F = 4000 以對 PHY 進行軟件復位,或寫入 0x0000[9] = 1 以重新啟動自動協商