1. 复旦微FMQL45T900平台RGMII网口调试实战
最近接手了一个复旦微FMQL45T900平台的开发板调试任务,其中RGMII网口的调试过程可谓是一波三折。作为一名嵌入式开发老手,我本以为这种常规接口调试应该手到擒来,没想到在实际操作中遇到了不少坑。特别是PHY芯片寄存器读取异常的问题,让我折腾了好几天。今天就把这个调试过程完整记录下来,希望能帮到遇到类似问题的朋友。
FMQL45T900是复旦微电子推出的一款高性能SoC平台,集成了丰富的接口资源。RGMII(Reduced Gigabit Media Independent Interface)是其中常用的千兆网口接口标准,相比GMII接口可以减少引脚数量。在本次调试中,我们使用的是YT8521物理层芯片,搭配新思科技的designware.c驱动模块。这个驱动模块我之前在飞腾FT2004平台上用过,本以为会很顺利,结果却遇到了PHY寄存器读取全为0xffff的诡异现象。
2. PHY寄存器读取异常问题分析
2.1 问题现象描述
当我开始调试网口驱动时,发现通过MDIO接口读取PHY芯片的寄存器时,返回的值全是0xffff。这显然不正常,因为正常情况下应该能读到PHY芯片的厂商ID、版本号等基本信息。使用示波器抓取MDC/MDIO信号波形时,发现PHY芯片确实有响应信号,但软件层面就是读不到正确的寄存器值。
调试过程中打印的日志如下:
dw_mdio_read, miiaddr = 0x880, addr = 1, data = 0xffff , &miidata = 0xe0047014
dw_mdio_read, miiaddr = 0x8c0, addr = 1, data = 0xffff , &miidata = 0xe0047014
这种全ff的返回值通常意味着通信失败,可能是硬件连接问题,也可能是配置错误。
2.2 电压配置排查
用示波器测量MDC/MDIO信号时,发现实际电压只有1.8V,而根据硬件设计,这两个引脚
262




被折叠的 条评论
为什么被折叠?



