1.软件复位不成功问题。
????????原因是PA1没有输入时钟。
sr8201f 默认TXC 时钟输出50M 接MCU的 PA1,可以不用外部50M晶振。如果要使用需要CLK_CTL拉高。
2.ping不通。
????????原因是stm eth库 判断速度寄存器问题。
#define PHY_SR ((uint16_t)PHY_BCR) /*!< PHY status register Offset */
#define PHY_SPEED_STATUS ((uint16_t)0x2000) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0100) /*!< PHY Duplex mask
sr8201f PHY_SR用的是BCR 0x00 寄存器,速度Bit 13位 0x2000,=1是100M, =0是10M.但是库函数 ETH_Init()判断是反的。
/* Configure the MAC with the speed fixed by the auto-negotiation process */
if(RegValue & PHY_SPEED_STATUS)
{
/* Set Ethernet speed to 10M following the auto-negotiation */
ETH_InitStruct->ETH_Speed = ETH_Speed_10M;
}
else
{
/* Set Ethernet speed to 100M following the auto-negotiation */
ETH_InitStruct->ETH_Speed = ETH_Speed_100M;
}
修改判断条件或者交换if else即可。
|