呈兴 发表于 2023-5-26 22:05

HC32F4A0 以太网调试问题(测试发现各种逻辑问题)

表现为发送过程中,发送DMA逻辑假死1:明明已经屏蔽了巨型帧接收,但是总是会收到巨型帧2:一段时间后就会出现接收上溢出,然后无法接收数据,怎么都不接收,表现为内部DMA逻辑假死,比如停在 运行中,正在获取接收传输描述符或者 运行中,正在关闭接收描述符 老是收到巨型帧,根本没法屏蔽,然后就是假死 可以通过DMASTSR寄存器观察到, RSTS 要么=1 运行中,正在获取接收描述符要么就是5 运行中,正在关闭接收描述符,由于无法获取到接收描述符(可以确定接收描述符都是正常的,就算不正常,也应该马上进入 停止状态)

呈兴 发表于 2023-5-26 22:18

最后就会导致 接收下溢出,不停的下溢出,而且通过观察溢出计数器,发现,溢出计数器会是不是复位

呈兴 发表于 2023-5-26 22:20

拔掉网线后,溢出计数器不再变化,就是接收过程容易卡在获取描述符或 关闭描述符这2个内部逻辑上

呈兴 发表于 2023-5-26 22:21

翻了一下STM32F4系列的以太网,发现一个细节,要求AHB时钟必须在25MHz以上,然后我记得之前用SDIO也出现过芯片逻辑错误,仔细寻找手册,发现是PCLK1必须为HCLK的 1/2 ,同时测试发现必须将ECLK 设置为HCLK 1/2才正常的,然后尝试提高主频到100MHz,PCLK1=50MHz 2个问题就都没了;

呈兴 发表于 2023-5-26 22:21

ETH时钟由PCLK1提供的

呈兴 发表于 2023-5-26 22:22

稳定接收了很长时间了,也没有巨帧,是时钟给低了,内部同步问题,刚刚给了64MHZ 32MHz是不行的,RMII接口时钟是50MHz, 32MH不够,由于使用了SDIO 或以太网 意味着HCLK必须大于PCLK1,所以使用RMII接口以太网,HCLK至少工作在100MHz, 然后2分频,给PCLK1 提供50MHz。
————————————————

呈兴 发表于 2023-5-26 22:26

折腾了一天,接收问题算是解决了,然后今天又遇到发送问题;

呈兴 发表于 2023-5-26 22:27

通过这两天的测试,发现如果只开启接收,那么时钟最少是100MHz,PCLK1 50MHz,但是如果开启了发送,则依旧会出现内部逻辑问题,表现为发送几条后,出现发送下溢出,然后发送逻辑卡在 发送运行中,正在等待状态 也就是TSTS=2;将时钟提高到120MHz PCLK1:60MHz后即可解决,也就是开启以太网后,HCLK必须大于100MHz,PCLK1必须大于50MHz,不能等,是大于;

呈兴 发表于 2023-5-26 22:28

总结一下:使用HC32F4A0以太网,PCLK1时钟必须大于50MHz,否则会出现各种硬件逻辑故障;

小安博 发表于 2023-8-19 09:27

大佬,能给个参考代码? 刚刚使用小华,想开一个ETH的中断,监控一下接受和发送;

zhaoxqi 发表于 2023-8-22 23:34

接收描述符正常?

liupengfeihit 发表于 2025-1-4 19:44

我最近做这个也遇到这个问题,但是调整时钟频率也没有解决问题啊。大神们怎么解决的呀?

地瓜patch 发表于 2025-1-21 21:32

从官网找例程,从开发板找例程

申小林一号 发表于 2025-1-22 08:52

学习一下技术支持。

sj8zw8 发表于 2025-1-31 11:43

一段时间后就会出现接收上溢出
页: [1]
查看完整版本: HC32F4A0 以太网调试问题(测试发现各种逻辑问题)