[AT32F407] AT32F407/437网口初始化卡在EMAC DMA软件复位问题

[复制链接]
1394|0
 楼主| jf101 发表于 2023-10-10 12:00 | 显示全部楼层 |阅读模式
AT32F407/437 在使用 EMAC 网口在初始化时,调用 emac_dma_software_reset_set();函数之后,程序会卡在 while(emac_dma_software_reset_get() == SET),应该怎样检查处理?

1. 程序会卡在 while(emac_dma_software_reset_get() == SET)的原因
当软件调用 emac_dma_software_reset_set();函数之后,控制器会复位所有的逻辑电路,在复位逻辑电
路时,需要有时钟提供,如果此时没有 PHY 提供的时钟,则会卡在此处。
2. 检查处理方法
对于 MII 模式,如果 TXCLK 和 RXCLK 没有时钟,则会卡住。
检查 TXCLK 和 RXCLK 是否正常:
 先检查 TXCLK 和 RXCLK 的连线是否正确。
 同时检查给 Ethernet PHY 提供的时钟是否正常,因为 TXCLK 和 RXCLK 是 Ehternet PHY 给 EMAC
的,如果给 Ethernet PHY 的时钟异常,则 TXCLK 和 RXCLK 也会异常。
对于 RMII 模式,如果 REF_CLK 没有时钟,则会卡住。
检查 REF_CLK 时钟是否异常:
 先检查 REF_CLK 接线是否正确。
 检查 REF_CLK 线上是否有时钟,同时检查给 Ethernet PHY 的时钟是否异常。

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

本版积分规则

262

主题

1929

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部