| 
 
| 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 的时钟是否异常。
 
 
 | 
 |