diff --git a/documentation/asciidoc/accessories/build-hat/introduction.adoc b/documentation/asciidoc/accessories/build-hat/introduction.adoc index ebcb7d6ee..bb08dfb47 100644 --- a/documentation/asciidoc/accessories/build-hat/introduction.adoc +++ b/documentation/asciidoc/accessories/build-hat/introduction.adoc @@ -22,7 +22,7 @@ NOTE: The HAT works with all 40-pin GPIO Raspberry Pi boards, including Raspberr * Controls up to 4 LEGO® Technic™ motors and sensors included in the SPIKE™ Portfolio * Easy-to-use https://buildhat.readthedocs.io/[Python library] to control your LEGO® Technic™ devices * Fits onto any Raspberry Pi computer with a 40-pin GPIO header -* Onboard xref:../microcontrollers/rp2040.adoc[RP2040] microcontroller manages low-level control of LEGO® Technic™ devices +* Onboard xref:../microcontrollers/silicon.adoc[RP2040] microcontroller manages low-level control of LEGO® Technic™ devices * External 8V PSU https://raspberrypi.com/products/build-hat-power-supply[available separately] to power both Build HAT and Raspberry Pi [NOTE] diff --git a/documentation/asciidoc/computers/raspberry-pi/images/pico-2.png b/documentation/asciidoc/computers/raspberry-pi/images/pico-2.png new file mode 100644 index 000000000..f3fe1bac9 Binary files /dev/null and b/documentation/asciidoc/computers/raspberry-pi/images/pico-2.png differ diff --git a/documentation/asciidoc/computers/raspberry-pi/introduction.adoc b/documentation/asciidoc/computers/raspberry-pi/introduction.adoc index f221e3f20..d843862ef 100644 --- a/documentation/asciidoc/computers/raspberry-pi/introduction.adoc +++ b/documentation/asciidoc/computers/raspberry-pi/introduction.adoc @@ -333,29 +333,33 @@ Models with the *H* suffix have header pins pre-soldered to the GPIO header. Mod |=== | Model | SoC | Memory | Storage | GPIO | Wireless Connectivity +a| +.Raspberry Pi Pico 2 +image::images/pico-2.png[alt="Raspberry Pi Pico 2"] +| xref:../microcontrollers/silicon.adoc#rp2350[RP2350] | 520KB | 2MB | 40-pin GPIO header (unpopulated) ^| none a| .Raspberry Pi Pico image::images/pico.png[alt="Raspberry Pi Pico"] -| xref:../microcontrollers/rp2040.adoc#welcome-to-rp2040[RP2040] | 264kB | 2MB | 40-pin GPIO header (unpopulated) ^| none +| xref:../microcontrollers/silicon.adoc#rp2040[RP2040] | 264KB | 2MB | 40-pin GPIO header (unpopulated) ^| none a| .Raspberry Pi Pico H image::images/pico-h.png[alt="Raspberry Pi Pico H"] -| xref:../microcontrollers/rp2040.adoc#welcome-to-rp2040[RP2040] | 264kB | 2MB | 40-pin GPIO header (unpopulated) ^| none +| xref:../microcontrollers/silicon.adoc#rp2040[RP2040] | 264KB | 2MB | 40-pin GPIO header (unpopulated) ^| none a| .Raspberry Pi Pico W image::images/pico-w.png[alt="Raspberry Pi Pico W"] -| xref:../microcontrollers/rp2040.adoc#welcome-to-rp2040[RP2040] | 264kB | 2MB | 40-pin GPIO header (unpopulated) +| xref:../microcontrollers/silicon.adoc#rp2040[RP2040] | 264KB | 2MB | 40-pin GPIO header (unpopulated) a| * 2.4GHz single-band 802.11n Wi-Fi (10Mb/s) * Bluetooth 5.2, Bluetooth Low Energy (BLE) a| .Raspberry Pi Pico WH image::images/pico-wh.png[alt="Raspberry Pi Pico WH"] -| xref:../microcontrollers/rp2040.adoc#welcome-to-rp2040[RP2040] | 264kB | 2MB | 40-pin GPIO header +| xref:../microcontrollers/silicon.adoc#rp2040[RP2040] | 264KB | 2MB | 40-pin GPIO header a| * 2.4GHz single-band 802.11n Wi-Fi (10Mb/s) * Bluetooth 5.2, Bluetooth Low Energy (BLE) |=== -For more information about Raspberry Pi Pico models, see xref:../microcontrollers/raspberry-pi-pico.adoc[the Pico documentation]. +For more information about Raspberry Pi Pico models, see xref:../microcontrollers/pico-series.adoc[the Pico documentation]. diff --git a/documentation/asciidoc/microcontrollers/debug-probe/getting-started.adoc b/documentation/asciidoc/microcontrollers/debug-probe/getting-started.adoc index 3a7af7d07..00ab950fb 100644 --- a/documentation/asciidoc/microcontrollers/debug-probe/getting-started.adoc +++ b/documentation/asciidoc/microcontrollers/debug-probe/getting-started.adoc @@ -2,7 +2,7 @@ image:images/labelled-wiring.jpg[width="100%"] -Depending on your setup, there are several ways to wire the Debug Probe to a xref:raspberry-pi-pico.adoc[Raspberry Pi Pico]. Below, we connect the Debug Probe to a Raspberry Pi Pico H which has the newer three-pin JST-SH connector for SWD. +Depending on your setup, there are several ways to wire the Debug Probe to a xref:pico-series.adoc[Pico-series device]. Below, we connect the Debug Probe to a Raspberry Pi Pico H which has the newer three-pin JST-SH connector for SWD. video::4RCZBZsfsek[youtube] diff --git a/documentation/asciidoc/microcontrollers/microcontroller_docs.adoc b/documentation/asciidoc/microcontrollers/microcontroller_docs.adoc index bb63e78f2..42b9c65ee 100644 --- a/documentation/asciidoc/microcontrollers/microcontroller_docs.adoc +++ b/documentation/asciidoc/microcontrollers/microcontroller_docs.adoc @@ -1,15 +1,27 @@ -// Included from both rp2040.adoc and raspberry-pi-pico.adoc +// Included from both silicon.adoc and pico-series.adoc == Documentation -Documentation for Raspberry Pi Pico and other RP2040-based boards. +Documentation for Pico-series and other Raspberry Pi microcontroller-based boards. -=== RP2040 Device +=== RP2350 + +https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf[RP2350 Datasheet]:: A microcontroller by Raspberry Pi + +https://datasheets.raspberrypi.com/rp2350/hardware-design-with-rp2350.pdf[Hardware design with RP2350]:: Using RP2350 microcontrollers to build boards and products + +=== RP2040 https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf[RP2040 Datasheet]:: A microcontroller by Raspberry Pi https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf[Hardware design with RP2040]:: Using RP2040 microcontrollers to build boards and products +=== Raspberry Pi Pico 2 + +https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf[Raspberry Pi Pico 2 Datasheet]:: An RP2350-based microcontroller board + +https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting started with Raspberry Pi Pico-series Microcontrollers]:: C/{cpp} development with Raspberry Pi Pico-series devices and other Raspberry Pi microcontroller-based boards + === Raspberry Pi Pico https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf[Raspberry Pi Pico Datasheet]:: An RP2040-based microcontroller board diff --git a/documentation/asciidoc/microcontrollers/pico-series.adoc b/documentation/asciidoc/microcontrollers/pico-series.adoc new file mode 100644 index 000000000..e063028a1 --- /dev/null +++ b/documentation/asciidoc/microcontrollers/pico-series.adoc @@ -0,0 +1,5 @@ +include::pico-series/about_pico.adoc[] + +include::microcontroller_docs.adoc[] + +include::pico-series/utilities.adoc[] diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/about_pico.adoc b/documentation/asciidoc/microcontrollers/pico-series/about_pico.adoc similarity index 54% rename from documentation/asciidoc/microcontrollers/raspberry-pi-pico/about_pico.adoc rename to documentation/asciidoc/microcontrollers/pico-series/about_pico.adoc index ddb9a866f..c506856a6 100644 --- a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/about_pico.adoc +++ b/documentation/asciidoc/microcontrollers/pico-series/about_pico.adoc @@ -1,17 +1,71 @@ -== The family +Pico-series devices are organised into **families** based on product generation. -image::images/four_picos.jpg[width="75%"] +The original Raspberry Pi Pico family, referred to as Pico or Pico 1, comes in four variants: -The Raspberry Pi Pico family currently consists of four boards; Raspberry Pi Pico (far left), Pico H (middle left), Pico W (middle right), and Pico WH (far right). +* Raspberry Pi Pico +* Raspberry Pi Pico H +* Raspberry Pi Pico W +* Raspberry Pi Pico WH -[[technical-specification]] -== Raspberry Pi Pico and Pico H +The second-generation Raspberry Pi Pico family is referred to as Pico 2. Pico 2 comes in two variants: + +* Raspberry Pi Pico 2 +* Raspberry Pi Pico 2 with headers + +== Pico 2 family + +image::images/pico-2.png[width="75%"] + +The Raspberry Pi Pico 2 family consists of two boards; Raspberry Pi Pico 2, and Raspberry Pi Pico 2 with headers. + +[[pico-2-technical-specification]] +=== Raspberry Pi Pico 2 + +Raspberry Pi Pico 2 is a low-cost, high-performance microcontroller board with flexible digital interfaces. Key features include: + +* xref:silicon.adoc#rp2350[RP2350] microcontroller chip designed by Raspberry Pi in the United Kingdom +* Dual Cortex-M33 or Hazard3 processors at up to 150MHz +* 520KB of SRAM, and 4MB of on-board flash memory +* USB 1.1 with device and host support +* Low-power sleep and dormant modes +* Drag-and-drop programming using mass storage over USB +* 26× multi-function GPIO pins including 3 that can be used for ADC +* 2× SPI, 2× I2C, 2× UART, 3× 12-bit 500ksps Analogue to Digital Converter (ADC), 24× controllable PWM channels +* 2× Timer with 4 alarms, 1× AON Timer +* Temperature sensor +* 3 × Programmable IO (PIO) blocks, 12 state machines total for custom peripheral support +** Flexible, user-programmable high-speed IO +** Can emulate interfaces such as SD Card and VGA + +The Raspberry Pi Pico 2 comes as a castellated module which allows soldering direct to carrier boards, while the Pico 2 _with headers_ comes with pre-soldered headers. + +NOTE: Both boards have a three pin Serial Wire Debug (SWD) header. However, the Pico 2 with headers breaks this out into a small, keyed, https://datasheets.raspberrypi.com/debug/debug-connector-specification.pdf[3-pin connector] while the Pico has three castellated through-hole pins adjacent to the edge of the board. + +=== Pinout and design files + +image::images/pico-2-r4-pinout.svg[] + +* Download the https://datasheets.raspberrypi.com/pico/Pico-2-Pinout.pdf[Pinout Diagram] (PDF) +* Download https://datasheets.raspberrypi.com/pico/RPi-Pico-2-PUBLIC-20240708.zip[Design Files] (Cadence Allegro) +* Download https://datasheets.raspberrypi.com/pico/Pico-2-step-20240708.zip[STEP File] +* Download https://datasheets.raspberrypi.com/pico/Pico-2-Fritzing-20240708.fzpz[Fritzing Part] for Raspberry Pi Pico + +NOTE: More information on Fritzing is available on the https://fritzing.org/[fritzing.org] website. + +== Pico 1 family + +image::images/pico-1s.png[width="75%"] + +The Raspberry Pi Pico 1 family consists of four boards; Raspberry Pi Pico (far left), Pico H (middle left), Pico W (middle right), and Pico WH (far right). + +[[pico-1-technical-specification]] +=== Raspberry Pi Pico and Pico H Raspberry Pi Pico is a low-cost, high-performance microcontroller board with flexible digital interfaces. Key features include: -* xref:rp2040.adoc#welcome-to-rp2040[RP2040] microcontroller chip designed by Raspberry Pi in the United Kingdom +* xref:silicon.adoc#rp2040[RP2040] microcontroller chip designed by Raspberry Pi in the United Kingdom * Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz -* 264kB of SRAM, and 2MB of on-board flash memory +* 264KB of SRAM, and 2MB of on-board flash memory * USB 1.1 with device and host support * Low-power sleep and dormant modes * Drag-and-drop programming using mass storage over USB @@ -22,11 +76,11 @@ Raspberry Pi Pico is a low-cost, high-performance microcontroller board with fle * Accelerated floating-point libraries on-chip * 8 × Programmable I/O (PIO) state machines for custom peripheral support -The Raspberry Pi Pico comes as a castellated module allows soldering direct to carrier boards, while the Pico H comes with pre-soldered headers. +The Raspberry Pi Pico comes as a castellated module which allows soldering direct to carrier boards, while the Pico H comes with pre-soldered headers. NOTE: Both boards have a three pin Serial Wire Debug (SWD) header. However, the Pico H has this broken out into a small, keyed, https://datasheets.raspberrypi.com/debug/debug-connector-specification.pdf[3-pin connector] while the Pico has three castellated through-hole pins adjacent to the edge of the board. -=== Pinout and design files +==== Pinout and design files image::images/pico-pinout.svg[] @@ -38,7 +92,8 @@ image::images/pico-pinout.svg[] NOTE: More information on Fritzing is available on the https://fritzing.org/[fritzing.org] website. -== Raspberry Pi Pico W and Pico WH +[[picow-technical-specification]] +=== Raspberry Pi Pico W and Pico WH Raspberry Pi Pico W adds on-board single-band 2.4GHz wireless interfaces (802.11n) using the Infineon CYW43439 while retaining the Pico form factor. The on-board 2.4GHz wireless interface has the following features: @@ -50,7 +105,7 @@ Raspberry Pi Pico W adds on-board single-band 2.4GHz wireless interfaces (802.11 ** Support for Bluetooth Classic The antenna is an onboard antenna licensed from ABRACON (formerly ProAnt). The wireless interface is connected via -SPI to the xref:rp2040.adoc#welcome-to-rp2040[RP2040] microcontroller. +SPI to the xref:silicon.adoc#rp2040[RP2040] microcontroller. Due to pin limitations, some of the wireless interface pins are shared. The CLK is shared with VSYS monitor, so only when there isn't an SPI transaction in progress can VSYS be read via the ADC. The Infineon CYW43439 DIN/DOUT and @@ -67,7 +122,7 @@ IMPORTANT: By default `libcyw43` is licensed for non-commercial use, but Pico W IMPORTANT: In addition to the https://github.com/bluekitchen/btstack/blob/master/LICENSE[standard BTstack licensing] terms, a https://github.com/raspberrypi/pico-sdk/blob/master/src/rp2_common/pico_btstack/LICENSE.RP[supplemental licence] which covers commercial use of BTstack with Raspberry Pi Pico W or Raspberry Pi Pico WH is provided. -=== Pinout and design files +==== Pinout and design files image::images/picow-pinout.svg[] diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/Pico-R3-SDK11-Pinout.svg b/documentation/asciidoc/microcontrollers/pico-series/images/Pico-R3-SDK11-Pinout.svg similarity index 100% rename from documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/Pico-R3-SDK11-Pinout.svg rename to documentation/asciidoc/microcontrollers/pico-series/images/Pico-R3-SDK11-Pinout.svg diff --git a/documentation/asciidoc/microcontrollers/pico-series/images/pico-1s.png b/documentation/asciidoc/microcontrollers/pico-series/images/pico-1s.png new file mode 100644 index 000000000..434a35c44 Binary files /dev/null and b/documentation/asciidoc/microcontrollers/pico-series/images/pico-1s.png differ diff --git a/documentation/asciidoc/microcontrollers/pico-series/images/pico-2-r4-pinout.svg b/documentation/asciidoc/microcontrollers/pico-series/images/pico-2-r4-pinout.svg new file mode 100644 index 000000000..be839bab9 --- /dev/null +++ b/documentation/asciidoc/microcontrollers/pico-series/images/pico-2-r4-pinout.svg @@ -0,0 +1,1816 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + 39 + + + DEBUG + + + 1 + + + LED + + + USB + + + BOOTSEL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/asciidoc/microcontrollers/pico-series/images/pico-2.png b/documentation/asciidoc/microcontrollers/pico-series/images/pico-2.png new file mode 100644 index 000000000..6b0c28246 Binary files /dev/null and b/documentation/asciidoc/microcontrollers/pico-series/images/pico-2.png differ diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/pico-pinout.svg b/documentation/asciidoc/microcontrollers/pico-series/images/pico-pinout.svg similarity index 100% rename from documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/pico-pinout.svg rename to documentation/asciidoc/microcontrollers/pico-series/images/pico-pinout.svg diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/picow-pinout.svg b/documentation/asciidoc/microcontrollers/pico-series/images/picow-pinout.svg similarity index 100% rename from documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/picow-pinout.svg rename to documentation/asciidoc/microcontrollers/pico-series/images/picow-pinout.svg diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/utilities.adoc b/documentation/asciidoc/microcontrollers/pico-series/utilities.adoc similarity index 53% rename from documentation/asciidoc/microcontrollers/raspberry-pi-pico/utilities.adoc rename to documentation/asciidoc/microcontrollers/pico-series/utilities.adoc index 602419403..13d75bb78 100644 --- a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/utilities.adoc +++ b/documentation/asciidoc/microcontrollers/pico-series/utilities.adoc @@ -1,26 +1,28 @@ == Software Utilities -=== What is on your Pico? +=== What is on your Pico-series device? -If you have forgotten what has been programmed into your Raspberry Pi Pico, and the program was built using our Pico C/{cpp} SDK, it will usually have a name and other useful information embedded into the binary. You can use the https://github.com/raspberrypi/picotool[Picotool] command line utility to find out these details. Full instructions on how to use Picotool to do this are available in our 'https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[getting started]' documentation. +If you are unsure what is programmed into your Raspberry Pi Pico-series device, and the program was built using the Pico C/{cpp} SDK, it will usually have a name and other useful information embedded into the binary. You can use the https://github.com/raspberrypi/picotool[Picotool] command line utility to find out these details. Full instructions on how to use Picotool to do this are available in our 'https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[getting started]' documentation. * Go to the https://github.com/raspberrypi/picotool[Picotool Github repository]. -=== Debugging using another Raspberry Pi Pico +=== Debugging using another Pico-series device -You can use one Raspberry Pi Pico to debug another Pico. This is possible via `debugprobe`, an application that allows a Pico to act as a USB → SWD and UART converter. +CAUTION: Pico 2 is not yet supported by `debuprobe_on_pico` debugging software. + +You can use one Pico-series device to debug another Pico-series device. This is possible via `debugprobe`, an application that allows a Pico to act as a USB → SWD and UART converter. You can find the latest release of the firmware in https://github.com/raspberrypi/debugprobe/releases/latest[the debugprobe GitHub repository]. Download `debugprobe_on_pico.uf2` from the latest release. -Push and hold the BOOTSEL button as you plug the debugger Pico into your computer to mount a volume called "RPI-RP2". +Push and hold the BOOTSEL button as you plug the debugger device into your computer to mount a volume called "RPI-RP2". Copy `debugprobe_on_pico.uf2` onto the volume. The volume will dismount automatically after the file finishes copying onto the device. -Your Pico will reboot and now runs an updated version of the `debugprobe` firmware. It is now ready for debugging. +Your device will reboot and now runs an updated version of the `debugprobe` firmware. It is now ready for debugging. -TIP: For instructions on how to use the debugger, see https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting Started with Pico]. +TIP: For instructions on how to use the debugger, see https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting Started with Pico-series Microcontrollers]. === Resetting Flash memory diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico.adoc b/documentation/asciidoc/microcontrollers/raspberry-pi-pico.adoc deleted file mode 100644 index 2cbfa4d21..000000000 --- a/documentation/asciidoc/microcontrollers/raspberry-pi-pico.adoc +++ /dev/null @@ -1,5 +0,0 @@ -include::raspberry-pi-pico/about_pico.adoc[] - -include::microcontroller_docs.adoc[] - -include::raspberry-pi-pico/utilities.adoc[] diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/four_picos.jpg b/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/four_picos.jpg deleted file mode 100644 index 45836d9bb..000000000 Binary files a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/four_picos.jpg and /dev/null differ diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/four_picos.png b/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/four_picos.png deleted file mode 100644 index bc3d13b25..000000000 Binary files a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/four_picos.png and /dev/null differ diff --git a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/three_picos.jpg b/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/three_picos.jpg deleted file mode 100644 index 9099585b4..000000000 Binary files a/documentation/asciidoc/microcontrollers/raspberry-pi-pico/images/three_picos.jpg and /dev/null differ diff --git a/documentation/asciidoc/microcontrollers/rp1.adoc b/documentation/asciidoc/microcontrollers/rp1.adoc deleted file mode 100644 index 043280982..000000000 --- a/documentation/asciidoc/microcontrollers/rp1.adoc +++ /dev/null @@ -1 +0,0 @@ -include::rp1/about_rp1.adoc[] diff --git a/documentation/asciidoc/microcontrollers/rp2040.adoc b/documentation/asciidoc/microcontrollers/rp2040.adoc deleted file mode 100644 index c69627bc0..000000000 --- a/documentation/asciidoc/microcontrollers/rp2040.adoc +++ /dev/null @@ -1,9 +0,0 @@ -include::rp2040/about_rp2040.adoc[] - -include::rp2040/technical_specification.adoc[] - -include::rp2040/temp_sensor.adoc[] - -include::microcontroller_docs.adoc[] - -include::rp2040/rp2040_based_boards.adoc[] diff --git a/documentation/asciidoc/microcontrollers/rp2040/about_rp2040.adoc b/documentation/asciidoc/microcontrollers/rp2040/about_rp2040.adoc deleted file mode 100644 index 671d85523..000000000 --- a/documentation/asciidoc/microcontrollers/rp2040/about_rp2040.adoc +++ /dev/null @@ -1,7 +0,0 @@ -== Welcome to RP2040 - -Welcome to RP2040, a microcontroller designed here at Raspberry Pi. - -image::images/rp2040.jpg[] - -Whether you have a xref:raspberry-pi-pico.adoc#technical-specification[Raspberry Pi Pico] or another RP2040-based microcontroller board, everything you need to get started is here. You'll find support for getting started with xref:c_sdk.adoc#sdk-setup[C/{cpp}] or xref:micropython.adoc#what-is-micropython[MicroPython] on Raspberry Pi Pico, and links to resources for other boards that use RP2040. There are also links to the technical documentation for both the Raspberry Pi Pico microcontroller board and our RP2040 microcontroller chip. diff --git a/documentation/asciidoc/microcontrollers/rp2040/images/pico_family.jpg b/documentation/asciidoc/microcontrollers/rp2040/images/pico_family.jpg deleted file mode 100644 index 45836d9bb..000000000 Binary files a/documentation/asciidoc/microcontrollers/rp2040/images/pico_family.jpg and /dev/null differ diff --git a/documentation/asciidoc/microcontrollers/rp2040/rp2040_based_boards.adoc b/documentation/asciidoc/microcontrollers/rp2040/rp2040_based_boards.adoc deleted file mode 100644 index b4c9d171a..000000000 --- a/documentation/asciidoc/microcontrollers/rp2040/rp2040_based_boards.adoc +++ /dev/null @@ -1,30 +0,0 @@ -== RP2040-based Boards - -Designed by Raspberry Pi as both a development board, and as a reference design, the xref:raspberry-pi-pico.adoc[Raspberry Pi Pico] series is a family of RP2040-based boards. The Pico family currently consists of Raspberry Pi Pico (far left), Pico H (left), Pico W (right), and Pico WH (far right). - -image::images/pico_family.jpg[width="75%"] - -The design files for Raspberry Pi Pico and Pico W are available openly, with no limitations. - -* Download https://datasheets.raspberrypi.com/pico/RPi-Pico-R3-PUBLIC-20200119.zip[Design Files] for Raspberry Pi Pico (Cadence Allegro) -* Download https://datasheets.raspberrypi.com/picow/RPi-PicoW-PUBLIC-20220607.zip[Design Files] for Raspberry Pi Pico W (Cadence Allegro) - -Permission to use, copy, modify, and/or distribute this design for any purpose with or without fee is hereby granted. - -THE DESIGN IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS DESIGN INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS DESIGN. - -=== Other Boards - -You can find discussions around third-party RP2040-based boards on the https://forums.raspberrypi.com/viewforum.php?f=147[Raspberry Pi forums]. - -==== USB PIDs - -Many RP2040-based devices use Raspberry Pi's USB Vendor ID and Product ID combination. If you build a third-party board based on RP2040, you may require a unique USB Product ID (PID). - -You might need a unique USB PID if you need to provide a custom driver for Windows users. - -USB-IF have given Raspberry Pi permission to license USB product ID values for its Vendor ID (`0x2E8A`) for common silicon components used with RP2040. - -To reserve a USB PID associated with Raspberry Pi's vendor ID, follow the instructions in the https://github.com/raspberrypi/usb-pid[Raspberry Pi USB PID git repository]. - -NOTE: If you use the standard RP2040 PID, you can use the `iManufacturer`, `iProduct`, and `iSerial` strings to uniquely identify your device. diff --git a/documentation/asciidoc/microcontrollers/rp2040/technical_specification.adoc b/documentation/asciidoc/microcontrollers/rp2040/technical_specification.adoc deleted file mode 100644 index 1ab0ea4c7..000000000 --- a/documentation/asciidoc/microcontrollers/rp2040/technical_specification.adoc +++ /dev/null @@ -1,59 +0,0 @@ -== Technical Specification - -RP2040 is the debut microcontroller from Raspberry Pi. It brings our signature values of high performance, low cost, -and ease of use to the microcontroller space. - -With a large on-chip memory, symmetric dual-core processor complex, deterministic bus fabric, and rich peripheral set -augmented with our unique Programmable I/O (PIO) subsystem, it provides professional users with unrivalled power -and flexibility. With detailed documentation, a polished MicroPython port, and a UF2 bootloader in ROM, it has the -lowest possible barrier to entry for beginner and hobbyist users. - -RP2040 is a stateless device, with support for cached execute-in-place from external QSPI memory. This design -decision allows you to choose the appropriate density of non-volatile storage for your application, and to benefit from -the low pricing of commodity flash parts. - -RP2040 is manufactured on a modern 40nm process node, delivering high performance, low dynamic power -consumption, and low leakage, with a variety of low-power modes to support extended-duration operation on battery -power - -Key features: - -* Dual ARM Cortex-M0+ @ 133MHz -* 264kB on-chip SRAM in six independent banks -* Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus -* DMA controller -* Fully-connected AHB crossbar -* Interpolator and integer divider peripherals -* On-chip programmable LDO to generate core voltage -* 2 on-chip PLLs to generate USB and core clocks -* 30 GPIO pins, 4 of which can be used as analogue inputs -* Peripherals -** 2 UARTs -** 2 SPI controllers -** 2 I2C controllers -** 16 PWM channels -** USB 1.1 controller and PHY, with host and device support -** 8 PIO state machines - -[.whitepaper, title="Power switching RP2040 for low standby current applications", subtitle="", link=https://pip.raspberrypi.com/categories/685-whitepapers-app-notes/documents/RP-004339-WP/Power-switching-RP2040-for-low-standby-current-applications.pdf] -**** -Even in deep sleep RP2040 draws a typical current of ~180μA, and sleep current is very dependent on PVT: process (current varies from chip to chip), voltage (current varies linearly with voltage), and temperature (current varies nonlinearly with temperature). - -For many use cases where minimal current draw is required, the best option is to power off the system (or the RP2040 part of the system) completely if possible. This application note gives a couple of options for how this can be done, and these circuits are simple enough that a designer can adjust them for their own use case. -**** - -=== Why is the chip called RP2040? - -The post-fix numeral on RP2040 comes from the following, - -image::images/rp2040_explanation.svg[width=640] - -. Number of processor cores (2) -. Loosely which type of processor (M0+) -. floor(log2(ram / 16k)) -. floor(log2(nonvolatile / 16k)) or 0 if no onboard nonvolatile storage - -=== Design Files - -* Download https://datasheets.raspberrypi.com/rp2040/Minimal-KiCAD.zip[Minimal Viable Board] Design Files (KiCad) -* Download https://datasheets.raspberrypi.com/rp2040/VGA-KiCAD.zip[VGA Carrier Board] Design Files (KiCad) diff --git a/documentation/asciidoc/microcontrollers/rp2040/temp_sensor.adoc b/documentation/asciidoc/microcontrollers/rp2040/temp_sensor.adoc deleted file mode 100644 index e24289053..000000000 --- a/documentation/asciidoc/microcontrollers/rp2040/temp_sensor.adoc +++ /dev/null @@ -1,9 +0,0 @@ -== Internal Temperature Sensor - -The internal temperature sensor in the RP2040 package is a low-resolution sensor that needs to be user-calibrated to be useful to any degree of accuracy. - -A crucial part of accurately determining the temperature measured is knowing the ADC VREF voltage. The conversion formula means that small errors in the ADC VREF voltage can give quite large discrepancies in temperature calculated. The RP2040 doesn't have an internal Fixed Voltage Reference which can be used to determine VREF voltage so VREF voltage needs to be measured manually - with the caveat it could change - or an external Fixed Voltage Reference needs to be provided. - -NOTE: The RP2040 sensor voltage falls as temperature rises. - -See Chapter 4, section 4.9.5 of the https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf[RP2040 Datasheet] for further details of the internal temperature sensor. \ No newline at end of file diff --git a/documentation/asciidoc/microcontrollers/silicon.adoc b/documentation/asciidoc/microcontrollers/silicon.adoc new file mode 100644 index 000000000..ae4236834 --- /dev/null +++ b/documentation/asciidoc/microcontrollers/silicon.adoc @@ -0,0 +1,8 @@ +include::silicon/rp2350.adoc[] + +include::silicon/rp2040.adoc[] + +include::silicon/rp1.adoc[] + +include::microcontroller_docs.adoc[] + diff --git a/documentation/asciidoc/microcontrollers/rp2040/images/pico.jpg b/documentation/asciidoc/microcontrollers/silicon/images/pico.jpg similarity index 100% rename from documentation/asciidoc/microcontrollers/rp2040/images/pico.jpg rename to documentation/asciidoc/microcontrollers/silicon/images/pico.jpg diff --git a/documentation/asciidoc/microcontrollers/rp1/images/rp1.jpg b/documentation/asciidoc/microcontrollers/silicon/images/rp1.jpg similarity index 100% rename from documentation/asciidoc/microcontrollers/rp1/images/rp1.jpg rename to documentation/asciidoc/microcontrollers/silicon/images/rp1.jpg diff --git a/documentation/asciidoc/microcontrollers/rp2040/images/rp2040.jpg b/documentation/asciidoc/microcontrollers/silicon/images/rp2040.jpg similarity index 100% rename from documentation/asciidoc/microcontrollers/rp2040/images/rp2040.jpg rename to documentation/asciidoc/microcontrollers/silicon/images/rp2040.jpg diff --git a/documentation/asciidoc/microcontrollers/rp2040/images/rp2040_explanation.svg b/documentation/asciidoc/microcontrollers/silicon/images/rp2040_explanation.svg similarity index 100% rename from documentation/asciidoc/microcontrollers/rp2040/images/rp2040_explanation.svg rename to documentation/asciidoc/microcontrollers/silicon/images/rp2040_explanation.svg diff --git a/documentation/asciidoc/microcontrollers/silicon/images/rp2350.png b/documentation/asciidoc/microcontrollers/silicon/images/rp2350.png new file mode 100644 index 000000000..a824c6647 Binary files /dev/null and b/documentation/asciidoc/microcontrollers/silicon/images/rp2350.png differ diff --git a/documentation/asciidoc/microcontrollers/silicon/images/rp2350_explanation.svg b/documentation/asciidoc/microcontrollers/silicon/images/rp2350_explanation.svg new file mode 100644 index 000000000..5eae2b251 --- /dev/null +++ b/documentation/asciidoc/microcontrollers/silicon/images/rp2350_explanation.svg @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + RP 2350 + + + + + + + + + + + + + + + + + + Raspberry Pi + + + + + + + + + + + + + + + Number of cores + + + + + + + + + + Type of core (e.g. Cortex-M33) + + + + + + + + + + floor(log2(RAM / 16 kB)) + + floor(log2(nonvolatile / 128 kB)) + + diff --git a/documentation/asciidoc/microcontrollers/rp1/about_rp1.adoc b/documentation/asciidoc/microcontrollers/silicon/rp1.adoc similarity index 97% rename from documentation/asciidoc/microcontrollers/rp1/about_rp1.adoc rename to documentation/asciidoc/microcontrollers/silicon/rp1.adoc index ba83f96c3..ad4f84e47 100644 --- a/documentation/asciidoc/microcontrollers/rp1/about_rp1.adoc +++ b/documentation/asciidoc/microcontrollers/silicon/rp1.adoc @@ -1,5 +1,7 @@ -== About RP1 +== RP1 + +[[about-rp1]] .Architecture image::images/rp1.jpg[alt="Architecture diagram of the RP1",width="70%"] diff --git a/documentation/asciidoc/microcontrollers/silicon/rp2040.adoc b/documentation/asciidoc/microcontrollers/silicon/rp2040.adoc new file mode 100644 index 000000000..12fcdd297 --- /dev/null +++ b/documentation/asciidoc/microcontrollers/silicon/rp2040.adoc @@ -0,0 +1,106 @@ +== RP2040 + +RP2040 is a microcontroller designed by Raspberry Pi. + +image::images/rp2040.jpg[] + +Whether you have a xref:pico-series.adoc#pico-1-technical-specification[Raspberry Pi Pico 1] or another RP2040-based microcontroller board, everything you need to get started is here. You'll find support for getting started with xref:c_sdk.adoc#sdk-setup[C/{cpp}] or xref:micropython.adoc#what-is-micropython[MicroPython] on Raspberry Pi Pico, and links to resources for other boards that use RP2040. There are also links to the technical documentation for both the Raspberry Pi Pico microcontroller board and our RP2040 microcontroller chip. + +=== Why is the chip called RP2040? + +The post-fix numeral on RP2040 comes from the following, + +image::images/rp2040_explanation.svg[width=640] + +. Number of processor cores (2) +. Loosely which type of processor (M0+) +. floor(log2(RAM / 16k)) +. floor(log2(nonvolatile / 16k)) or 0 if no onboard nonvolatile storage + +=== Technical Specification + +RP2040 is the debut microcontroller from Raspberry Pi. It brings our signature values of high performance, low cost, +and ease of use to the microcontroller space. + +With a large on-chip memory, symmetric dual-core processor complex, deterministic bus fabric, and rich peripheral set +augmented with our unique Programmable I/O (PIO) subsystem, it provides professional users with unrivalled power +and flexibility. With detailed documentation, a polished MicroPython port, and a UF2 bootloader in ROM, it has the +lowest possible barrier to entry for beginner and hobbyist users. + +RP2040 is a stateless device, with support for cached execute-in-place from external QSPI memory. This design +decision allows you to choose the appropriate density of non-volatile storage for your application, and to benefit from +the low pricing of commodity flash parts. + +RP2040 is manufactured on a modern 40nm process node, delivering high performance, low dynamic power +consumption, and low leakage, with a variety of low-power modes to support extended-duration operation on battery +power + +Key features: + +* Dual ARM Cortex-M0+ @ 133MHz +* 264kB on-chip SRAM in six independent banks +* Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus +* DMA controller +* Fully-connected AHB crossbar +* Interpolator and integer divider peripherals +* On-chip programmable LDO to generate core voltage +* 2 on-chip PLLs to generate USB and core clocks +* 30 GPIO pins, 4 of which can be used as analogue inputs +* Peripherals +** 2 UARTs +** 2 SPI controllers +** 2 I2C controllers +** 16 PWM channels +** USB 1.1 controller and PHY, with host and device support +** 8 PIO state machines + +[.whitepaper, title="Power switching RP2040 for low standby current applications", subtitle="", link=https://pip.raspberrypi.com/categories/685-whitepapers-app-notes/documents/RP-004339-WP/Power-switching-RP2040-for-low-standby-current-applications.pdf] +**** +Even in deep sleep RP2040 draws a typical current of ~180μA, and sleep current is very dependent on PVT: process (current varies from chip to chip), voltage (current varies linearly with voltage), and temperature (current varies nonlinearly with temperature). + +For many use cases where minimal current draw is required, the best option is to power off the system (or the RP2040 part of the system) completely if possible. This application note gives a couple of options for how this can be done, and these circuits are simple enough that a designer can adjust them for their own use case. +**** + +==== Design Files + +* Download https://datasheets.raspberrypi.com/rp2040/Minimal-KiCAD.zip[Minimal Viable Board] Design Files (KiCad) +* Download https://datasheets.raspberrypi.com/rp2040/VGA-KiCAD.zip[VGA Carrier Board] Design Files (KiCad) + +=== RP2040-based Boards + +Designed by Raspberry Pi as both a development board, and as a reference design, the xref:pico-series.adoc[Raspberry Pi Pico 1] is a family of RP2040-based boards. The Pico family currently consists of Raspberry Pi Pico (far left), Pico H (left), Pico W (right), and Pico WH (far right). + +The design files for Raspberry Pi Pico and Pico W are available openly, with no limitations. + +* Download https://datasheets.raspberrypi.com/pico/RPi-Pico-R3-PUBLIC-20200119.zip[Design Files] for Raspberry Pi Pico (Cadence Allegro) +* Download https://datasheets.raspberrypi.com/picow/RPi-PicoW-PUBLIC-20220607.zip[Design Files] for Raspberry Pi Pico W (Cadence Allegro) + +Permission to use, copy, modify, and/or distribute this design for any purpose with or without fee is hereby granted. + +THE DESIGN IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS DESIGN INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS DESIGN. + +==== Other Boards + +You can find discussions around third-party RP2040-based boards on the https://forums.raspberrypi.com/viewforum.php?f=147[Raspberry Pi forums]. + +==== USB PIDs + +Many RP2040-based devices use Raspberry Pi's USB Vendor ID and Product ID combination. If you build a third-party board based on RP2040, you may require a unique USB Product ID (PID). + +You might need a unique USB PID if you need to provide a custom driver for Windows users. + +USB-IF have given Raspberry Pi permission to license USB product ID values for its Vendor ID (`0x2E8A`) for common silicon components used with RP2040. + +To reserve a USB PID associated with Raspberry Pi's vendor ID, follow the instructions in the https://github.com/raspberrypi/usb-pid[Raspberry Pi USB PID git repository]. + +NOTE: If you use the standard RP2040 PID, you can use the `iManufacturer`, `iProduct`, and `iSerial` strings to uniquely identify your device. + +=== Internal Temperature Sensor + +The internal temperature sensor in the RP2040 package is a low-resolution sensor that needs to be user-calibrated to be useful to any degree of accuracy. + +A crucial part of accurately determining the temperature measured is knowing the ADC VREF voltage. The conversion formula means that small errors in the ADC VREF voltage can give quite large discrepancies in temperature calculated. The RP2040 doesn't have an internal Fixed Voltage Reference which can be used to determine VREF voltage so VREF voltage needs to be measured manually - with the caveat it could change - or an external Fixed Voltage Reference needs to be provided. + +NOTE: The RP2040 sensor voltage falls as temperature rises. + +See Chapter 4, section 4.9.5 of the https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf[RP2040 Datasheet] for further details of the internal temperature sensor. diff --git a/documentation/asciidoc/microcontrollers/silicon/rp2350.adoc b/documentation/asciidoc/microcontrollers/silicon/rp2350.adoc new file mode 100644 index 000000000..1a1a01dbc --- /dev/null +++ b/documentation/asciidoc/microcontrollers/silicon/rp2350.adoc @@ -0,0 +1,77 @@ +== RP2350 + +RP2350 is a microcontroller designed by Raspberry Pi. + +image::images/rp2350.png[] + +Whether you have a xref:pico-series.adoc#pico-2-technical-specification[Raspberry Pi Pico 2] or another RP2350-based microcontroller board, everything you need to get started is here. You'll find support for getting started with xref:c_sdk.adoc#sdk-setup[C/{cpp}] or xref:micropython.adoc#what-is-micropython[MicroPython] on Raspberry Pi Pico 2, and links to resources for other boards that use RP2350. There are also links to the technical documentation for both the Raspberry Pi Pico 2 microcontroller board and our RP2350 microcontroller chip. + +=== Why is the chip called RP2350? + +The post-fix numeral on RP2350 comes from the following, + +image::images/rp2350_explanation.svg[width=640] + +. Number of processor cores (2) +. Loosely which type of processor (M33) +. floor(log2(RAM / 16k)) +. floor(log2(nonvolatile / 16k)) or 0 if no onboard nonvolatile storage + +=== Technical Specification + +RP2350 is a high-performance, secure, low-cost, easy-to-use microcontroller from Raspberry Pi. + +With a large on-chip memory, symmetric dual-core processor complex, deterministic bus fabric, and rich peripheral set augmented with our unique Programmable I/O (PIO) subsystem, it provides professional users with unrivalled power and flexibility. With detailed documentation, a polished MicroPython port, and a UF2 bootloader in ROM, it has the lowest possible barrier to entry for beginner and hobbyist users. + +RP2350 is a stateless device, with support for cached execute-in-place from external QSPI memory. This design decision allows you to choose the appropriate density of non-volatile storage for your application, and to benefit from the low pricing of commodity flash parts. + +RP2350 is manufactured on a modern 40nm process node, delivering high performance, low dynamic power consumption, and low leakage, with a variety of low-power modes to support extended-duration operation on battery power. + +Key features include: + +* Dual Cortex-M33 or Hazard3 processors at up to 150MHz +* 520KB multi-bank high performance SRAM +* Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus +* DMA controller +* Fully-connected AHB crossbar +* On-chip programmable LDO to generate core voltage +* 2 on-chip PLLs to generate USB and core clocks +* 30 GPIO pins, 4 of which can be used as analogue inputs +* Peripherals +** 2 UARTs +** 2 SPI controllers +** 2 I2C controllers +** 24 PWM channels +** USB 1.1 controller and PHY, with host and device support +** 3 Programmable IO (PIO) blocks, 12 state machines total + + +=== RP2350-based Boards + +Designed by Raspberry Pi as both a development board, and as a reference design, the xref:pico-series.adoc#pico-2-technical-specification[Raspberry Pi Pico 2] is based on the RP2350. + +The design files for Raspberry Pi Pico 2 are available openly, with no limitations: + +* Download https://datasheets.raspberrypi.com/pico/RPi-Pico-2-PUBLIC-20240708.zip[Design Files] for Raspberry Pi Pico 2 (Cadence Allegro) + +Permission to use, copy, modify, and/or distribute this design for any purpose with or without fee is hereby granted. + +THE DESIGN IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS DESIGN INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS DESIGN. + +==== Other Boards + +You can find discussions around third-party RP2350-based boards on the https://forums.raspberrypi.com/viewforum.php?f=147[Raspberry Pi forums]. + +==== USB PIDs + +Many RP2350-based devices use Raspberry Pi's USB Vendor ID and Product ID combination. If you build a third-party board based on RP2350, you may require a unique USB Product ID (PID). + +You might need a unique USB PID if you need to provide a custom driver for Windows users. + +USB-IF have given Raspberry Pi permission to license USB product ID values for its Vendor ID (`0x2E8A`) for common silicon components used with RP2350. + +To reserve a USB PID associated with Raspberry Pi's vendor ID, follow the instructions in the https://github.com/raspberrypi/usb-pid[Raspberry Pi USB PID git repository]. + +NOTE: If you use the standard RP2350 PID, you can use the `iManufacturer`, `iProduct`, and `iSerial` strings to uniquely identify your device. + + diff --git a/documentation/htaccess_extra.txt b/documentation/htaccess_extra.txt index 9a37228c6..8878ae995 100644 --- a/documentation/htaccess_extra.txt +++ b/documentation/htaccess_extra.txt @@ -25,5 +25,8 @@ RedirectMatch 302 "^/documentation/usage/camera/" "/documentation/accessories/ca RedirectMatch 302 "^/documentation/usage/" "/documentation/computers/os.html" RedirectMatch 302 "^/documentation/configuration/" "/documentation/computers/configuration.html" RedirectMatch 302 "^/documentation/computers/raspberry-pi-5.html" "/documentation/computers/raspberry-pi.html" +RedirectMatch 302 "^/documentation/microcontrollers/rp1.html" "/documentation/microcontrollers/silicon.html" +RedirectMatch 302 "^/documentation/microcontrollers/rp2040.html" "/documentation/microcontrollers/silicon.html" +RedirectMatch 302 "^/documentation/microcontrollers/raspberry-pi-pico.html" "/documentation/microcontrollers/pico-series.html" diff --git a/documentation/images/Pico-SMALL.png b/documentation/images/Pico-SMALL.png deleted file mode 100644 index 21d169209..000000000 Binary files a/documentation/images/Pico-SMALL.png and /dev/null differ diff --git a/documentation/images/full-sized/RP2040.png b/documentation/images/full-sized/RP2040.png deleted file mode 100644 index a9e2c5157..000000000 Binary files a/documentation/images/full-sized/RP2040.png and /dev/null differ diff --git a/documentation/images/full-sized/pico-series.png b/documentation/images/full-sized/pico-series.png new file mode 100644 index 000000000..d2da8d096 Binary files /dev/null and b/documentation/images/full-sized/pico-series.png differ diff --git a/documentation/images/full-sized/RP1.png b/documentation/images/full-sized/silicon.png similarity index 100% rename from documentation/images/full-sized/RP1.png rename to documentation/images/full-sized/silicon.png diff --git a/documentation/images/pico-series-SMALL.png b/documentation/images/pico-series-SMALL.png new file mode 100644 index 000000000..d1cd300aa Binary files /dev/null and b/documentation/images/pico-series-SMALL.png differ diff --git a/documentation/index.json b/documentation/index.json index 95de02eec..72a68485f 100644 --- a/documentation/index.json +++ b/documentation/index.json @@ -145,29 +145,23 @@ "path": "microcontrollers", "subitems": [ { - "title": "RP2040", - "description": "Raspberry Pi's flagship microcontroller device", - "image": "full-sized/RP2040.png", - "subpath": "rp2040.adoc" + "title": "Silicon", + "description": "Raspberry Pi in-house Silicon", + "image": "full-sized/silicon.png", + "subpath": "silicon.adoc" }, { - "title": "Raspberry Pi Pico and Pico W", - "description": "Support for Raspberry Pi Pico, Pico H, Pico W, and Pico WH", - "image": "full-sized/Pico.png", - "subpath": "raspberry-pi-pico.adoc" + "title": "Pico-series Microcontrollers", + "description": "Support for Raspberry Pi Pico-series devices", + "image": "full-sized/pico-series.png", + "subpath": "pico-series.adoc" }, { "title": "Raspberry Pi Debug Probe", "description": "Supports Arm Serial Wire Debug (SWD), and acts as a UART bridge", "image": "full-sized/Debug-Probe.png", "subpath": "debug-probe.adoc" - }, - { - "title": "RP1", - "description": "Our southbridge for Raspberry Pi 5", - "image": "full-sized/RP1.png", - "subpath": "rp1.adoc" - }, + }, { "title": "MicroPython", "description": "Getting started with MicroPython", diff --git a/tests/fixtures/index.json b/tests/fixtures/index.json index 644346e9f..233ce8cd4 100644 --- a/tests/fixtures/index.json +++ b/tests/fixtures/index.json @@ -133,16 +133,16 @@ "path": "microcontrollers", "subitems": [ { - "title": "RP2040", + "title": "Silicon", "description": "Raspberry Pi's flagship microcontroller device", - "image": "full-sized/RP2040.png", - "subpath": "rp2040.adoc" + "image": "full-sized/silicon.png", + "subpath": "silicon.adoc" }, { - "title": "Raspberry Pi Pico and Pico W", - "description": "Support for Raspberry Pi Pico, Pico H, Pico W, and Pico WH", - "image": "full-sized/Pico.png", - "subpath": "raspberry-pi-pico.adoc" + "title": "Raspberry Pi Pico-series", + "description": "Support for Raspberry Pi Pico-series devices", + "image": "full-sized/pico-series.png", + "subpath": "pico-series.adoc" }, { "title": "Raspberry Pi Debug Probe",