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

Communication Device (CDC) - ACM Options

Communication Device (CDC) - Abstract Control Model (ACM) Options explains the configuration options for communication device of abstract control model type. The options can be edited in the file usb_config.c directly or using the µVision Configuration Wizard.

RL-USB CDC ACM Configuration

Where
  • Communication Device (CDC) - Abstract Control Model (ACM) - enables class support for communication devices of abstract control model type. This option corresponds to #define USBD_CDC_ACM_ENABLE.
    #define USBD_CDC_ACM_ENABLE         1                     // 1=enabled; 0=disabled
    
Interrupt Endpoint Settings
configure the endpoint characteristics and affect the Endpoint Descriptor.
  • Interrupt In Endpoint Number sets the endpoint number. Values between 1..15 are allowed. This option corresponds to #define USBD_CDC_ACM_EP_INTIN.
    #define USBD_CDC_ACM_EP_INTIN        1                     // value range 1..15
    
  • Maximum Endpoint Packet Size (in bytes) sets the maximal packet size. Values between 0..1024 are allowed. This option corresponds to #define USBD_CDC_ACM_WMAXPACKETSIZE.
    #define USBD_CDC_ACM_WMAXPACKETSIZE  16                    // value range 0..1024
    
  • Endpoint polling Interval (in ms) sets the data transfer polling interval. Values from 0..255 are allowed. This option corresponds to #define USBD_CDC_ACM_BINTERVAL.
    #define USBD_CDC_ACM_BINTERVAL       2                     // value range 0..255
    
  • High-speed enables the characteristics when using high speed transfer rates. Enable the High Speed option under USB Device. This option corresponds to #define USBD_CDC_ACM_HS_ENABLE.
    #define USBD_CDC_ACM_HS_ENABLE       1                    // 1=enabled; 0=disabled
    
  • Maximum Endpoint Packet Size (in bytes) sets the maximal packet size for high speed transfers. Values between 0..1024 are allowed. This option corresponds to #define USBD_CDC_ACM_HS_WMAXPACKETSIZE.
    #define USBD_CDC_ACM_HS_WMAXPACKETSIZE 16                 // next option also configures this macro
    
  • Additional transactions per microframe sets the additional transaction packets for high speed transfers. Discrete settings can be selected. This option also corresponds to #define USBD_CDC_ACM_HS_WMAXPACKETSIZE.
    #define USBD_CDC_ACM_HS_WMAXPACKETSIZE 16                 // prev. option also configures this macro
    
  • Endpoint polling Interval (in ms) sets the data transfer polling interval for high speed transfers. Discrete values can be selected. This option corresponds to #define USBD_CDC_ACM_HS_BINTERVAL.
    #define USBD_CDC_ACM_HS_BINTERVAL    2                    // value range 0..32768
    
Bulk Endpoint Settings
configure the endpoint characteristics and affect the Endpoint Descriptors.
  • Bulk In Endpoint Number sets the endpoint number. Values between 1..15 are allowed. This option corresponds to #define USBD_CDC_ACM_EP_BULKIN.
    #define USBD_CDC_ACM_EP_BULKIN       2                    // value range 1..15
    
  • Bulk Out Endpoint Number sets the endpoint number. Values between 1..15 are allowed. This option corresponds to #define USBD_CDC_ACM_EP_BULKOUT.
    #define USBD_CDC_ACM_EP_BULKOUT      2                    // value range 1..15
    
  • Maximum Packet Size sets the maximal packet size, in bytes. Values between 0..1024 are allowed. This option corresponds to #define USBD_CDC_ACM_WMAXPACKETSIZE1.
    #define USBD_CDC_ACM_WMAXPACKETSIZE1 64                   // value range 0..1024
    
  • High-speed enables the characteristics when using high speed transfer rates. Enable the High Speed option under USB Device. This option corresponds to #define USBD_CDC_ACM_HS_ENABLE1.
    #define USBD_CDC_ACM_HS_ENABLE1      1                    // 1=enabled; 0=disabled
    
  • Maximum Packet Size sets the maximal packet size, in bytes, for high speed transfers. Values between 0..1024 are allowed. This option corresponds to #define USBD_CDC_ACM_HS_WMAXPACKETSIZE1.
    #define USBD_CDC_ACM_HS_WMAXPACKETSIZE1 64                // value range 0..1024
    
  • Maximum NAK Rate sets the number for maximum not acknowledged transfers. values between 0..255 are allowed. This option also corresponds to #define USBD_CDC_ACM_HS_BINTERVAL1.
    #define USBD_CDC_ACM_HS_BINTERVAL1   0                    // value range 0..255
    
Communication Device Settings
configure device specific options.
  • Communication Class Interface String sets the communication interface string identifier. 126 characters are allowed. This option corresponds to #define USBD_CDC_ACM_CIF_STRDESC.
    #define USBD_CDC_ACM_CIF_STRDESC     L"USB_CDC"           // up to 126 characters
    
  • Data Class Interface String sets the data interface string identifier. 126 characters are allowed. This option corresponds to #define USBD_CDC_ACM_DIF_STRDESC.
    #define USBD_CDC_ACM_DIF_STRDESC     L"USB_CDC1"          // up to 126 characters
    
  • Maximum Communication Device Send Buffer Size sets the maximal sending communication buffer size, in bytes. Discrete values can be selected. This option corresponds to #define USBD_CDC_ACM_SENDBUF_SIZE.
    #define USBD_CDC_ACM_SENDBUF_SIZE    128                  // possible values: 8, 16, 32, 64, 128, 256, 512, 1024
    
  • Maximum Communication Device Receive Buffer Size sets the maximal receive buffer size, in bytes. It must not be less then maximum packet size setting for the bulk out endpoint. Discrete values can be selected. This option corresponds to #define USBD_CDC_ACM_RECEIVEBUF_SIZE.
    #define USBD_CDC_ACM_RECEIVEBUF_SIZE 128                  // possible values: 8, 16, 32, 64, 128, 256, 512, 1024
    

Note

  • The USB Device Controller hardware might impose restrictions on the use of endpoints.
  • Refer to Create CDC ACM Applications for a quick-start on programming a USB CDC ACM Device.
  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.