完善资料让更多小伙伴认识你,还能领取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()); 看看有没有效果。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
326 浏览 1 评论
524 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
767 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
645 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1120 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
22浏览 29评论
59浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
242浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
193浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
52浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 19:14 , Processed in 0.990633 second(s), Total 61, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号