问答

汇集网友智慧,解决技术难题

21ic问答首页 - gd32a490能否单独使用enet外设中SMI(MDC/MDIO)访问外接PHY芯片

国产芯片 嵌入式 技术交流 2A 使用 芯片

gd32a490能否单独使用enet外设中SMI(MDC/MDIO)访问外接PHY芯片

hudou972025-07-05
本帖最后由 hudou97 于 2025-7-6 21:35 编辑

我在使用gd32a490过程中没有使用enet外设的MAC功能,只想使用enet外设中的SMI(MDC/MDIO)去访问PHY芯片。1.根据用户手册及官方提供的例程实现该功能,用logic分析仪测量MDC/MDIO pin状态发现无任何波形产生,且MDIO初始状态不对
2.我怀疑不能单独使用SMI
回答 +关注 1
2423人浏览 10人回答问题 分享 举报
10 个回答
  • 引脚复用冲突,确认MDC/MDIO引脚未被其他外设复用(如GPIO、SPI等)。检查引脚复用配置(如通过gpio_af_set()函数设置复用功能为ENET)。
  • 检查PHY芯片的电源、地是否正常,复位引脚是否有效。尝试更换PHY芯片或测试板卡,排除硬件故障。
  • MDC频率需在合理范围内(通常100kHz~2.5MHz),若分频系数过大或过小可能导致时钟无效
  • SMI接口未使能,确保在初始化代码中调用了enet_smi_enable()函数使能SMI接口。
  • 若通过逻辑分析仪测量MDC/MDIO引脚无波形,且MDIO初始状态不对,可能原因包括:ENET外设未正确初始化检查是否调用了rcu_periph_clock_enable(RCU_ENET)使能ENET外设时钟。确认ENET外设复位操作已执行(如调用enet_deinit())。
  • 需先初始化ENET外设时钟,再配置SMI接口参数(如预分频系数),最后使能SMI接口。
  • SMI接口的时钟(MDC)由ENET外设的时钟分频产生,需确保ENET外设时钟已使能且分频系数配置正确(例如,若ENET时钟为50MHz,分频系数设为50,则MDC频率为1MHz)。
  • 确保MDC(管理时钟)和MDIO(管理数据)引脚正确连接到PHY芯片的对应引脚,且上拉电阻配置正确(通常MDIO需上拉至3.3V,阻值4.7kΩ~10kΩ)。
  • GD32A490的ENET外设支持独立的SMI功能,用于配置和管理外部PHY芯片。根据用户手册和官方例程,SMI接口的初始化与MAC功能无关,可单独配置使用。
12下一页

您需要登录后才可以回复 登录 | 注册