This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678通过SGMII接口与88e1512连接,link能够建立,EMAC也能完成初始化,但网络无法数据通信和ping



(协议栈修改的helloword UDP,在开发板上运行正常,图片显示有问题的话,可以查附件2843.C6678与88E1512调试问题.docx) 

1-TMS320C667888e1512(以下统一称为PHY)通过SGMII接口进行连接,硬件回路上使用0.1uf电容进行AC耦合;

2-MDIOMDC接口连接PHY芯片,通过读取寄存器和写入寄存器,能够确定MDIO接口工作正常,PHY芯片可以进行配置,且通过软复位之后,再次读取寄存器值证明写入成功;

3-PHYMDI引脚通过0.1uF电容与PC端的网口连接,直接上电后能够显示PHYPC端完成link up,且使用88e1512自带的packet generator(通过MDIO设置PHY寄存器)可以验证PHY发送出来的数据PC端是能够接受到的;

4-DSP启动过程如下:系统时钟初始化(初始化成功,能够测试到sysclkout输出166MHz);使能电源域MyPowerUpDomains();初始化Serdes(我的输入时钟是125M,故设置值为0x000000A1),可以看到是初始化成功了;

然后初始化MDIO,通过寄存器读取和抓取DSPMDIO引脚上的输出电平,能够看到初始化成功了;
初始化MDIO后,开始配置PHY寄存器,配置内容如下:
 
配置PHYSGMII to copper模式,并通过软件复位使能该配置(我使用uiRegValue直接赋值的原因是我使用官方的Get_Reg函数读取出来的值全部为0,但抓取gpMDIO_regs是能够读到寄存器值的,这个原因不详,所以只能直接赋值进行配置了);
后边的配置主要包括屏蔽PHY的半双工模式(9_0)、配置速率为百兆(21_2),自协商还是使能着的,然后复位page进行使能;
 
紧接着使能SGMII0),这个里面速率设置为100Mbps,全双工,能够看到自协商和linkup都通过了。
 
最后开始启动协议栈。
 
5-整个程序在官方开发板运行正常,除了PHY芯片的配置是额外添加的,Serdes时钟和SGMII接口有变化,其他均未改动;官方开发板运行的结果,ping能够通,数据收发也没有问题;但程序在自己的板子上能够看到MAC建立起来(官方开发板和自己的板子运行结果均如下),IP也添加,但就是无法数据收发和ping。程序启动起来后,DSP读取PHYLINK_REGALIVE_REGLINK_INT_RAW_REGLINK_MASKED_REG均为1
 
请各位大佬拨冗指导一下。