bboyer
335
EZ-USB FX3 Endpoint的学习
概要
端点在USB中是一个重要的知识点。我们需要详细的了解这个知识点,以便创建端点,使其作为输入或者输出的点。
结构体 CyU3PEpConfig_t
struct CyU3PEpConfig_t {
CyBool_t enable;
CyU3PUsbEpType_t epType;
uint16_t streams;
uint16_t pcktSize;
uint8_t burstLen;
uint8_t isoPkts;
}
- enable 端点是否开启
- epType 端点类型:Control = 0, Isochronous = 1 , Bulk = 2, Interrupt = 3.
enum CyU3PUsbEpType_t { CY_U3P_USB_EP_CONTROL = 0, /**< 控制端点类型 */ CY_U3P_USB_EP_ISO = 1, /**< Isochronous端点类型 */ CY_U3P_USB_EP_BULK = 2, /**< Bulk端点类型 */ CY_U3P_USB_EP_INTR = 3 /**< 终端端点类型 */ }
- streams 端点的steams大小, 这个需要去指定,而不像super speed companion 描述符那样的
stream count - 1
- pcktSize 端点的最大的packet(包)大小。 如果最大数据包大小应设置为与 USB 规范一致的最大值,则可以设置为 0。
- burstLen 在packet中最大的burst大小。 这个需要去指定,而不像super speed companion 描述符那样的
burst length - 1
- isoPkts ISO端点中每个微帧的packet数。 设置不为0的时候, 端点配置必须是
3
或者7
配置设置好后, 我们需要调用CyU3PSetEpConfig(端点值, 配置对象)
来启用端点或者关闭端点。
端点
fx3设备有着30个Endpoint(后面翻译为端点)。 15个输出端点、15个输入端点。默认情况下, 所有端口都是没有开启的。 我们需要通过对应的函数调用来开启端点。我们也可以通过对应的关闭函数, 来关闭端点。
端点列表:
方向 | 端点列表 |
---|---|
输出 | 0x01,0x02,...0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F |
输入 | 0x81,0x82,...0x8A,0x8B, 0x8C, 0x8D, 0x8E, 0x8F |
这个端点值用在函数CyU3PSetEpConfig
第一个参数上。
使用流程
Endpoint的使用是非常简单的,只需配置一下就可以。以下步骤:
- 创建CyU3PEpConfig_t类型对象, 配置对象的属性
- 调用CyU3PSetEpConfig函数, 传入端点及配置对象, 使其生效
- 在USB配置描述信息(参考端点描述)里面, 我们还需要配置对应端点的说明信息。
Fx3
端点设置
Endpoint
USB端点
发布于: 2022年6月15日