Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
USB_RNDIS网卡
STM32
USB
STM32 USB高速USB端口加持4G联网
1.00
发布于 2022-07-07 16:21:22 浏览:4249
订阅该版
[tocm] # 1、前言 关于STM32F4USB驱动程序(FULL SPEED)目前是可以用,但是有很多问题,比如NAK的问题,导致U盘读写出错。USB底层驱动程序中进行OUT传输时必须增加一个1ms延时的问题。等等储多问题。本文高速USB的驱动程序参考了网友@sakumisu的文章:[基于 CherryUSB 调试 dwc2 usb host 笔记](https://club.rt-thread.org/ask/article/9c31ce71ead26c2b.html "基于 CherryUSB 调试 dwc2 usb host 笔记"),感谢他在USB方面做出的研究与调试。 # 2、STM32高速USB的调试 STM32高还USB可以使用内部DMA来进行USB的数据包的传输,会大增加USB通信的速度,同时可以解决使用FULL SPEED过程中遇到的各种问题,因此花时间来修改STM32F的USB驱动程序,把USB RNDIS设备驱动更换到高速USB接口,代码的修改的几个方面如下: 2.1. 使用高速USB接口要更换 USB的IO管脚, 大家所熟知的PA10, PA11只能用于全速USB,换成高速USB后要使用PB14, PB15管脚本,程序做如下初始化。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220707/06e8a6d332985934f7e00c023e0c458b.png.webp) 调试程序时,总想着这地方简单,不会搞错,结果USB驱动部分程序改好了后,怎么调试都无法进入USB中断,最后检查到这里是USB高速管脚配置成GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS导致的,修改这部分代码时没有查看手册,根据GPIO_AF10_OTG_FS的宏定义查看到有GPIO_AF10_OTG_HS定义,就直接改了导致的。看来总在小河沟里翻船呀,总以为这里简单,不会出错。结果因为IO的配置的问题已经遇到了2次了,上一次是调试SPI2驱动程序,修改IO看手册,看手册。 2.2 USB驱动程序的修改 USB驱动程序的修改,主要修改了操作系统设备驱动程序接口drv_usbh.c文件,在这个文件中对USB驱动使用全速USB与高速USB全部做了初始化,采用宏定义DRV_USBH_USE_HS来进行切换。此宏定义可以在rtconfig.h中增加,定义此宏表示使用高速USB,不定义使用全速USB。代码很多,请参考博客后面的git仓库链接。 STM32F低层USB驱动程序的改进,改进时兼容原来全速USB的功能。具体的改进点如下: 1、使用高速USB时,需要打开DMA设置。 2、使用高速USB时,需要关闭NAK中断,如果不关NAK中断会调程序调到你怀疑人生。 3、驱动程序使用高速USB端口,实际工作在全速的模式。 4、使用时注意硬件管脚的变化,可以直接采用跳线连接USB口到PB14, PB15上面。 # 3、代码仓库 上面所做的高速USB的驱动程序的优化已经上传到GIT仓库上面。参见版本标签V1.2 STM32 USB HOST驱动4G网卡 https://github.com/longtengmcu/USB-HOST-driver-4G-rndis-device # 4、性能提升 采用FTP下载文件并且写入到FLASH中的测试方式,下载一个310Kbyte文件,使用全速USB时下载时间为10秒,使用高速USB时下载时间约7秒。最关键的时解决了全速USB驱动设备时各种返回NAK的问题。
19
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
fhqmcu
个人博客:https://blog.csdn.net/fhqlongteng
文章
16
回答
60
被采纳
1
关注TA
发私信
相关文章
1
请教USB Host
2
STM32F4调试USB 读卡器(Slave)提示格式化
3
急求 STM32F4 USB Device MSC+SD 的相关问题
4
USB 框架问题
5
USB键盘
6
LPC17xx 如何添加USB HOST设备
7
RT-Thread目前支持USB HOST了吗?
8
USB HOST的支持问题
9
RTT 2.0.1 USB存储设备问题,枚举到USBREQ_GET_MAX_LUN后复位
10
USB库已经很久没更新了
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
聚散无由
2
篇文章
14
次点赞
catcatbing
2
篇文章
4
次点赞
Wade
2
篇文章
2
次点赞
Ghost_Girls
1
篇文章
4
次点赞
xiaorui
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部