STM32H7+USB3300+SD作为U盘速度慢的问题

        如题,在此我使用的是微雪电子的H7开发板(没办法,淘宝上能找到的USB3300模块就这一家,自然就使用了他家的开发板)。烧录了他家自带的USB_HS Device_MSC例程后进行测试,速度慢得离谱,如下图:

         这个速度基本和FS差不多,关于这个我也和微雪的技术进行了沟通,他给我的答复是测试环境好的话只能达到24bps。我心里瞬间就卧槽了,这和微雪课堂上所说的加上外部PYH能达到480bps说辞完全不一样啊。问行不通,那就自己调试了。(以下仅作为参考,应用到自己的项目上还是要自己多研究哦,尤其是我开启了Cache,项目中如果使用了DMA就要当心了)


需要配置的东西很简单,首先是USB_OTG_HS,把所需GPIO的速度都设为Very High 


然后增大USB_DEVICE的缓存(很重要) 


 Cache使能(暂时不明白为什么不打开这个,插上电脑就不显示U盘设备)


 代码部分就是把usbd_storage_if里面的几个接口填充一下(若要使用DMA一定要注意内存数据的完整性问题)


编译,烧录,USB接上电脑,可以发现速度直接起飞!

 


         以上若有问题或是不足之处,欢迎指正。

        关于我留下的Cache的那个疑问(暂时不明白为什么不打开这个,插上电脑就不显示U盘设备),也希望大佬看到了能给小弟指导一番!

STM32H7系列微控制器搭配USB3300组件,可以构成一款高效的USB3.0读卡器。下面简要介绍如何实现这样的系统及其基本原理: ### 系统组成 1. **STM32H7微控制器**:提供核心处理器功能及内部RAM、GPIO、定时器等资源。 2. **USB3300组件**:负责USB3.0接口的物理层和链路层,允许与外部USB设备通讯。 3. **读卡模块**:用于读取各类存储卡(如SD卡、CF卡等)。常见的读卡模块会支持多个卡插槽,支持不同类型的存储卡。 ### 实现步骤 1. **初始化USB3300组件**:设置USB3300的工作模式为主机模式,准备接收来自主机(通常是电脑)的指令。 2. **配置STM32H7**:通过STM32的GPIO接口与USB3300进行数据交换,同时利用其内存空间存储从读卡模块读出的数据。 3. **读卡操作**:通过读卡模块读取插入的存储卡内的数据。此过程涉及到与特定存储卡标准的交互,例如SD/MMC协议。 4. **数据传输与处理**:使用STM32H7的CPU资源对读取到的数据进行必要的处理,如转换格式、错误校验等。 5. **通过USB发送数据**:将处理后的数据通过USB3300组件发送至主机(电脑或其他设备)供进一步处理。 ### 关键技术点 - **USB3.0协议理解**:深入理解USB3.0的电气规范、时序、数据包结构等,以便正确配置USB3300组件。 - **读卡模块驱动**:需设计驱动程序与读卡模块进行有效通信,了解其使用的存储卡标准协议细节。 - **电源管理**:考虑到USB3.0的功率需求较高,合理设计电源管理策略,保证系统的稳定运行。 ### 应用领域 此类系统广泛应用于便携式存储设备、摄影器材、专业音频设备等领域,满足高速传输的需求。 --- ## 相关问题: 1. 如何选择最适合项目的STM32H7型号? 2. 在设计读卡器系统时,如何优化USB3300组件与STM32H7间的数据流? 3. 设计读卡器时,应考虑哪些关键的安全性和可靠性因素?
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值