STM32F7/H7系列PHY芯片LINK UP,但是无法通信的一种情况

现象描述:

在STM32F7/H7系列编写PHY芯片驱动,读取寄存器得知PHY已经处于LINK UP状态,确认网口电路没问题的情况下,电脑ping不通单片机,调试模式下观察DMARxDscrTab内容没有变化。

解决方案:

使能ICache和DCache,打开MPU,将PHY DMA所用内存如下配置:

void MPU_Config(void)
{
  MPU_Region_InitTypeDef MPU_InitStruct;

  /* Disable the MPU */
  HAL_MPU_Disable(); 
 /* Configure the MPU attributes as Device not cacheable
     for ETH DMA descriptors */   
  MPU_InitStruct.Enable=MPU_REGION_ENABLE;
  MPU_InitStruct.BaseAddress=0x30000000;  //ETH DMA描述符基地址
  MPU_InitStruct.Size=MPU_REGION_SIZE_16KB; //ETH DMA描述符占用内存大小
  MPU_InitStruct.AccessPermission=MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.IsBufferable=MPU_ACCESS_BUFFERABLE;
  MPU_InitStruct.IsCacheable=MPU_ACCESS_NOT_CACHEABLE;
  MPU_InitStruct.IsShareable=MPU_ACCESS_SHAREABLE;
  MPU_InitStruct.Number=MPU_REGION_NUMBER5;
  MPU_InitStruct.TypeExtField=MPU_TEX_LEVEL0;
  MPU_InitStruct.SubRegionDisable=0x00;
  MPU_InitStruct.DisableExec=MPU_INSTRUCTION_ACCESS_ENABLE;
  HAL_MPU_ConfigRegion(&MPU_InitStruct); 
  HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);

}

PHY即可正常工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值