Datasheet

Table Of Contents
Chapter 4. Peripherals
4.1. USB
4.1.1. Overview
Prerequisite Knowledge Required
This section requires knowledge of the USB protocol. We recommend [usbmadesimple] if you are unclear
on the terminology used in this section (see References).
RP2040 contains a USB 2.0 controller that can operate as either:
a Full Speed device (12 Mbit/s)
a host that can communicate with both Low Speed (1.5 Mbit/s) and Full Speed devices. This includes multiple
downstream devices connected to a USB hub.
There is an integrated USB 1.1 PHY which interfaces the USB controller with the DP and DM pins of the chip.
4.1.1.1. Features
The USB controller hardware handles the low level USB protocol, meaning the main job of the programmer is to configure
the controller and then provide / consume data buffers in response to events on the bus. The controller interrupts the
processor when it needs attention. The USB controller has 4K of DPSRAM which is used for configuration and data
buffers.
4.1.1.1.1. Device Mode
USB 2.0 compatible Full Speed device (12 Mbps)
Supports up to 32 endpoints (Endpoints 0 -> 15 in both in and out directions)
Supports Control, Isochronous, Bulk, and Interrupt endpoint types
Supports double bufferring
3840 bytes of usable buffer space in DPSRAM. This is equivalent to 60 × 64-byte buffers.
4.1.1.1.2. Host Mode
Can communicate with Full Speed (12 Mbps) devices and Low Speed devices (1.5 Mbps)
Can communicate with multiple devices via a USB hub, including Low Speed devices connected to a Full Speed hub
Can poll up to 15 interrupt endpoints in hardware. (Interrupt endpoints are used by hubs to notify the host of
connect/disconnect events, mice to notify the host of movement etc.)
4.1.2. Architecture
RP2040 Datasheet
4.1. USB 381