CH579 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字节对齐问题


只有登录才能回复,可以选择微信账号登录