完善资料让更多小伙伴认识你,还能领取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()); 看看有没有效果。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 13:46 , Processed in 0.828767 second(s), Total 58, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1692