Skip to content
0:00 / 0:00

#raspberrypipico#rp2040#pio

In-depth: Raspberry Pi Pico's PIO - programmable I/O!

stacksmashing

229K subscribers • 15 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by stacksmashing
  • Linked in the descriptionraspberrypi/pico-examples

Intermediate. Assumes working knowledge.

176K views5 years ago2 recommendations

HardwareSystems programmingCPUs and computer architectureEmbedded systems

An in-depth technical exploration of the RP2040 microcontroller's unique Programmable I/O block and how it works.

In this video we take an in-depth look into the new Raspberry Pi Pico/RP2040 high-speed programmable I/O system: PIO! For a high level video check youtube.com/watch?v=o-tRJPCv0GA! I know this video is quite fast-paced and dense, but I'm trying to experiment with different formats for these in-depth videos :) Errata: - - the register is always decremented, not only if the condition is met - - The pin will be OFF for one cycle and ON for 2 cycles - said it the other way around accidentally - Luke on Twitter: twitter.com/wren6991 - Pico PIO examples: github.com/raspberrypi/pico-examples/tree/master/pio - C SDK Book: datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-sdk.pdf - BBC Micro Emu on the Pico: youtube.com/watch?v=WaPJmCgseQw Links: - Twitter: twitter.com/ghidraninja - Patreon: patreon.com/stacksmashing Timestamps: ​ - Intro ​ - PIO architecture - The state machine ​ - IO Mapping ​ - Set Instruction ​ - Jump Instruction ​ - Mov Instruction - In/Out Instructions - Push/Pull Instructions - IRQ Instruction - Wait Instruction - Delay - Side-Set - Program Wrapping

Why it's here

2 people recommend this

What people say. Recommended as a mandatory watch for understanding the powerful PIO capabilities of the Raspberry Pi Pico.

Moments people linked to

u/FunDeckHermitin r/embedded • Recommends

On “What are some microcontroller companies that value hobbyists?”

The PIO feature is really interesting.

u/FunDeckHermitin r/embedded • Recommends

On “RP2040 development”

I have made a BLDC motor controller with a Pi Pico. 1. Development is quite easy as it's just plug and play. Write code and put it on the pico through USB. PIO is quite a learning curve but it is very very powerful if you need something specific. 2. Dedicated USB hardware or tinkering with PIO Mandatory PIO YouTube video GitJer's repository Blues Blog
5View on Reddit

u/Lekgolo167in r/embedded • Recommends

On “Does the RP2040 bit-bang its SPI interface or is there dedicated hardware? If the latter, which memory addresses do I 'byte-bang' to directly interact with an SPI peripheral?”

I guess I should be a bit more descriptive with that explanation. The pins are like 1-10, 21-24 for SPI0 but the SCLK for example would be pins 4, 24 or 8. I guess a better way to word it is the controller's SPI interface is routed out to a lot of pins (not that the pins functionality can be routed to any pin) . But still more flexible than only have 2 ports. If you're new to the Pico you may also find the programmable IO very interesting (see more here link to this video basically mini-state machines that control the IO.