(协议栈修改的helloword UDP,在开发板上运行正常,图片显示有问题的话,可以查附件2843.C6678与88E1512调试问题.docx)
1-TMS320C6678与88e1512(以下统一称为PHY)通过SGMII接口进行连接,硬件回路上使用0.1uf电容进行AC耦合;
2-MDIO和MDC接口连接PHY芯片,通过读取寄存器和写入寄存器,能够确定MDIO接口工作正常,PHY芯片可以进行配置,且通过软复位之后,再次读取寄存器值证明写入成功;
3-PHY的MDI引脚通过0.1uF电容与PC端的网口连接,直接上电后能够显示PHY与PC端完成link up,且使用88e1512自带的packet generator(通过MDIO设置PHY寄存器)可以验证PHY发送出来的数据PC端是能够接受到的;
4-DSP启动过程如下:系统时钟初始化(初始化成功,能够测试到sysclkout输出166MHz);使能电源域MyPowerUpDomains();初始化Serdes(我的输入时钟是125M,故设置值为0x000000A1),可以看到是初始化成功了;
Shine:
请问用的是NDK里的helloworld例程吗?NDK里用的是网口1,您用网口0的话,需要做修改,具体请参考下面的wiki网站上的例子。
processors.wiki.ti.com/…/NDK,_PA_Resource_Wiki_for_Keystone_Devices
,
user6257143:
谢谢您的回复,网口已经做了修改,我再学习一下您的链接。
,
user6257143:
在SGMII初始化的过程中,macPortNum设置为0,进行了初始化。还有其他地方需要修改么?
if (macPortNum == 0) {/* Hold the port in soft reset and set up* the SGMII control register:*(1) Disable Master Mode*(2) Enable Auto-negotiation*/CSL_SGMII_startRxTxSoftReset (macPortNum);CSL_SGMII_disableLoopback (macPortNum);//LSL 2020.05.31 新添加CSL_SGMII_disableMasterMode (macPortNum);CSL_SGMII_enableAutoNegotiation (macPortNum);CSL_SGMII_endRxTxSoftReset (macPortNum);
/* Setup the Advertised Ability register for this port:*(1) Enable Full duplex mode*(2) Enable Auto Negotiation*(3) Enable the Link*/sgmiiCfg.linkSpeed=CSL_SGMII_100_MBPS;//100BASE-TXsgmiiCfg.duplexMode=CSL_SGMII_FULL_DUPLEX;sgmiiCfg.bLinkUp=1;CSL_SGMII_setAdvAbility (macPortNum, &sgmiiCfg);
do{CSL_SGMII_getStatus(macPortNum, &sgmiiStatus);} while (sgmiiStatus.bIsLinkUp != 1);
do{CSL_SGMII_getStatus(macPortNum, &sgmiiStatus);if (sgmiiStatus.bIsAutoNegError != 0)return; /* This is an error condition */} while (sgmiiStatus.bIsAutoNegComplete != 1);}
,
Shine:
有用wiki网站上给的例程吗?
,
user5006404:
您好,我也遇到运行Helloworld例程后,无法PC ping通DSP的问题,请问您最终是如何解决的呢?非常感谢!
,
user6257143:
官方程序对应的是EMAC0,你确认下你用的是0还是1?得重新编译一下底层,方法看官方有说明。