OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 106|回复: 5

usb mass storage 复制文件速率

[复制链接]

75

主题

335

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2015-5-28
在线时间
144 小时
发表于 前天 13:54 | 显示全部楼层 |阅读模式
200金钱
我用h750,用qspi 连接的64Mbit flash,做了一个usb mass storage ,复制文件时速率是177KB/s,拖一个4M 的文件需要1分多钟,这个时间正常吗?不正常的话最快可以到多少?

最近爱上了stm32
回复

使用道具 举报

75

主题

335

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2015-5-28
在线时间
144 小时
 楼主| 发表于 前天 14:46 | 显示全部楼层
有人嘛
回复

使用道具 举报

0

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2026-1-29
在线时间
13 小时
发表于 前天 14:54 | 显示全部楼层
177KB/s速率不正常,基于 STM32H750 + 64Mbit QSPI Flash 实现 USB Mass Storage,复制4MB文件需1分钟以上,该速率远低于正常水平。结合硬件特性及典型场景分析,具体原因及优化方向如下:

一、当前速率是否正常?
异常判断
理论速率差距较大:STM32H750的QSPI接口在四线模式下理论带宽可达数十Mbps14。即使考虑协议开销和Flash响应延迟,实测速率也应远高于177KB/s。
硬件限制可能性低:64Mbit Flash(如W25Q系列)支持高速四线模式,且H750的QSPI控制器支持DMA传输,硬件瓶颈不明显13。
软件配置问题突出:可能是QSPI初始化参数(如时钟分频、指令模式)未优化,或USB协议栈与文件系统存在效率问题24。
二、如何提升速率至合理范围?
优化QSPI配置

启用四线模式(QIO):通过发送0x35指令使能Flash的QE位,并配置InstructionMode为QSPI_INSTRUCTION_1_LINE,DataMode为QSPI_DATA_4_LINES4。
调整时钟频率:将QSPI时钟分频设置为最低值(如H750主频300MHz时,分频系数设为2,即150MHz),同时增加DummyCycles以匹配Flash时序14。
使用DMA传输:通过HAL_QSPI_Receive_DMA()替代阻塞式接收,减少CPU干预3。
改进USB Mass Storage实现

增大Bulk端点缓冲区:默认端点大小可能限制传输效率,可尝试修改为512字节或更大3。
优化文件系统逻辑:避免频繁的小数据块操作,合并读写请求以减少协议开销2。
其他关键优化项

启用XIP模式:若仅用于程序执行,可将代码直接运行于QSPI Flash,释放内部RAM资源12。
验证硬件连接:检查PCB走线阻抗匹配、去耦电容布局,避免信号完整性问题导致降速1。
三、最快能达到的理论速率
参考案例
类似项目中,STM32H7系列通过优化QSPI配置可实现约1.2MB/s的持续读取速度34。
总之,177KB/s的速率显著偏低,主要症结在于QSPI配置未达最优。通过启用四线模式、调整时钟参数、启用DMA传输,并优化USB协议栈,有望将速率提升至接近理论上限。
回复

使用道具 举报

75

主题

335

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2015-5-28
在线时间
144 小时
 楼主| 发表于 前天 15:15 | 显示全部楼层
664929323 发表于 2026-4-7 14:54
177KB/s速率不正常,基于 STM32H750 + 64Mbit QSPI Flash 实现 USB Mass Storage,复制4MB文件需1分钟以上 ...

我问ai,说擦除flash 4kb就需要45ms,所以这个速度是正常的?
最近爱上了stm32
回复

使用道具 举报

0

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2026-1-29
在线时间
13 小时
发表于 前天 18:13 | 显示全部楼层
带我足够强大 发表于 2026-4-7 15:15
我问ai,说擦除flash 4kb就需要45ms,所以这个速度是正常的?

擦除Flash的4KB扇区耗时45ms属于正常范围,这与NOR Flash的物理特性和工作机制密切相关。以下是具体分析:
擦除时间的物理限制
高压放电过程:Flash擦除的本质是通过施加高压(通常为12V~20V)将浮栅晶体管中的电荷释放,此过程需要较长的稳定时间。
擦除单位约束:NOR Flash的最小擦除单位是扇区(常见4KB),即使仅修改单个字节,也必须整扇区擦除。
典型擦除时间对比
不同型号差异:以W25Q系列为例,4KB扇区擦除时间的典型值为45ms。
总的来说,45ms的擦除时间符合常规NOR Flash的性能表现。若需进一步优化系统性能,可优先从减少擦除频率入手,而非单纯追求单次擦除速度。
回复

使用道具 举报

69

主题

6719

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13468
金钱
13468
注册时间
2012-11-26
在线时间
3851 小时
发表于 昨天 20:59 | 显示全部楼层
还行吧  USB2.0差不多就这速度了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-4-9 13:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表