[APM32F4] USB应用笔记 | 极海USB_OTG_SDK的HID设备例程

[复制链接]
 楼主| Tong459 发表于 2022-5-7 17:52 | 显示全部楼层 |阅读模式
本帖最后由 Tong459 于 2022-5-7 17:51 编辑

#申请原创#

引入

极海官网上有F407系列的USB库,其名称为APM32F4xx_OTG_SDK,我下载的是V1.1版本。它里面除了USB的驱动外,还包含了主机和设备的例程,例程有三类:鼠标、虚拟串口和U盘。我给大家分享一下我使用的过程中的一些经验。本次主要讲HID设备例程,即鼠标。

我使用的硬件是极海的APM32F407IG MINI Board,它提供了一个全速的USB口(Type B)。打开Device_Examples目录中的HID例程,成功编译下载后,将USB线接上板子,电脑的设备管理器就出现下图所示的设备:

      1.png

   当出现了新的鼠标设备,那就说明这个例程的枚举是没问题的。在例程中,鼠标的左右移动使用的是KEY1和KEY2控制。此外还有PC8和PC9两个IO能够控制光标的上下移动。当鼠标能够自由控制的时候,说明此例程已经正常运行了。

参数配置

一、工程不同目标的选择

如下图所示,一个Keil工程中共有三个目标,USBD_HID_FS为全速,使用的引脚是PA11和PA12;USBD_HID_HS1为高速,使用的是ULPI接口,引脚配置的很多,因为要外接高速PHY;USBD_HID_HS2为高速,因为内嵌了高速PHY,所以通信引脚主要为PB14和PB15。我之前用它的时候,是直接从PB14和PB15引脚分别外接个0欧姆电阻,然后直接连USB口就可以用了,不过需要保证接线的质量。

MINI板上只有全速,所以这里我主要演示的也是全速。

    3.png

二、描述符配置

一般来说,如果只是想控制鼠标的话,例程的描述符可以不作修改。下面简单介绍一下几个描述符的修改方法。

如果想调整设备版本号或者厂商ID和产品ID,可以对设备描述符进行修改,具体方法如下图:

    2.png

描述符中,内容最多的当属配置描述符了,它还包含接口描述符、端点描述符等信息,具体用法如下图:

    4.png

    5.png

    6.png

          7.png

若想修改字符串表达的信息,可以修改对于的字符串描述符,比如产品字符串描述符:

    8.png

其他的比如报告描述符,因为篇幅所以不讲了,视情况再决定是否开一篇专门讲。

三、我们拿到例程之后,该怎么用?

例程是用来做演示的,主要是让人知道这个驱动该怎么用,整个SDK最重要的应该是驱动。我们需要理解好例程中哪些内容是必须的,哪些是可以根据自己需要而修改或者删去的。比如下图就是例程的main函数,除了中断之外的运行内容都在这里了。

    9.png

大致应用的方案我就写到这个程度,如果需要补充的话,可以留言。

gouguoccc 发表于 2022-5-7 18:44 来自手机 | 显示全部楼层
测试过速率没有?
 楼主| Tong459 发表于 2022-5-9 09:30 | 显示全部楼层
gouguoccc 发表于 2022-5-7 18:44
测试过速率没有?

速率没有去专门测它。实际用USB分析仪抓包的时候,丢包不明显。
麻花油条 发表于 2022-5-9 11:16 来自手机 | 显示全部楼层
这应用笔记也是做的超用心的
 楼主| Tong459 发表于 2022-5-9 13:45 | 显示全部楼层
麻花油条 发表于 2022-5-9 11:16
这应用笔记也是做的超用心的

hhh,感谢认可!
WuKaiLi 发表于 2022-5-9 16:00 | 显示全部楼层
学习到许多,谢谢!
bestwell 发表于 2022-5-16 10:01 | 显示全部楼层
极海都有哪些芯片支持otg/  
elsaflower 发表于 2022-5-16 10:34 | 显示全部楼层
为什么要串0欧姆电阻呢   
earlmax 发表于 2022-5-16 11:32 | 显示全部楼层
HID设备例程参考一下。  
hearstnorman323 发表于 2022-5-16 12:04 | 显示全部楼层
USBD_HID_FS可以到什么速度  
juliestephen 发表于 2022-5-16 12:37 | 显示全部楼层
USB_OTG读取的速度怎么样   
 楼主| Tong459 发表于 2022-6-14 10:30 | 显示全部楼层
bestwell 发表于 2022-5-16 10:01
极海都有哪些芯片支持otg/

407、417、405、415这几个系列都有,具体可以去官网查看产品型号表
 楼主| Tong459 发表于 2022-6-14 10:32 | 显示全部楼层
elsaflower 发表于 2022-5-16 10:34
为什么要串0欧姆电阻呢

具体情况具体分析,我在测试板上串0电阻会让数据更稳定
 楼主| Tong459 发表于 2022-6-14 10:34 | 显示全部楼层
hearstnorman323 发表于 2022-5-16 12:04
USBD_HID_FS可以到什么速度

12Mbps
 楼主| Tong459 发表于 2022-6-14 10:39 | 显示全部楼层
juliestephen 发表于 2022-5-16 12:37
USB_OTG读取的速度怎么样

我并未对读取速度进行系统的测量,用起来还是蛮快的
lihuami 发表于 2022-6-20 17:15 | 显示全部楼层
读取的速度怎么样   
earlmax 发表于 2022-6-20 17:25 | 显示全部楼层
这个otg支持多大的?
jtracy3 发表于 2022-6-20 19:55 | 显示全部楼层
HID设备例程哪里下载的  
gouguoccc 发表于 2022-6-20 20:02 来自手机 | 显示全部楼层
学习了,谢谢楼主分享。
kmzuaz 发表于 2022-6-20 21:39 | 显示全部楼层
谢谢楼主分析的资料。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部