完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,能否提供一下帮助:
我想启用 PHY 中断,仅用于指示链接开通(自动协商完成)和链接断开事件。我在 LM3S6100 上成功实现了这一点,但在 LM3S9790 上却没有。在 LM3S9790上,PHY 中断从来就没有被触发过。我是按照下列方式初始化 EMAC 的: EthernetintEnable(ETH_BASE, ETH_INT_PHY | ETH_INT_RX); EthernetPHYWrite(ETH_BASE, PHY_MR30, PHY_MR30_LDIM | PHY_MR30_ANCOMPIM); 在 ISR 中,我的程序是这样: ... if(estat & ETH_INT_PHY) [ DWORD phystat=EthnernetPHYRead(ETH_BASE, PHY_MR29); if(phystat & PHY_MR29_LDIS) [ ...link is off ] if(phystat & PHY_MR29_ANCOMPIS) [ ...link is on ] ] 在程序运行的时候,以太网端口能够接收到数据包,但我从未收到过来自 PHY 的中断。有趣的是,类似的代码在 LM3S6100 上运行时一切正常(唯一的区别是,我在 6100 上处理的是 MR17,而非 MR29 和 MR30)。 这个代码有什么问题吗? |
|
相关推荐
1 个讨论
|
|
我想您应该知道,在设备复位后,在初始化以太网控制器以开始运行之前,需要延迟来确保以太网 PLL 生效以及以太网的时钟完成同步。我可以在某种程度上再现您的问题。此外,我也可以在自动协商完成时获得 PHY 中断。
我给您的建议是,在初始化以太网控制器前添加一点延迟(比如 1 秒钟)。从实施的角度而言,您可进行如下操作: // // 启用所有的处理器中断。 // IntMasterEnable(); // //添加延迟 // SysCtlDelay(SysCtlClockGet()/3); // // 初始化以太网控制器以进行运行。 // EthernetInitExpClk(ETH_BASE, SysCtlClockGet()); 看看有没有效果。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
869 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
2055 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3792 浏览 4 评论
5150 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1843 浏览 1 评论
CC3100BOOST使用CC3200lunchXL进行烧录
837浏览 2评论
74浏览 2评论
83浏览 2评论
72浏览 2评论
102浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 14:44 , Processed in 0.698787 second(s), Total 61, Slave 50 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号