ST意法半导体
直播中

王鑫

7年用户 1145经验值
私信 关注
[问答]

为什么ETH DMAMR->SWR(软件复位位)仍然是ALWAYS SET?

你好 ,
我有 STM32H750x MCU。
我想知道为什么 ETH DMAMR->SWR(软件复位位)仍然是 ALWAYS SET?
我知道甚至 HAL 驱动程序也在尝试对 ETH DMA 和 MAC 进行软件重置。我知道我应该为 HCLK 启用一个稳定的时钟。我还打开了 ETH 接口的时钟,ETH 的 CLOCK 设置已被调用,使用
__HAL_RCC_ETH1MAC_CLK_ENABLE();
__HAL_RCC_ETH1TX_CLK_ENABLE();
__HAL_RCC_ETH1RX_CLK_ENABLE();
命令已设置,所有 RMII GPIO 也已设置,在 SYSCFG 寄存器中已选择 RMII 接口,SWR 位仍已设置,如果我执行以下操作,我唯一可以清除它的是:
  __HAL_RCC_ETH1MAC_FORCE_RESET();
但在此之后我必须再次使用
  __HAL_RCC_ETH1MAC_RELEASE_RESET();
命令,但 SWR 位仍然立即切换回 SET 状态,这就是为什么 ETH DMA 不开始工作的原因。
我如何调试或检查为什么 SWR 位总是 ON?
谢谢,彼得









回帖(1)

李秀梅

2023-1-4 12:18:21
其实这也是我的感觉,正在调查中。但到目前为止,我认为会有错误的硬件配置。ETH PHY 芯片 (SMSC LAN8742A) 的 LED2/nINTSEL 引脚未正确连接,并且 ETH PHY 未配置为启用 REF CLOCK,而是配置为中断模式。即使我的 RJ45 连接器上的绿色 LED 一直亮着,即使没有插入 LAN 电缆。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分