Tong459 发表于 2022-5-7 17:52

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

本帖最后由 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线接上板子,电脑的设备管理器就出现下图所示的设备:      当出现了新的鼠标设备,那就说明这个例程的枚举是没问题的。在例程中,鼠标的左右移动使用的是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板上只有全速,所以这里我主要演示的也是全速。    二、描述符配置一般来说,如果只是想控制鼠标的话,例程的描述符可以不作修改。下面简单介绍一下几个描述符的修改方法。如果想调整设备版本号或者厂商ID和产品ID,可以对设备描述符进行修改,具体方法如下图:    描述符中,内容最多的当属配置描述符了,它还包含接口描述符、端点描述符等信息,具体用法如下图:                     
若想修改字符串表达的信息,可以修改对于的字符串描述符,比如产品字符串描述符:    其他的比如报告描述符,因为篇幅所以不讲了,视情况再决定是否开一篇专门讲。三、我们拿到例程之后,该怎么用?例程是用来做演示的,主要是让人知道这个驱动该怎么用,整个SDK最重要的应该是驱动。我们需要理解好例程中哪些内容是必须的,哪些是可以根据自己需要而修改或者删去的。比如下图就是例程的main函数,除了中断之外的运行内容都在这里了。    大致应用的方案我就写到这个程度,如果需要补充的话,可以留言。

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

谢谢楼主分析的资料。
页: [1] 2
查看完整版本: USB应用笔记 | 极海USB_OTG_SDK的HID设备例程