88EE1111 PHY芯片设置
本次调试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接口了。