针对LPC1768FBD100的LAN连接问题,以下是分步解决方案:
PHY芯片与接口验证
TXD[0:1]、RXD[0:1]、CRS_DV、REF_CLK等关键信号。时钟与复位电路
PCB布局审查
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)链路状态诊断
// 检查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全双工,禁用自动协商Silicon Errata核对
LPC_SC->EMACCLKDIV |= 0x02; // 增加时钟分频降低抖动生产工艺检查
| 测试点 | 预期值 | 工具 |
|---|---|---|
| PHY的REF_CLK引脚 | 50MHz ±100ppm,1.8Vpp | 高频示波器 |
| LPC1768的P1.25 (RMII_CRS) | 高电平3.3V(链路激活时) | 逻辑分析仪 |
| PHY的nRST引脚 | 上电后>10ms低脉冲 | 带存储示波器 |
下一步行动建议:
请将测试结果反馈,以便进一步缩小问题范围。
举报
更多回帖