Keil Logo

Technical Support

On-Line Manuals

RL-ARM User's Guide (MDK v4)

RL-RTX RL-FlashFS RL-TCPnet RL-CAN RL-USB RL-USB for USB Device Applications RL-USB Device Library RL-USB Device Features RL-USB Device Software Stack RL-USB Device Functions RL-USB Device Source Files RL-USB Device Configuration Audio Device (ADC) Options Communication Device (CDC) - ACM Options Human Interface Device (HID) Options Mass Storage Device (MSC) Options Create USB Device Applications Create ADC Applications Create CDC ACM Applications Create HID Applications Create MSC Applications Create Composite Applications Test USB Device Applications Compliance Tests Test HID Client Application RL-USB for USB Host Applications RL-USB Host Library RL-USB Host Features RL-USB Host Software Stack RL-USB Host Functions RL-USB Host Source Files RL-USB Host Configuration Host Controller Driver Selection Host Controller Driver Configuration Host Class Driver Selection Create USB Host Applications Create USB Host HID Applications HID_Kbd Example Create USB Host MSC Applications Create USB Host Class Driver RL-USB Host Constants and Structures Error constants Speed constants Transaction Packet Type constants Transaction Error Type constants USB Request Block structure (USBH_URB) Endpoint structure (USBH_EP) Driver Capabilites structure (USBH_HCI_CAP) Device Class Instance structure (USBH_DCI) Host Controller Instance structure (USBH_HCI) Host Controller Driver structure (USBH_HCD) USB Concepts USB Transfer Rates USB Network Basic Communication Model USB Protocol Control Transfer Interrupt Transfer Isochronous Transfer Bulk Transfer Descriptors Device Configuration Device Descriptor Configuration Descriptor Interface Descriptor Endpoint Descriptor Device Qualifier Descriptor Example Programs Library Reference Appendix

Endpoint Descriptor

The Endpoint Descriptor is used to specify the transfer type, direction, polling interval, and maximum packet size for each endpoint. Endpoint zero, the default endpoint, is always assumed to be a control endpoint and never has a descriptor.

Offset Field Size Value Description
0 bLength 1 Number Size of this descriptor in bytes.
1 bDescriptorType 1 Constant Endpoint Descriptor Type (05h).
2 bEndpointAddress 1 Endpoint The address of the endpoint on the USB device described by this descriptor. The address is encoded as follows:

Bit 3...0: The endpoint number
Bit 6...4: Reserved, reset to zero
Bit 7: Direction, ignored for control endpoints.
      0 = OUT endpoint
      1 = IN endpoint
3 bmAttributes 1 Bitmap The endpoint’s attribute when configured through bConfigurationValue.
Bits 1..0: Transfer Type
      00 = Control
      01 = Isochronous
      10 = Bulk
      11 = Interrupt

For non-isochronous endpoints, bits 5..2 must be set to zero.
For isochronous endpoints, they are defined as:
Bits 3..2: Synchronization Type
      00 = No Synchronization
      01 = Asynchronous
      10 = Adaptive
      11 = Synchronous
Bits 5..4: Usage Type
      00 = Data
      01 = Feedback
      10 = Implicit feedback
      11 = Reserved

All other bits are reserved and must be reset to zero.
4 wMaxPacketSize 2 Number Is the maximum packet size of this endpoint.
For isochronous endpoints, this value is used to reserve the time on the bus, required for the per-(micro)frame data payloads.

Bits 10..0 = max. packet size (in bytes).

For high-speed isochronous and interrupt endpoints:
Bits 12..11 = number of additional transaction opportunities per micro-frame:
      00 = None (1 transaction per micro-frame)
      01 = 1 additional (2 per micro-frame)
      10 = 2 additional (3 per micro-frame)
      11 = Reserved
Bits 15..13 are reserved and must be set to zero.
6 bInterval 1 Number Interval for polling endpoint for data transfers. Expressed in frames or micro-frames depending on the operating speed (1 ms, or 125 µs units).
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.