打印
[方案相关]

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

[复制链接]
980|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
呈兴|  楼主 | 2023-5-26 22:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

表现为发送过程中,发送DMA逻辑假死

1:明明已经屏蔽了巨型帧接收,但是总是会收到巨型帧2:一段时间后就会出现接收上溢出,然后无法接收数据,怎么都不接收,表现为内部DMA逻辑假死,比如停在 运行中,正在获取接收传输描述符  或者 运行中,正在关闭接收描述符

老是收到巨型帧,根本没法屏蔽,然后就是假死 可以通过DMASTSR寄存器观察到, RSTS 要么=1 运行中,正在获取接收描述符  要么就是5 运行中,正在关闭接收描述符,由于无法获取到接收描述符(可以确定接收描述符都是正常的,就算不正常,也应该马上进入 停止状态)


使用特权

评论回复
评论
呈兴 2023-5-26 22:22 回复TA
版权声明:本文为CSDN博主「cp1300」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/cp1300/article/details/125945732 
沙发
呈兴|  楼主 | 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个问题就都没了;

使用特权

评论回复
5
呈兴|  楼主 | 2023-5-26 22:21 | 只看该作者
ETH时钟由PCLK1提供的

使用特权

评论回复
6
呈兴|  楼主 | 2023-5-26 22:22 | 只看该作者
稳定接收了很长时间了,也没有巨帧,是时钟给低了,内部同步问题,刚刚给了64MHZ 32MHz是不行的,RMII接口时钟是50MHz, 32MH不够,由于使用了SDIO 或以太网 意味着HCLK必须大于PCLK1,所以使用RMII接口以太网,HCLK至少工作在100MHz, 然后2分频,给PCLK1 提供50MHz。
————————————————

使用特权

评论回复
7
呈兴|  楼主 | 2023-5-26 22:26 | 只看该作者
折腾了一天,接收问题算是解决了,然后今天又遇到发送问题;

使用特权

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

使用特权

评论回复
9
呈兴|  楼主 | 2023-5-26 22:28 | 只看该作者
总结一下:使用HC32F4A0以太网,PCLK1时钟必须大于50MHz,否则会出现各种硬件逻辑故障;

使用特权

评论回复
10
小安博| | 2023-8-19 09:27 | 只看该作者
大佬,能给个参考代码? 刚刚使用小华,想开一个ETH的中断,监控一下接受和发送;  

使用特权

评论回复
11
zhaoxqi| | 2023-8-22 23:34 | 只看该作者
接收描述符正常?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

144

帖子

0

粉丝