This directory contains an implementation of a USB CDC-ACM Host Class Driver that is implemented on top of the USB Host Library.
The CDC-ACM Host driver supports the following types of CDC devices:
The CDC-ACM Class driver supports CDC-ACM devices that meet the following requirements:
- The device class code must be set to the CDC class
0x02 or implement Interface Association Descriptor (IAD)
- The CDC-ACM must contain the following interfaces:
- A Communication Class Interface containing a management element (EP0) and may also contain a notification element (an interrupt endpoint). The driver will check this interface for CDC Functional Descriptors.
- A Data Class Interface with two BULK endpoints (IN and OUT). Other transfer types are not supported by the driver
The CDC-ACM Class driver supports CDC-like devices that meet the following requirements:
- The device class code must be set to the vendor specific class code
- The device needs to provide and interface containing the following endpoints:
- (Mandatory) Two Bulk endpoints (IN and OUT) for data
- (Optional) An interrupt endpoint (IN) for the notification element
For CDC-like devices, users are responsible for ensuring that they only call APIs (e.g.,
cdc_acm_host_send_break()) that are supported by the target device.
The following steps outline the typical API call pattern of the CDC-ACM Class Driver
cdc_acm_host_open_vendor_specific()to open a target CDC-ACM/CDC-like device. These functions will block until the target device is connected