RTL8211FSI PHY电路设计

news2024/11/18 14:41:50

文章目录

  • 硬件设计
    • 引脚
    • 功能框图
    • 说明
      • PHYADDR
      • Page
      • LED 模式
      • 自动协商/速度/全半双工模式
      • Soft Reset
      • 上电顺序
    • 原理图设计参考
  • 软件控制(FPGA)
  • 硬件调试

硬件设计

引脚

  笔者前代数字采集板采用的 PHY 芯片是博通 Boardcom 的 B50610,其仅支持 0 ∼ 7 0 ∘ C 0\sim70^\circ C 070C 的工作温度,不符合预期的工作环境温度范围,且没有可直接替换的低温版本。因此在新一版采集板设计中须更换 PHY 芯片,拟采用瑞昱 Realtek 的 RTL8211FS,其工业版本 FSI 版本的可支持 − 4 0 ∘ C -40^\circ C 40C 的低温工作环境。首先做一个小的测试板,验证其电路及功能是否可行,本文即对此进行一个工作记录。

  RTL8211FSI 的接口如下图

在这里插入图片描述

  • RGMII 接口

    • TX:TXC (I),TXD3:0 (I),TXCTL (I);
    • RX:RXC (O),RXD3:0 (O),RXCTL (O);
    • RXDLY,RX Delay,上拉(接 4.9 k Ω 4.9k\Omega 4.9kΩ 到 DVDD_RG)时,在 RXC 到 RXD 增加 2ns 的延迟;下拉时接 4.9 k Ω 4.9k\Omega 4.9kΩ 到 GND;
    • TXDLY 没有引脚进行配置,但可以通过 Page 0xd08, Reg17, Bit[8] 进行设置。
  • SMI 接口

    • MDC (I)
    • MDIO (IO),引脚接 1.5 k Ω 1.5k\Omega 1.5kΩ 上拉
  • SerDes 接口 (不使用,设计中直接悬空即可)

    • HSIP,HSIN,HSOP,HSON,HSOP_CLK,HSON_CLK
  • MDI 接口 (不多介绍,连接 RJ45 水晶头)

    • MDIP/MDIN[3:0] (IO)
  • CLK

    • XTAL_IN,I,25M 时钟输入,若有外部时钟驱动 XTAL_OUT/EXT_CLK 脚,则本引脚应接地;
    • XTAL_OUT/EXT_CLK,O,25M 时钟输出;若使用外部时钟,本引脚接晶振输出端;
    • CLKOUT,O,芯片内部 PLL 产生的时钟,若此时钟未被使用,应浮空;在 1000BASE 和 100BASE 时输出 125M/25M,用以支持同步以太网(作为主机,由内部 PLL 输出,作为从机,从 MDI 恢复出时钟),可通过 PHYCR2 (Page 0xa43, Addr 0x19)寄存器进行配置;
    • PTP_CLK,对于 RTL8211FS(I)-VS 版本,33 脚为 PTP_CLK/PTP_GPIO0,PTP_CLK 为外部参考时钟,PTP 为精确时间协议 Precision Time Protocol,不使用应浮空;RTL8211FS(I) 版本下 33 脚则为 NC,浮空。
  • Hard Reset

    PHYRSTB,即 Reset_n 引脚,硬复位,复位至少要保持 10ms 低电平

  • PHYADDR

    PHYAD[2:0],上电/硬复位后检测其引脚电平,决定 PHYADDR 的地址。

  • PWR

    • AVDD33,模拟 3.3V 供电;
    • AVDD10,模拟 1.0V 供电;
    • DVDD10,数字核心 1.0V 供电;
    • DVDD33,数字(非 RGMII IO)的 3.3V 供电;
    • DVDD_RG,RGMII IO 电平,注意和 CFG_LDO[1:0] 的设置相匹配;注意,当 CFG_LDO[1:0]=00 时,IO Pad 由连接到 DVDD_RG 的 3.3V 供电,其他情况下则由内部 LDO 供电;
    • VDD_REG,内部调节器的 3.3V 供电;
    • REG_OUT,内部调节器的 1.0V 输出,由于实际是个 DCDC 开关电源,因此要串接 2.2 μ H 2.2\mu H 2.2μH 电感;应仅供应 AVDD10 和 DVDD10;
    • RSET, 2.49 k Ω   ( 1 % ) 2.49k\Omega\ (1\%) 2.49kΩ (1%) 到 GND
  • CFG 端口

    • CFG_LDO[1:0],设置 RGMII IO 的电平,00: 3.3V,01: 2.5V,10: 1.8V,11: 1.5V;
    • CFG_MODE[2:0],设置操作模式(网线类型 <-> 协议类型),000 对应 UTP <-> RGMII。
  • INTB/PMEB/GPIO1

    该引脚的功能可以配置为中断 INTB 或电源管理 PMEB 功能,RTL8211FS(I)-VS 版本下,则还可作为 PTP_GPIO1;作为 PMEB 功能时,应接 4.7 k Ω 4.7k\Omega 4.7kΩ 到 3.3V;不使用时应浮空。

  • LED

    LED[2:0] 默认分别表示 1000BASE、100BASE、10BASE,通过寄存器配置的介绍见后文

    在这里插入图片描述

    不过注意下 LED2、LED1 引脚的极性,LED2 应当采用共阴接法,LED1 则采用共阳接法。

功能框图

在这里插入图片描述

说明

PHYADDR

  PHYADDR[4:3]='b00,PHYADDR[2:0]=PHYAD[2:0],由上电时 PHYAD[2:0] 引脚的上下拉状态决定,拥有 0x00 到 0x07 共 8 个可用地址。

  注意,RTL8211FS 默认将地址 0x00 视为广播地址,所有 RTL8211FS 都会响应,可通过配置 PHYCR1 (Page 0xa43, Reg24 (0x18), Bit13 = 0) 来禁用广播功能。 如 PHYAD[2:0]='b000,RTL8211FS 默认会自动记住第一个非零地址,可以通过配置 PHYCR1, Bit6 = 1 来启用该功能。

  因此,在设计中最好避开 0x00 这个地址,免去不必要的麻烦。

Page

  RTL8211FS 寄存器较多,因此除 RegAddr 外,还有不同的 Page。一个确切的寄存器声明如下:PAGE 0x0XXX, REG 0xXX, BIT[M:N]。

  Page 可通过对 PAGSR(Page 0xa43, Reg 31 (0x1F), bit[11:0]) 寄存器进行配置。配置 Reg 31 值为 0x0000 或 0x0a42 将切换回 IEEE 标准寄存器。(略有疑问,PAGSR 寄存器应该是在 Page Any, Reg 31 都可以访问,而不仅在 Page 0xa43;后经过上板验证发现确实如此

在这里插入图片描述

LED 模式

  控制 LED 的官方参考设计如下(左,共阳接法;右,共阴接法)

在这里插入图片描述

  RTL8211FS 的 LED 控制没有太花哨的功能,基本就是每个 LED 管脚对应一个速度。LCR (Page 0xD04, Reg 0x10) 寄存器用于配置 LED 的工作模式,以 LED2 管脚的默认值为例,LED2_ACT、LED2_LINK_1000 为 1,因此在连接 1000BASE 时,LED2 会亮起,当处于 1000BASE 活动状态时,则 LED2 闪烁。(这个默认配置就挺好用的,不需要再另行配置了,将 LED2/LED1 管脚接到 RJ45 的两个灯就可以了;注意极性)

在这里插入图片描述

自动协商/速度/全半双工模式

  BMCR (Page 0x0, Reg 0), Bit 12 为自动协商使能,默认为 1 (on)。

  当关闭自动协商时,BMCR Bit 6、Bit 13 决定本 PHY 芯片工作在何种速度,{Bit6, Bit13} = 10: 1000BASE,01: 100BASE,00: 10BASE。BMCR Bit 8 决定全双工/半双工模式,仅在关闭自动协商时起作用。

  PHYSR (Page 0xa43, Reg 0x1A) 寄存器可以查看连接状态,Bit 2 指示是否连接,Bit5:4 指示速度,Bit 3 指示全半双工模式。

Soft Reset

  Page 0x0, Reg 0, Bit 15 设为 1 将触发软复位,复位后自动清零。

上电顺序

  RTL8211FS 上电顺序如图

在这里插入图片描述

在这里插入图片描述

3.3V 供电的上升时间应大于 0.5ms,否则可能永久损坏内部电压调节器。

原理图设计参考

在这里插入图片描述

软件控制(FPGA)

  (暂略)

硬件调试

  打板回来后进行了测试,然而发现只能自动协商到 100BASE,进一步测试发现,十兆和百兆均可以正常建立连接,而千兆会协商失败,从而自动降速到了百兆。进一步通过 MDIO 关闭自协商,并强制规定到千兆,电脑就无法识别到这个设备了,读取 PHYSR (Page 0xa43,Reg 0x1A)寄存器,也发现 bit2=0 (Link not OK)。测量 3.3V 供电、 1.0V 核压以及 25M 晶振输出,均正常,其中 1.0V 输出有 70mV 纹波。

(咳,本菜鸟画的第一块 PCB,各种修正方案都尝试了一遍,但还是无法解决千兆连接的问题,是否有大佬可以指点一二,万分感激)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零到一:eBay自养号测评全流程解析与实操建议

eBay自养号测评是一种通过模拟真实买家行为&#xff0c;为卖家提供市场反馈并提升店铺权重和排名的技术手段。以下是进行eBay自养号测评的具体步骤和注意事项&#xff1a; 一、准备阶段 1. 技术配置&#xff1a;搭建境外服务器&#xff1a;选择稳定的境外服务器&#xff0c;模…

【解码现代 C++】:实现自己的智能 【String 类】

目录 1. 经典的String类问题 1.1 构造函数 小李的理解 1.2 析构函数 小李的理解 1.3 测试函数 小李的理解 1.4 需要记住的知识点 2. 浅拷贝 2.1 什么是浅拷贝 小李的理解 2.2 需要记住的知识点 3. 深拷贝 3.1 传统版写法的String类 3.1.1 拷贝构造函数 小李的理…

go zero入门

一、goctl安装 goctl 是 go-zero 的内置脚手架&#xff0c;可以一键生成代码、文档、部署 k8s yaml、dockerfile 等。 # Go 1.16 及以后版本 go install github.com/zeromicro/go-zero/tools/goctllatest检查是否安装成功 $ goctl -v goctl version 1.6.6 darwin/amd64vscod…

0/1背包问题总结

文章目录 &#x1f347;什么是0/1背包问题&#xff1f;&#x1f348;例题&#x1f349;1.分割等和子集&#x1f349;2.目标和&#x1f349;3.最后一块石头的重量Ⅱ &#x1f34a;总结 博客主页&#xff1a;lyyyyrics &#x1f347;什么是0/1背包问题&#xff1f; 0/1背包问题是…

html三级菜单

示例 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Menu Example</title> <link re…

加速度传感器信号处理注意事项

1 传感器分类 对于压电式压力传感器而言&#xff0c;输出信号是最重要的选择标准之一。压电式压力传感器与电子电路相连&#xff0c;电子电路将传感器产生的电荷成比例转换为电压。 如果选用外部设备&#xff08;电荷放大器&#xff09;充当电子元件&#xff0c;则称其为电…

MYSQL篇二:数据库的操作

文章目录 1. 创建数据库1.1 查看数据库列表1.2 创建与删除数据库 2. 数据的编码问题3. 字符集和校验规则3.1 查看系统默认字符集以及校验规则3.2 查看数据库支持的字符集3.3 查看数据库支持的字符集校验规则3.4 校验规则对数据库的影响 4. 操纵数据库4.1 查看当前是哪一个数据库…

力扣热100 滑动窗口

这里写目录标题 3. 无重复字符的最长子串438. 找到字符串中所有字母异位词 3. 无重复字符的最长子串 左右指针left和right里面的字符串一直是没有重复的 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 左右指针leftright0ans0#初始化结果tablecolle…

LMT加仿真,十一届大唐杯全国总决赛

这次省赛带了太多个省一了&#xff0c;并且很多都进入了国赛总决赛&#xff0c;具体可看下面的图片&#xff0c;只放了一部分。目前只有B组是只有一个商用设备赛也就是LMT&#xff0c;A组和高职组都是仿真实践赛加上商用设备赛。 针对商用设备赛有对应的资料&#xff…

基于IIS的Windows系统Django项目本地部署

参考&#xff1a; 1. 基于Windows平台的Django本地部署和腾讯云服务器上部署&#xff08;1&#xff09;_如何在服务器上发布部署django程序 csdn-CSDN博客 2.Windows server iis部署Django详细操作 - Django中文 - 博客园 (cnblogs.com) 3.在IIS中部署pythonDjango项目时出…

大模型范式下的知识检索增强实践(非常详细)零基础入门到精通,收藏这一篇就够了

导读 OpenKG新开设“TOC专家谈”栏目&#xff0c;推送OpenKG TOC&#xff08;技术监督委员会&#xff09;专家成员的观点文章。本期邀请到阿里巴巴通义实验室自然语言处理方向负责人黄非研究员介绍通义大模型在知识检索增强方面的一些实践。 随着人工智能技术的飞速发展&…

AI绘画 Stable Diffusion图像的脸部细节控制——采样器全解析

大家好&#xff0c;我是画画的小强 我们在运用AI绘画 Stable Diffusion 这一功能强大的AI绘图工具时&#xff0c;我们往往会发现自己对提示词的使用还不够充分。在这种情形下&#xff0c;我们应当如何调整自己的策略&#xff0c;以便更加精确、全面地塑造出理想的人物形象呢&a…

数据特征采样在 MySQL 同步一致性校验中的实践

作者&#xff1a;vivo 互联网存储研发团队 - Shang Yongxing 本文介绍了当前DTS应用中&#xff0c;MySQL数据同步使用到的数据一致性校验工具&#xff0c;并对它的实现思路进行分享。 一、背景 在 MySQL 的使用过程中&#xff0c;经常会因为如集群拆分、数据传输、数据聚合等…

24_嵌入式系统输入输出设备

目录 GPIO原理与结构 A/D接口基本原理 A/D接口原理 A/D转换的重要指标 D/A接口基本原理 D/A接口原理 DAC的分类 D/A转换器的主要指标 键盘接口基本原理 键盘接口原理 用I/O口实现键盘接口 显示接口基本原理 基本结构和特点 基本原理 LCD种类 市面上出售的LCD的类…

python怎么样将一段程序无效掉

1、python中可以用注释屏蔽一段语句&#xff0c;具体方法如下&#xff0c;首先打开一段python的示例程序&#xff1a; 2、然后单行注释的方法是在语句前面加上#&#xff0c;程序运行后添加注释的地方的语句会被自动跳过&#xff0c;这里可以看到将打印变量a的语句添加注释就没有…

STM32F1+HAL库+FreeTOTS学习5——内核中断管理及中断控制函数

STM32F1HAL库FreeTOTS学习5——中断管理和临界段代码保护 中断简介中断优先级寄存器拓展FreeRTOS中PendSV和Systick中断优先级配置三个中断屏蔽寄存器FreeRTOS中断管理函数代码验证 上一期我们学习了FreeRTOS中任务挂起与恢复&#xff0c;在中断服务程序中恢复任务过程中&#…

利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API

谷歌在2024年4月发布了全新一代的多模态模型Gemini 1.5 Pro&#xff0c;Gemini 1.5 Pro不仅能够生成创意文本和代码&#xff0c;还能理解、总结上传的图片、视频和音频内容&#xff0c;并且支持高达100万tokens的上下文。在多个基准测试中表现优异&#xff0c;性能超越了ChatGP…

竞赛选题 协同过滤电影推荐系统

文章目录 1 简介1 设计概要2 课题背景和目的3 协同过滤算法原理3.1 基于用户的协同过滤推荐算法实现原理3.1.1 步骤13.1.2 步骤23.1.3 步骤33.1.4 步骤4 4 系统实现4.1 开发环境4.2 系统功能描述4.3 系统数据流程4.3.1 用户端数据流程4.3.2 管理员端数据流程 4.4 系统功能设计 …

【Proteus】按键的实现『⒉种』

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

13-错误-ERROR: duplicate key value violates unique constraint “ux_xxx“

13-错误-ERROR: duplicate key value violates unique constraint “ux_xxx” 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯…