NXP MCU 技术论坛
直播中

李巍

8年用户 1532经验值
私信 关注
[问答]

求助,关于LPC1768FBD100中的LAN连接问题求解

我们在 LAN 连接中面临问题,我们已经制造了带有最新日期代码新 IC 的 PCB,现在所有板子都有相同的问题 LAN 未连接。
同时我们有1张2020年生产的卡,同样的程序在旧卡中也能正常工作。
因此,请紧急向我们提供解决方案,由于该问题,所有生产都卡住了。

回帖(1)

李涛

2025-4-8 17:43:11

针对LPC1768FBD100的LAN连接问题,以下是分步解决方案:


1. 硬件排查




  • PHY芯片与接口验证



    • 确认新PCB使用的PHY型号与旧板一致(如DP83848),检查原理图中RMII/MII接口、MDIO/MDC、中断和复位信号是否与参考设计一致。

    • 测量PHY的电源电压(3.3V/2.5V/1.2V)是否在±5%范围内,检查去耦电容是否焊接正确。

    • 使用万用表检查PHY与LPC1768之间的连接(无短路/断路),特别是TXD[0:1]RXD[0:1]CRS_DVREF_CLK等关键信号。




  • 时钟与复位电路



    • 用示波器测量PHY的时钟输入(25MHz晶体或外部时钟),确认频率精度≤50ppm,振幅满足PHY要求(通常1.6Vpp以上)。

    • 检查复位信号时序:PHY的复位引脚应在LPC1768复位释放后保持低电平至少10ms,确保电平稳定无毛刺。




  • PCB布局审查



    • RMII差分对(如TXD/RXD)长度匹配≤5mm,与其他信号间距≥3倍线宽,避免平行走线。

    • 确保PHY的模拟电源(VDDA)与数字电源隔离,采用星型接地,参考层完整无割裂。




2. 软件调试




  • PHY寄存器访问测试


     // 示例代码:读取PHY ID寄存器
    uint32_t phyID = 0;
    uint8_t phyAddr = 0x01; // 确认PHY地址与硬件匹配
    if (LPC_ETHERNET->MIND & MIND_BUSY) { /* 等待MDIO空闲 */ }
    LPC_ETHERNET->MADR = (phyAddr << 8) | 0x02; // 设置PHY地址和寄存器2(PHYID1)
    LPC_ETHERNET->MWTD = 0xFFFF; // 触发读操作
    while (LPC_ETHERNET->MIND & MIND_BUSY);
    phyID = LPC_ETHERNET->MRDD << 16;
    // 类似操作读取寄存器3(PHYID2)


    • 预期结果:PHYID1/2应与手册一致(如DP83848为0x2000A240)。

    • 若读取失败,检查MDIO/MDC信号波形(频率≤2.5MHz,上升时间≤10ns)。




  • 链路状态诊断


     // 检查PHY链路状态寄存器
    uint16_t bmsr = 0, phyReg = 0;
    phyRead(phyAddr, 0x01, &bmsr); // 读取寄存器1 (BMSR)
    phyRead(phyAddr, 0x11, &phyReg); // 读取PHY特定状态寄存器
    if (bmsr & 0x0004) {
         // 链路已建立
    } else {
         // 检查自动协商结果(寄存器18/27)
    }


    • 若链路未激活,强制设置速率/双工模式测试:
      phyWrite(phyAddr, 0x00, 0x2100); // 100M全双工,禁用自动协商




3. 芯片与生产问题




  • Silicon Errata核对



    • 查阅LPC1768最新errata(如Rev 4.2),确认是否存在影响LAN的BUG。

    • 例:部分批次可能存在RMII时钟抖动超限,需在初始化中使能额外滤波:
      LPC_SC->EMACCLKDIV |= 0x02; // 增加时钟分频降低抖动




  • 生产工艺检查



    • X光检测PHY和LPC1768的BGA焊接,确认无球栅虚焊(重点关注RMII信号引脚)。

    • 使用飞针测试仪验证PCB阻抗:RMII差分阻抗应为50Ω±10%,单端信号阻抗≤70Ω。




4. 替代方案验证



  • 硬件降级测试

    • 将旧板PHY芯片移植到新PCB,若功能恢复,则问题锁定在新PHY或外围电路。


  • 软件回滚

    • 使用旧版SDK(如LPCopen 3.0)编译测试,确认是否新版驱动存在兼容性问题。



5. 关键信号测量点



























测试点 预期值 工具
PHY的REF_CLK引脚 50MHz ±100ppm,1.8Vpp 高频示波器
LPC1768的P1.25 (RMII_CRS) 高电平3.3V(链路激活时) 逻辑分析仪
PHY的nRST引脚 上电后>10ms低脉冲 带存储示波器

下一步行动建议:  



  1. 优先执行PHY寄存器读取测试,快速区分硬件/软件故障。  

  2. 若PHY无响应,重点排查MDIO/MDC信号完整性和电源。  

  3. 若PHY响应正常但无链路,检查RJ45连接器差分对匹配和变压器中心抽头偏置。  


请将测试结果反馈,以便进一步缩小问题范围。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分