en:pfw:usb_cdc_driver_for_rp2040
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:pfw:usb_cdc_driver_for_rp2040 [2025-12-02 14:07] – willem | en:pfw:usb_cdc_driver_for_rp2040 [2025-12-02 14:50] (current) – [Pseudo code] willem | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== USB CDC driver for RP2040 ====== | ====== USB CDC driver for RP2040 ====== | ||
| - | ===== The idea: ===== | + | ===== The idea ===== |
| This is a compact and universal MSP430 USB CDC driver. | This is a compact and universal MSP430 USB CDC driver. | ||
| Every effort has been made to make it portable. | 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 ===== | ||
| + | |||
| + | < | ||
| + | hex | ||
| + | Function DEVICE-DECRIPTOR \ 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 | ||
| + | |||
| + | Function 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 | ||
| + | |||
| + | decimal | ||
| + | Function | ||
| + | \ In second half word are memory for the 900/880 requests | ||
| + | 4 c, 3 c, 9 c, 4 c, \ English/US = language ID | ||
| + | 115200 , 0 c, 0 c, 8 c, align \ Line data: 115k2, Stop bits, Parity, Data bits | ||
| + | |||
| + | hex | ||
| + | </ | ||
| + | |||
en/pfw/usb_cdc_driver_for_rp2040.1764680820.txt.gz · Last modified: 2025-12-02 14:07 by willem