STM32
直播中

陈光琦

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

STM32CUBE ETH->DMABMR一直不为0x000的可能原因是什么呢?

用的F407+rtl8201F芯片(网口芯片又晶振输入25M)
调用官方库文件一直卡在下方代码这,ETH->DMABMR一直不为0x000
while (ETH_GetSoftwareResetStatus() == SET);
我的ETH_MII_RX_CLK;ETH_MII_TX_CLK引脚均无25M频率,因为听别人说可以不接这两引脚
请问一下:ETH->DMABMR一直不为0x000的可能原因是什么呢?ETH_MII_RX_CLK;ETH_MII_TX_CLK需要接25M吗?

回帖(1)

微风挽雨

2024-5-20 17:30:19
ETH->DMABMR一直不为0x000的可能原因有以下几点:

1. 时钟配置问题:确保STM32F407的时钟配置正确,特别是与ETH相关的时钟。检查RCC配置,确保ETH时钟已正确配置。

2. PHY芯片问题:检查RTL8201F芯片是否正常工作。确保25MHz晶振已正确连接到PHY芯片的XTAL1和XTAL2引脚。

3. 引脚配置问题:确保STM32F407的ETH相关引脚(如ETH_MII_RX_CLK、ETH_MII_TX_CLK等)已正确配置为复用功能。

4. 驱动问题:检查官方库文件是否适用于您的硬件配置。如果可能,请尝试使用其他库文件或驱动程序。

5. 软件问题:检查您的代码逻辑,确保在调用ETH_GetSoftwareResetStatus()之前,已正确初始化ETH和DMA。

关于ETH_MII_RX_CLK和ETH_MII_TX_CLK引脚,通常情况下,这两个引脚需要连接到25MHz的晶振。这是因为ETH接口需要一个时钟信号来同步数据传输。然而,在某些情况下,如果PHY芯片可以自动检测时钟频率,那么可能不需要手动连接这两个引脚。建议您查阅RTL8201F的数据手册,了解其时钟配置要求。

总之,要解决ETH->DMABMR不为0x000的问题,您需要检查时钟配置、PHY芯片、引脚配置、驱动程序和代码逻辑。同时,确保ETH_MII_RX_CLK和ETH_MII_TX_CLK引脚正确连接到25MHz晶振,除非您的PHY芯片可以自动检测时钟频率。
举报

更多回帖

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