STM32 USB OTG官方库移植

本文介绍STM32F2系列MCU的USB库应用流程。从硬件资源确认到晶振选择,再到USB库配置及模式设置,详细解析如何实现USB升级方案,包括DFU与MSC两种模式。

其实ST公司的官方usb库已经做得很不错了。只是一开始不会用,导致浪费了很多时间。

首先拿到库,需要确认板上的端口资源。

VBUS D- D+ GND 四条线至少要有,但是VBUS不一定要接在芯片端口上。作为从机的话VBUS可以直接拉高到3v以上。电流大小待确认。D-,D+一定要接到芯片的OTG FS HS均可 DM  DP对应 D- D+。作为主机可以不接VBUS,也可将VBUS接到芯片端口作为检测口,此处不明是硬件原因还是什么原因,若使用VBUS检测的话,拔掉usb线会造成JLINK崩溃,因此我将VBUS口作为普通I/O口,查询读取是否连接或失去连接。

OTG_HS想用的话需要外接PHY,若无外接PHY,也将HS口配置成FS口。

确认硬件完毕后,需要确认所需使用的晶振,外部内部均可。STM32F2为例,HSI为16M。则可以直接用HSI来配置 配置出48M的晶振供给USB。此配置可采用ST官方的配置工具来完成,操作简便 ,将配置生成的system_stm32f2xx.c与工程中的替换即可。

时钟确认完毕,接下来需要对USB库进行配置。USB库中有很多例程,此处我是做USB升级方案,则有两种,一种是DFU升级模式,需要配合官方给的DFU Demo上位机软件来使用,第二种是MSC模式,读取U盘。库做的很完善,FATFS已经写进例程。配置主要看是USB_HOST还是USB_DEV抑或是OTG双向模式。目前没有用到双向模式。

模式配置需要在usb_conf.h中修改对应的宏,可以不适用VBUS来检测外设是否插入等,还可以配置使OTG_HS口工作在FS模式下。配置完成后,理论上就移植成功了。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值