Knowing the RP2040
Minimum price
Suggested price

Knowing the RP2040

A Guide for Programmers

About the Book

In this book you will learn all the details of the RP2040 microprocessor (used in the Raspberry Pi Pico and other boards) and how to leverage them in amazing applications.

The book is now complete (Updates may be available in the future with fixes or additional material)

  • Share this book

  • Categories

    • Computers and Programming
    • Embedded Systems
  • Feedback

    You must own a copy of this Book to access the forums.

    Email the Author(s)

About the Author

Daniel Quadros
Daniel Quadros

Hi, my name is Daniel Quadros.

I am an Electronic Engineer, but have always worked as a software developer. Hardware is a hobby for me, and the last two decades a had a lot of fun with microcontrollers and participating in the Garoa Hacker Clube.

I have a blog and YouTube channel, both in Portuguese (I live in Brazil).  More recently I started a blog (in English) about my experiences with the Raspberry Pi Pico (and other boards based on the RP2040).

In the 80s I wrote a few book about programming the IBM PC in Assembly language. It took me a long time, but I've started writing books again!

Table of Contents

  • Introduction
    • What this Book is About
    • The SDK functions
    • The Examples
    • Whom this Book is For
    • Acknowledgments
    • Updates
    • How to Send Feedback
  • The RP2040 Architecture
    • Processor Subsystem
    • Bus Fabric
    • Address Map
    • Clock Generation
    • Memory
    • PIO
    • Peripherals
    • IOs
    • Future RP Microcontrollers?
  • The Cortex-M0+ Processor Cores
    • Unprivileged and Privileged Execution
    • Debugger Support
    • Memory Protection Unit (MPU)
    • Instruction Set
    • SIO
    • Systick Timer
    • Selected SDK Functions
    • Example
  • Reset, Interrupts and Power Control
    • Reset
    • Interrupts
    • Power Control
  • Memory, Addresses and DMA
    • Memory in the RP2040
    • Addresses
    • Direct Memory Access (DMA)
    • DMA Usage Examples
  • Clock Generation, Timer, Watchdog and RTC
    • Clock Generation
    • Timer
    • Watchdog
    • RTC
  • GPIO, Pad and PWM
    • GPIO Overview
    • Function Select
    • PADs
    • Digital Input and Output
    • GPIO Interrupts
    • PWM
  • The Programmable I/O (PIO)
    • The PIO State Machines
    • The FIFOs
    • Programmer’s Model
    • PIO Configuration
    • Interrupt (IRQ) Flags
    • The Instructions
    • Flow Control
    • Coding, Compiling and Running PIO Programs
    • PIO Assembly Language
    • Selected SDK Functions
    • Examples
  • Asynchronous Serial Communication: the UARTs
    • Framing
    • FIFOs
    • Control Signals and Hardware Flow Control
    • Baud Rate Generation
    • UART Status and Interrupts
    • Pins Options
    • Selected SDK Functions
    • Using the UART Registers
    • Example
  • Communication Using IC
    • IC Basics
    • IC in the RP2040
    • Selected SDK Functions
    • Slave Library
    • Examples
  • Communication Using SPI
    • SPI Basics
    • SPI in the RP2040
    • Selected SDK Functions
    • Example
  • Analog Input: the ADC
    • Overview
    • Modes of Operation
    • Accuracy of the ADC
    • Temperature Sensor
    • Selected SDK Functions
    • Example
  • A Brief Introduction to the USB Controller
    • USB Basics
    • Hardware
    • Device Classes
    • TinyUSB
    • Using the USB
    • The HID Device Class
    • Example - Emulating a PC Keyboard
    • Example - Connecting a PC Keyboard to the Pi Pico
    • Example - Serial USB Adapter
  • Conclusion
  • Appendix A - CMake Files for RP2040 Programs
  • Appendix B - Using stdio
    • Selected pico_stdio Functions
    • Selected pico_stdio_uart Functions
    • Selected pico_stdio_usb Functions
    • The printf Function
  • Appendix C - Debugging Using the SWD Port
    • Picoprobe Connections
    • Software Installation
    • Debugging from the Command Line
    • Debugging from inside Visual Code
  • Appendix D - Accessing the RP2040 Registers
    • Registers Addresses and Basic Access
    • Special Write Operations
    • Using the SDK Functions for GPIO Output

The Leanpub 60-day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $12 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub