本次调试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. 常见linux系统中RPM包的通用命名规则

    本文重点说一下在常见的linux系统中,RPM包通用的命名规则. RPM包的一般格式为:name-version-arch.rpmname-version-arch.src.rpm 例:httpd-2 ...

  2. [转]类不平衡问题与SMOTE过采样算法

    在前段时间做本科毕业设计的时候,遇到了各个类别的样本量分布不均的问题——某些类别的样本数量极多,而有些类别的样本数量极少,也就是所谓的类不平衡(class-imbalance)问题. 本篇简述了以下内 ...

  3. 框架布局FrameLayout

    框架布局FrameLayout 一.简介 二.代码实例 结果图: 代码: 需要注意的代码: imageView_play.setVisibility(View.INVISIBLE); <Fram ...

  4. Codeforces Round #448 (Div. 2)C. Square Subsets

    可以用状压dp,也可以用线型基,但是状压dp没看台懂... 线型基的重要性质 性质一:最高位1的位置互不相同 性质二:任意一个可以用这些向量组合出的向量x,组合方式唯一 性质三:线性基的任意一个子集异 ...

  5. lightoj1197区间素数筛

    模板题,不过好像有点问题,当a==1的时候,答案把一也算进去了,要减去 #include<map> #include<set> #include<cmath> #i ...

  6. Ubuntu 18.04 编译 ijkplayer

    Ubuntu 18.04 编译 ijkplayer 1. 配置安装源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu 2. 配置好安装源后,安装一些组 ...

  7. vue 时间格式化

    export function formatDate(date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.g ...

  8. opencv:通过滑动条调节亮度和对比度

    示例代码: #include <opencv.hpp> using namespace cv; using namespace std; void on_change(int, void* ...

  9. python基础之递归,声明式编程,面向对象(一)

    在函数内部,可以调用其他函数,如果一个函数在内部调用自身本身,这个函数就是递归函数.递归效率低,需要在进入下一次递归时保留当前的状态,解决方法是尾递归,即在函数的最后一步(而非最后一行)调用自己,但是 ...

  10. dubbo常见报错

    1. java.io.IOException: Can not lock the registry cache file C:\Users\Administrator\.dubbo\dubbo-reg ...