| .. _usb_cdc-acm_composite: |
| |
| USB CDC ACM Sample Composite Application |
| ######################################## |
| |
| Overview |
| ******** |
| |
| 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. |
| |
| Running |
| ******* |
| |
| 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: |
| |
| .. code-block:: console |
| |
| 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: |
| |
| .. code-block:: console |
| |
| Wait for DTR |
| |
| Open a serial port emulator, for example, minicom, |
| and attach it to both detected CDC ACM devices: |
| |
| .. code-block:: console |
| |
| minicom --device /dev/ttyACM1 |
| minicom --device /dev/ttyACM2 |
| |
| The app should respond on serial output with: |
| |
| .. code-block:: console |
| |
| DTR set, start test |
| Baudrate detected: 115200 |
| Baudrate detected: 115200 |
| |
| And on ttyACM devices provided by the Zephyr USB device stack: |
| |
| .. code-block:: console |
| |
| Send characters to another UART device |
| |
| The characters entered in one serial port will be sent to another |
| serial port. |