本次調試88EE1111 PHY芯片之主要目的主要對應為了將其默認的GMII接口通過配置成RGMII接口。因此,可能本文檔涉及到的內容並沒有涉及到PHY芯片的88EE1111所有內容。
PHY芯片管理接口:
88EE1111芯片可通過硬件設置成兩種管理接口,一種就是本文所提的MDIO接口。一種對應的就是Two_Wire_Serial_Interface(TWSI),也就是I2c接口,這不做討論。主要硬件選擇是通過88EE1111的CONFIG[6:0]中的CONFIG[6]配置的Bit2選擇,為1,表示配置為TWSI接口,否則為MDIO接口。下面講述對應CONFIG[6:0]硬件配置。
88EE1111芯片可通過CONFIG[6:0]這些IO硬件配置一些基本模式。可配置 PHY Address、PHY Operate Mode(操作模式)、Auto-Negotiation(自適應模式)。具體見88EE1111的Hardware Configuration部分。
對應通過將CONFIG[6:0]連接模式如下,設置對應模式以及對應值:

這個表的意思對應就是如果CONFIG[0]接到VDDO上,對應CONFIG[0]配置的那些參數就是111。接LED_LINK10對應配置的參數位110。
下面舉例說明對應其硬件配置:
如下圖:以下是對應其硬件連接方式。對應其配置意義:PHY Address為10010,選擇了TWSI管理接口。


下面對應是我們的實際硬件原理圖:(對應為Xilinx的SP601開發板)

對應圖中CONFIG[0]配置為VDDO(111),CONFIG[1]配置為VSS(000),CONFIG[2:5]配置為VDDO(111),CONFIG[6]配置為LED_RX)(010)。對應其配置PHY ADDRESS為00111,其選擇的管理接口為MDIO接口。
MDIO接口時序:
MIDO接口對應有兩個IO,一個是時鍾管腳MDC,對應其最大時鍾可達8.3MHz,另外一個是雙向IO,MDIO。對應MDIO硬件上需要上拉個1.5K到10K的上拉電阻。具體參閱88EE1111 Datasheet Management Interface部分。
EPREAMBLE(PRE):對應在准備操作前拉高MDIO,拉高32個MDC時鍾。
START OFFRAME(ST):在發完PRE后,對應在MDIO上發出一個01啟動接口。
OPERATION CODE(OP):在發完ST,接着發出對應指令,寫為01指令,讀為10指令。
PHY ADDRESS(PHY AD):在OP后對應發送PHY ADDRESS,這個跟CONFIG[6:0]有關,這里對應位00111。
REGISTER ADDRESS(REG AD):發送一個5Bits的要操作的寄存器。
TURNAROUND(TA):寫的時候發送一個10到MDIO引腳上,而如果是讀,直接寫Z0或者ZZ上面,或者直接設置為將FPGA內部設置為三態高阻。
DATA:對應寫,就是將16Bits數據寫人,MSB FIRST。對應讀讀取16bits數據,MSB FIRST.

對應完成上面部分還不行,還需特別注意PHY芯片的復位,(本人就因為這個復位,找了好幾個小時問題)下面就講述對應復位時序要求。
88EE1111芯片是低電平復位有效。RESETn,在上電至少10ms后拉高,並且其拉高前時鍾至少有10個Clks。而對應操作MDIO接口需在RESETn拉高后5ms才能操作。這些都是需要特別注意的地方。並且對PHY芯片復位時,復位信號至少得拉低10ms以上。

GMII接口轉換成RGMII:
從GMIII接口轉換成RGMII接口,先將Register 27的低4Bits配置成1011,如表中,對
應將HWCFG_MODE配置成1011,對應就是配置成了RGMII模式。

在配置好了RGMII模式后,需同時將Register 0 Bit12自適應使能禁止掉,因為在自適應模式下,14pins GTX_CLK不會輸出125MHz時鍾。在配置完這些后,對應將Register 0 的bits 15配置為1,啟動一次Soft reset,使得上述配置生效。然后對應接口就是RGMII接口了。
