STM32
直播中

戚歆敦

8年用户 1067经验值
私信 关注
[问答]

stm32f767zi以太网无法接收的原因?

运行一段时间后,进入中断ETH DMA Error,四个接收描述符的DESC0的位31全为0,无法接收,有什么恢复机制。
(位31的描述->位 31 OWN :所有关系位 (Own bit)该位置 1 时,指示描述符由 MAC 子系统的 DMA 所拥有。该位复位时,指示描述符由主机所拥有。DMA 在帧接收完成或此描述符的关联缓冲区已满时将该位清零。)

回帖(1)

刘超

2024-5-22 17:43:59
STM32F767ZI以太网无法接收的原因可能有以下几点:

1. 硬件连接问题:请检查以太网线、RJ45接口和PHY芯片是否连接正确,以及是否有损坏。

2. PHY芯片配置问题:确保PHY芯片已正确配置,包括工作模式、速率、双工等。

3. DMA配置问题:检查DMA配置是否正确,包括通道、优先级、传输方向等。

4. 描述符配置问题:确保描述符已正确配置,包括缓冲区地址、大小、所有权等。

5. 中断配置问题:检查中断配置是否正确,包括优先级、触发条件等。

关于ETH DMA Error中断和描述符DESC0的位31全为0的问题,可以尝试以下解决方案:

1. 检查代码中是否有错误处理机制,例如在ETH DMA Error中断处理函数中,尝试重新配置描述符和DMA,然后清除错误标志并重新启动DMA。

2. 确保描述符的所有权位(位31)在初始化时设置为1,表示描述符由DMA拥有。在DMA传输完成后,所有权位会自动清零,表示描述符由主机拥有。

3. 在ETH DMA Error中断处理函数中,检查错误类型,例如溢出、缓冲区错误等,并根据错误类型采取相应的恢复措施。

4. 如果问题仍然存在,可以尝试更新STM32F767ZI的固件库和以太网驱动,以确保使用的是最新和最稳定的版本。

5. 如果以上方法都无法解决问题,可以考虑寻求STM32技术支持或社区帮助,以便更深入地分析问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分