本次调试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接口了。

88EE1111 PHY芯片设置的更多相关文章

  1. 【RL-TCPnet网络教程】第5章 PHY芯片和STM32的MAC基础知识

    第5章        PHY芯片和STM32的MAC基础知识 本章节为大家讲解STM32自带的MAC和PHY芯片的基础知识,为下一章底层驱动的讲解做一个铺垫. 5.1   初学者重要提示 5.2    ...

  2. FPGA控制RGMII接口PHY芯片基础

    一.前言 网络通信中的PHY芯片接口种类有很多,之前接触过GMII接口的PHY芯片RTL8211EG.但GMII接口数量较多,本文使用RGMII接口的88E1512搭建网络通信系统.这类接口总线位宽小 ...

  3. 【重新发布,代码开源】FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片

    原创博客,转载请注明出处:[重新发布,代码开源]FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片 - 没落骑士 - 博客园 https://www.cnblogs.com/m ...

  4. [phy]在uboot阶段失能phy芯片

    在uboot阶段power down掉phy芯片 uenvcmd=mdio 0x800; mmc rescan mdio为uboot支持命令 7:phy芯片地址 0:phy芯片工作模式寄存器地址 0x ...

  5. 对于phy芯片的认识

    一,关于phy芯片 以RTL8211E(G)为例 PHY是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU) 通过SM ...

  6. 以太网PHY 芯片之 MII/MDIO接口详解

    本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法. ...

  7. ZYNQ使用88E1510 PHY芯片的驱动程序

    SDK V2014.4 PHY 88E1510 PL端以太网,自协商 standalone应用程序 PL端设计,略. 根据PL端生成的hdf,新建项目,采用官方lwip echo server例程.发 ...

  8. stm32+lwip(一):使用STM32CubeMX生成项目

    我是卓波,很高兴你来看我的博客. 系列文章: stm32+lwip(一):使用STM32CubeMX生成项目 stm32+lwip(二):UDP测试 stm32+lwip(三):TCP测试 stm32 ...

  9. 网口扫盲三:以太网芯片MAC和PHY的关系

    转载:http://www.cnblogs.com/jason-lu/articles/3195473.html   问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MA ...

随机推荐

  1. NumPy位操作

    NumPy - 位操作 下面是 NumPy 包中可用的位操作函数. 序号 操作及描述 1. bitwise_and 对数组元素执行位与操作 2. bitwise_or 对数组元素执行位或操作 3. i ...

  2. java模拟http的get和post请求

    如题,使用Java模拟GET和POST请求.使用GET可以实现网页抓取,使用POST可以实现对某些网站登录的暴力破解.不过仅是练习,实际意义不大. import java.io.IOException ...

  3. java中的Properties

    Properties类继承自HashTable类并实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型. Properties中的 ...

  4. 不能在Python Console中运行pytest

    在Python Console中运行pytest发现报错了 这是为什么?因为Python Console已经是进入python之后的环境,就像在python自带的IDLE中运行pytest pytes ...

  5. AtCoder Regular Contest 079

    C题,刚开始以为遍历整个树,后来发现二重循环判断就行了 #include<map> #include<set> #include<cmath> #include&l ...

  6. Ceph:pg peering过程分析

    转自:https://www.ustack.com/blog/ceph%ef%bc%8dpg-peering/ Peering:互为副本的三个(此处为设置的副本个数,通常设置为3)pg的元数据达到一致 ...

  7. 2017.11.15 Add a parameter –serial <serial no> to the Target field.

    1 exe创建快捷方式,并且加后缀  program --serial 50114130   这是Win里面的一种调用说明. Please note that the programming logs ...

  8. linux 段错误常见处理方法

    1.如果没有产生core文件,可以查询系统log 通过 sudo cat /var/log/messages |grep segfault 或者 sudo dmesg|grep segfault 获得 ...

  9. PHP内核研究

    深入理解PHP内核:Think In PHP Internals(TIPI)是一个开源项目 ,分享PHP内部实现的细节,如内核,扩展等.官网见:http://www.php-internals.com ...

  10. 旧书重温:0day2【6】bind_shell

    学习了以上5节课,我们学到了很多知识,例如如何动态获取指定函数的地址:我们也学到了很多经验,例如如何发现代码中的错误,如何用od定位到错误,并修正. 有了以上积累,今天我们继续实验bind_shell ...