en:pfw:usb_cdc_driver_for_rp2040
**This is an old revision of the document!**
Table of Contents
USB CDC driver for RP2040
The idea
This is a compact and universal MSP430 USB CDC driver. Every effort has been made to make it portable.
What we need to do in short
- Initialising the USB hardware on the RP2040.
- Receiving and responding to setup packets from the host (PC). This determines which driver the OS will load.
- If the host is satisfied with the setup, then sending and receiving data packets may start.
Pseudo code
DEFINE DEVICE-DECRIPTOR \ Device descriptor (18 bytes) 12 c, 01 c, 10 c, 01 c, ( 1.10 ) EF c, 02 c, 01 c, 40 c, 66 c, 66 c, ( 6666 ) 10 c, 66 c, ( 6610 ) 00 c, 01 c, ( vsn 1.00 ) 00 c, 02 c, 00 c, 01 c, align DEFINE CONFIGURATION-DESCRIPTOR \ Configuration descriptor (9 or 75 bytes) 9 c, 2 c, 4B c, 0 c, 2 c, 1 c, 0 c, 80 c, FA c, \ Maximum power = 500mA 8 c, 0B c, 0 c, 2 c, 2 c, 2 c, 1 c, 0 c, \ Interface Association Descriptor - CDC 0 9 c, 4 c, 0 c, 0 c, 1 c, 2 c, 2 c, 1 c, 0 c, \ Interface 1: Control - 1 - 0 - 5 c, 24 c, 0 c, 10 c, 1 c, ( CDC vsn 1.10 ) \ CDC Header functional 5 c, 24 c, 1 c, 0 c, 1 c, \ CDC Call management functional 4 c, 24 c, 2 c, 2 c, \ CDC ACM functional ( two commands ) 5 c, 24 c, 6 c, 0 c, 1 c, \ CDC Union functional ( one interface ) 7 c, 5 c, 81 c, 3 c, 8 c, 0 c, 10 c, \ Endpoint 1 IN descriptor 9 c, 4 c, 1 c, 0 c, 2 c, 0A c, 0 c, 0 c, 0 c, \ Interface 2: DATA 7 c, 5 c, 82 c, 2 c, 40 c, 0 c, 0 c, \ Endpoint 2 IN descriptor 7 c, 5 c, 3 c, 2 c, 40 c, 0 c, 0 c, align \ Endpoint 3 OUT descriptor
en/pfw/usb_cdc_driver_for_rp2040.1764682483.txt.gz · Last modified: 2025-12-02 14:34 by willem