自定义设备的端点使用问题
设备的端点是有USB PHY芯片决定的,那每一个端点的特性也是芯片决定好的吗?如我现在的USB协议栈中的描述符里:/* Endpoint 1 descriptor */
0x07, 0x05, 0x84, 0x03, 0x08, 0x00, 0x0B,
/* Data Class Interface Descriptor Requirement */
0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00,0x00,
/* First alternate setting Endpoint 1 descriptor */
0x07, 0x05, 0x01, 0x02, 0x00, 0x02, 0x00,
/* Endpoint 2 descriptor */
0x07, 0x05, 0x82, 0x02, 0x00, 0x02, 0x00,
其中端点4位IN中断端点,端点1和端点2分别为OUT批量端点和IN批量端点
但当我修改端点的ID号时则不能用,比如将IN批量端点为0x82修改为0x86,则无法实现device向host传数......我的PHY芯片是支持16个IN端点和OUT端点的,那么,对应ID号的端点的特性是在PHY芯片中定好的呢,还是可以自定义某一个端点为IN或者OUT呢?
设备的端点和PHY应该没有关系,关于你说的端点的问题,除了在描述符中指定端点之后,还需要在单片机中打开相应的端点才可以使用。 yu0405jie 发表于 2018-2-27 15:29
设备的端点和PHY应该没有关系,关于你说的端点的问题,除了在描述符中指定端点之后,还需要在单片机中打开 ...
和STM32有些不同,我这里是根据几个函数可以初始化所有的端点,如:
ux_dcd_dwc_otg_endpoint_create.c
ux_dcd_dwc_otg_endpoint_reset.c
ux_dcd_dwc_otg_endpoint_stall.c
ux_dcd_dwc_otg_endpoint_status.c
......
如此的这类函数,里面都可以根据“ed =&dcd_otg -> ux_dcd_otg_ed;”otg_endpoint_index的这个值来判断使用的哪个端点,所以应该是有过初始化和激活
页:
[1]