USB CDC-ACM composite¶
This sample app demonstrates use of a USB Communication Device Class (CDC) Abstract Control Model (ACM) driver provided by the Zephyr project in Composite configuration.
Two serial ports are created when the device is plugged to the PC. Received data from one serial port is sent to another serial port provided by this driver.
Plug the board into a host device, for example, a PC running Linux. The board will be detected as shown by the Linux dmesg command:
usb 1-1.5.4: new full-speed USB device number 28 using ehci-pci usb 1-1.5.4: New USB device found, idVendor=2fe3, idProduct=0002, bcdDevice= 2.03 usb 1-1.5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.5.4: Product: Zephyr CDC ACM Composite sample usb 1-1.5.4: Manufacturer: ZEPHYR usb 1-1.5.4: SerialNumber: 86FE679A598AC47A cdc_acm 1-1.5.4:1.0: ttyACM1: USB ACM device cdc_acm 1-1.5.4:1.2: ttyACM2: USB ACM device
The app prints on serial output, used for the console:
Wait for DTR
Open a serial port emulator, for example, minicom, and attach it to both detected CDC ACM devices:
minicom --device /dev/ttyACM1 minicom --device /dev/ttyACM2
The app should respond on serial output with:
DTR set, start test Baudrate detected: 115200 Baudrate detected: 115200
And on ttyACM devices provided by the Zephyr USB device stack:
Send characters to another UART device
The characters entered in one serial port will be sent to another serial port.