mzm55185 发表于 2022-5-21 15:15

AT32F437VMT7使用LAN8742A,DMA复位不成功

本帖最后由 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一起复位,没有给复位引脚



页: [1]
查看完整版本: AT32F437VMT7使用LAN8742A,DMA复位不成功