登录/注册

lan8720 不稳定

更多

针对LAN8720不稳定的问题,以下分硬件设计、软件配置和信号完整性三个维度进行全面排查及解决方案:


一、硬件设计排查(重点关注电源和时钟)

  1. 电源稳定性

    • 核心电压 (VDDCR/VDDIO):使用示波器检测1.2V和3.3V电源轨,纹波需<50mV(峰峰值)。若超标:
      • 增加10μF钽电容 + 0.1μF陶瓷电容并联滤波
      • 检查LDO负载能力(如AMS1117需≥500mA)
    • 独立模拟电源 (VDDA):必须通过磁珠(如BLM18PG221SN1)与数字电源隔离,并采用π型滤波(10μF+100nF)
    • 接地设计:PHY芯片下方铺完整地平面,避免数字/模拟地分割错误。
  2. 时钟电路

    • 25MHz晶振:优先选用±10ppm精度、10pF负载的贴片晶振(如ECS-2520MVQ)
    • 布局限制:时钟线长度≤10mm,远离高速信号(如RMII_CLK),并联1MΩ电阻增强稳定性
    • 替代方案:若温度变化大,选用SiTime的温补振荡器(TCXO)
  3. 复位电路

    • RST#引脚需保证上电期间低电平≥200ms(参考STM32的POR时间)
    • 典型电路:10kΩ上拉电阻 + 100nF电容到地,禁用外部复位时需通过软件延迟初始化

二、软件驱动关键配置(以RMII模式为例)

  1. PHY寄存器诊断
    读取REG_31 (Special Modes) 验证配置:

    // 检查RMII使能位(bit5=1)
    uint16_t reg31 = ETH_ReadPHYRegister(0, 31);
    if((reg31 & 0x20) == 0) { 
     ETH_WritePHYRegister(0, 31, reg31 | 0x20); // 强制RMII模式
    }

    REG_1 (Status Register) 状态解析:

    • Bit 2: LINK_STATUS 必须为1
    • Bit 5: AUTO_NEG_COMPLETE 应为1
  2. MAC层时序调整
    针对STM32F4系列调整发送延迟(适配电缆传播延迟):

    ETH->MACCR |= ETH_MACCR_DM; // 延迟发送使能
    ETH->MACCR |= ETH_MACCR_FES; // 100Mbps模式
  3. 中断错误处理
    启用MAC接收错误中断并添加重试机制:

    ETH_DMAITConfig(ETH_DMA_IT_NIS | ETH_DMA_IT_R | ETH_DMA_IT_T, ENABLE);
    void ETH_IRQHandler(void) {
     if(ETH_GetDMAITStatus(ETH_DMA_IT_RBUS)) {
       ETH_DMAClearITStatus(ETH_DMA_IT_RBUS);  // 缓冲区溢出处理
       ETH_FlushRxBuffer(); // 清空接收缓存
     }
    }

三、信号完整性优化(PCB Level关键点)

  1. RMII布线规范

    • TXD[0:1]/RXD[0:1]:严格等长(±5mm内),参考层连续
    • CRS_DV/REF_CLK:优先布在顶层,避免via过孔
    • 阻抗控制:单端50Ω ±10%(FR4板材叠层计算)
  2. 辐射干扰抑制

    • 靠近RJ45接头串联共模电感(如DLW21HN222SQ2L)
    • PHY的TXP/TXN差分对并联22Ω电阻 + 2pF电容到地
  3. ESD保护
    RJ45和网变压器之间添加TPD4E1U06(4通道TVS),响应时间<1ns


四、进阶诊断工具

  1. 网络协议分析仪

    • 捕获丢包特征:ARP请求超时/UDP乱序包指示物理层问题
    • 统计误码率:连续Ping 9000字节包测试,要求0%丢包率
  2. 热成像检测
    工作半小时后芯片表面温度>65℃需优化散热(添加Thermal Pad)


五、替代方案评估

若以上措施无效:

请结合具体故障现象(如随机断连/数据校验错误)进一步定位。建议使用示波器捕获复位时序RMII_CLK抖动(要求<5%周期)作为核心突破口。

使用LAN8720进行iperf测试时不能达到100Mbits/sec,是否是ESP32的性能不足导致的呢?

请问有人试过使用LAN8720连接网络吗?目前遇到三个问题 (1)使用LAN8720进行iperf测试时速度只有60Mbits/sec,不能达到100Mbits/sec,是否是ESP32的性能

2024-06-24 07:03:38

Cube+lwip配置的只有LAN8742,如何改成LAN8720

Cube+lwip配置的只有LAN8742,如何改成LAN8720,现在项目需要,用Cube配置的有点晕了!

2024-04-15 07:53:10

LAN8720

LAN8720 - Small Footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX Support - SMSC Corporation

2022-11-04 17:22:44

LAN8720A/LAN8720Ai数据手册

LAN8720A/LAN8720-Ai支持通过标准RMII与以太网MAC通信界面它包含一个全双工10-BASE-T/100BASE-TX收发器,支持10Mbps(10BASE-T)和100Mbps

资料下载 姚小熊27 2022-09-29 10:18:59

CubeMX创建裸机工程:STM32F407+ LAN8720A + RMII + lwIP

MCU和PHY芯片接口:RMII操作系统:无TCP/IP网络协议栈:lwIP配置工具:CubeMX编译工具:Keil5烧录器:J-Link烧录模式:SWD原理图部分STM32F407与PHY芯片LAN8720采用RMII接口方式,电路连接如下CubeMX 配置外部晶振作为时钟源时钟配置

资料下载 贾虎世 2021-12-05 12:06:15

LAN8720A和LAN8720Ai物理层收发器的数据手册免费下载

LAN8720A/LAN8720Ai支持通过标准RMII接口与以太网MAC通信。它包含一个全双工10-BASE-T/100BASE-TX收发器,支持10Mbps(10BASE-T)和100Mbps

资料下载 佚名 2021-03-17 16:03:43

LAN8720A和LAN8720Ai低功耗物理层PHY收发器的数据手册免费下载

LAN8720A/LAN8720Ai是一款低功耗10BASE-T/100BASE-TX物理层(PHY)收发器,具有可变I/O电压,符合IEEE 802.3-2005标准。

资料下载 dlpare2020 2020-11-06 08:00:00

LAN8720A和LAN8720Ai以太网收发器的数据手册免费下载

LAN8720A/LAN8720Ai是一款低功耗10BASE-T/100BASE-TX物理层(PHY)收发器,具有可变I/O电压,符合IEEE802.3-2005标准。

资料下载 4441 2020-06-03 08:00:00

如何从LAN8720的程序修改为LXT971A的程序

首先感慨一下,忙活了半个月,改了硬件加软件,网上基本都是RMII的程序,很少有STM32F4 MII的程序,网上很流行的PHY芯片主要是DP83848(支持MII/RMII),LAN8720(只支持

2021-08-05 07:02:35

STM32F407+LAN8720例程怎么实现的LAN8720的CLK_OUT功能?

请问这个LWIP移植例程的哪个文件和哪条语句实现了LAN8720的CLK_OUT功能,另外STM32和PHY芯片可以同时使用同一个25M外部晶振吗?谢谢!

2020-03-10 23:05:54

LAN8720和PIC32MX795F512H问题

对不起,我的英语不好。我用的是LAN8720和PIC32MX795F512H。它是由MPlab Harmony配置的。MPLAB X IDE:3.65,Harmony:2.03,.:RMII。我有IP地址,但是我不能查到那个IP。你能帮我吗?

2020-03-06 10:24:34

微雪电子LAN8720 ETH Board以太网模块简介

LAN8720以太网模块 以太网收发器(PHY)采用RMII接口 高性能10/100Mbp, 超低功耗设计, 可使用3.3V单电源供电, 支持HP Auto-MIDX 型号 LAN8720 ETH Boa

2019-12-30 15:07:48

LAN8720存在通信问题

我们的许多产品使用与NXP LPC1837FET100处理器相连的LAN8720。在一些单元上(大约5%),我们必须在TXD1与地之间增加一个小电容~20pF。这就解决了问题。这是已知的问题吗?切换到新的LAN840

2019-09-12 13:19:42

为什么我的以太网LAN8720初始化失败了?

原子大哥,我进行以太网实测测试时,程序停在了LAN8720初始化这边,初始化失败,我直连的电脑网卡,这是什么原因呢?LAN8720芯片稍微有些热,正常么?程序停在这里了?是什么问题呢?[C] 纯文本

2019-07-18 02:34:47

为什么LAN8720以太网实验的初始化都完不成?

LAN8720以太网实验的初始化都完不成程序到等待软件复位时就死了 一直找不到问题 用示波器打了25M的晶振是起振了的 但是LAN8720的CLK引脚没有50M的输出 请问有没有大神知道啊谢谢啦

2019-07-11 04:35:29
7天热门专题 换一换
相关标签