2024-06-14 07:10 PM
您好:
我现在使用的RTL8211E-VB的PHY芯片,,PHY芯片的数据手册中明确表示了,ETH_TX_CLK信号是需要由单片机产生。如下图所示:
而STM32H743VGT6单片机在HAL_ETH_Init函数中会在下面这段代码中返回错误:
/* Wait for software reset */
while (READ_BIT(heth->Instance->DMAMR, ETH_DMAMR_SWR) > 0U)
{
if (((HAL_GetTick() - tickstart) > ETH_SWRESET_TIMEOUT))
{
/* Set Error Code */
heth->ErrorCode = HAL_ETH_ERROR_TIMEOUT;
/* Set State as Error */
heth->gState = HAL_ETH_STATE_ERROR;
/* Return Error */
return HAL_ERROR;
}
}
我知道这个是因为STM32H743VGT6在等待PHY的时钟信号(RX_CLK与TX_CLK); 但是PHY芯片并不产生TX_CLK信号,因此导致错误ETH_DMAMR 寄存器的ETH_DMAMR_SWR位无法清零。
那么是不是意味这STM32H743VGT6无法适配RTL8211E-VB芯片接口?
如果可以:
1、 我该如何初始化以太网模块?避免返回错误?
2、建立以太网连接过程或者建立连接之后,STM32H743VGT6是否会自动产生TX_CLK信号?
盼复!
非常感谢!
2024-06-15 02:18 PM
Dear @GeQingSong ,
it seems a GRMII PHY not compatible with STM32H7 MCUs supporting only RMII or MII 10/100Mbits with 50MHz or 25MHz .
Cheers,
STOne-32