Ch32V307用作usb hs device时,ep0的最大包长度不能为8?

Ch32V307用作usb hs device时,ep0的最大包长度只能是64不能是8?

用的是官方的例子:\CH32V307EVT\EVT\EXAM\USB\USBHS\DEVICE\CompositeKM

如果把usbd_desc.h中的DEF_USBD_UEP0_SIZE改成8,这个usb设备就没法setup.在windows设备管理器中不会出现这个设备


/* USB Device Endpoint Size */

#define DEF_USBD_UEP0_SIZE            64     /* usb hs/fs device end-point 0 size */


目前有很多老的键鼠的maxpacketlength是8,我想完全复制他们的描述符,让hs device可以在最大包程度为8的情况下工作,该怎么办呢?


您好,端点0的最大包长度可以修改为8,这边基于你所说的例程修改为8测试也是没问题的,设备管理器可以正常识别,如下图1,注意设备初始化那边也建议修改一下,如下图2。若你那边无法识别,可以先检查一下工程文件的配置是否正确,如ld文件中FLASH、RAM的大小配置是否和MCU默认配置一样,后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。

image.png

图1

image.png

图2


你好,根据USB2.0协议的规定,如果为高速设备,端点0最大包长度必须为64字节;若希望配置端点0最大包长度为8字节,可以在USB_HS初始化时配置为USBHS_UC_SPEED_LOW;

image.png

具体描述在USB2.0协议9.6.1节,如下图:

image.png


只有登录才能回复,可以选择微信账号登录