STM32 USB OTG官方库移植
2015-11-17 16:57
323 查看
其实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模式下。配置完成后,理论上就移植成功了。
首先拿到库,需要确认板上的端口资源。
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模式下。配置完成后,理论上就移植成功了。
相关文章推荐
- php 乱码解决
- CMapStringToPtr添加与释放
- u3d性能优化
- android游戏开发初学之SurfaceView绘制界面
- SQLSERVER 获取手机号码归属地
- 程序启动原理
- Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items
- android Toast大全(五种情形)建立属于你自己的Toast
- 设置dialog的大小,位置
- 【黑马程序员】C语言—推箱子游戏实现
- POJ 3617 Best Cow Line(贪心,字典序比较)
- 安装mongodb centos6.5 x86_64
- objective-c 中3种随机数的用法:arc4random( ) random( ) CCRANDOM_0_1( )
- RPG游戏(一)——环境搭建、地图显示
- 封装常用的js(Base.js)——【01】理解库,获取节点,连缀,
- java中接口
- JS封装cookie操作函数实例(设置、读取、删除)
- apache-tomcat-8.0.21各级文件功用
- Hadoop大数据解决方案
- 1.1.0.2、在 Windows 上安装