CH579的pdf中 关于网络的Link变化的寄存器只提到中断使能寄存器(R8_ETH_EIE),中断标志寄存器(R8_ETH_EIR),
RB_ETH_EIR_LINKIF RW1 Link 变化标志
只有link变化的中断标志寄存器、中断使能寄存器,却没有link状态的寄存器,link的状态怎么读取呢?
另外有没有不使用网络库的网络驱动例程呢?
CH579的pdf中 关于网络的Link变化的寄存器只提到中断使能寄存器(R8_ETH_EIE),中断标志寄存器(R8_ETH_EIR),
RB_ETH_EIR_LINKIF RW1 Link 变化标志
只有link变化的中断标志寄存器、中断使能寄存器,却没有link状态的寄存器,link的状态怎么读取呢?
另外有没有不使用网络库的网络驱动例程呢?
PHY寄存器相应说明暂时未对外开放,目前库驱动正在更新,后续会提供相应说明。目前读link状态提供了函数接口CH57x_GetPHYLinkStatus();
网络库的网络驱动例程您可以留个邮箱,我们这里提供给您。
UINT8 GetPhyLinkState(void)
{
UINT16 phy_reg = 0;
phy_reg = ReadPHYRegX(PHY_BMSR); //读取PHY状态寄存器
if(phy_reg&0x04)
{
//printf("link connect ok....\r\n");
return 1;
}
//printf("link disconnect ok....\r\n");
return 0;
}
static UINT16 ReadPHYRegX(UINT8 reg_add)
{
UINT8 reg_op=0;
UINT16 read_reg_val = 0xffff;
reg_op = reg_add&RB_ETH_MIREGADR_MIRDL;
R8_ETH_MIREGADR = RB_ETH_MIREGADR_MIIWR|reg_op;
read_reg_val = R16_ETH_MIRD;
return read_reg_val;
}
您好,您可以参考这段代码。
谢谢答复,请问PHY_BMSR 的值是多少呢? 还有 RB_ETH_MIREGADR_MIRDL 取 0x1f , RB_ETH_MIREGADR_MIIWR 取 0x20,这样定义对吗?
找到PHY_BMSR值了。PHY_BMSR = 0x01
请问有没有不使用网络库的关于网络初始化、网络接收、发送的例程呢?
您好,请留个邮箱获取CH579MAC层驱动,方便您不用网络库时参考移植。
好的,谢谢!
个人信息保护,已隐藏
已发送至邮箱,请查收。
你好,根据例程配置后,网络中断有收到数据,但收到的数据始终出现了偏移。只打印接收的数据,ARP包偏移了两个字节,MAC数据包的前两个字节收不到。
收到数据包长度是对的,但打印的数据显示,整体移了2个字节。开头的目标mac少了两个字节,结尾多两个字节。
找到问题了 4字节对齐问题