打印
[其它]

AT32F437VMT7使用LAN8742A,DMA复位不成功

[复制链接]
881|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mzm55185|  楼主 | 2022-5-21 15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mzm55185 于 2022-5-21 15:18 编辑

error_status emac_layer2_configuration(void)
{
  emac_dma_config_type dma_control_para;
  crm_periph_clock_enable(CRM_SCFG_PERIPH_CLOCK, TRUE);
  scfg_emac_interface_set(SCFG_EMAC_SELECT_RMII);
  crm_clock_out1_set(CRM_CLKOUT1_PLL);
  crm_clkout_div_set(CRM_CLKOUT_INDEX_1, CRM_CLKOUT_DIV1_5, CRM_CLKOUT_DIV2_2);

  /* reset phy */
  reset_phy();
  /* reset emac ahb bus */
  emac_reset();

  /* software reset emac dma */
  emac_dma_software_reset_set();

  while(emac_dma_software_reset_get() == SET);

运行到这里就一直卡在 EMAC_DMA->bm_bit.swr = SET;

是直接使用例程来做的
脚位也做了修改。时钟是250M

emac_system_init没有做修改。
error_status emac_system_init(void)
{
  error_status status;

  emac_nvic_configuration();

  /* emac periph clock enable */
  crm_periph_clock_enable(CRM_EMAC_PERIPH_CLOCK, TRUE);
  crm_periph_clock_enable(CRM_EMACTX_PERIPH_CLOCK, TRUE);
  crm_periph_clock_enable(CRM_EMACRX_PERIPH_CLOCK, TRUE);

  emac_pins_configuration();
  status = emac_layer2_configuration();
  emac_tmr_init();

  return status;
}


reset_phy里的内容我注掉了,因为这颗ic是跟着437一起复位,没有给复位引脚



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝