Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

(I am very much not an expert)

You're missing something but it's actually easy to get confused about.

GPIO: general purpose input/output. A pin that can be used by the main CPU core(s) to interrogate the outside world.

PIO: programmable input-output. A small, I/O dedicated state-machine that can be custom-programmed in a minimal assembly language to handle I/O tasks/simple protocols/state management, over GPIO/I2C/SPI etc., without taxing the primary CPU.

https://www.raspberrypi.com/news/what-is-pio/

https://tutoduino.fr/en/pio-rp2040-en/

Some microcontrollers have basic features a little similar, but it's something the RP series is taking a lot more seriously than most. The RP2040 has eight of these PIO state machines; the RP2350 has 12.

There are some astonishing examples of what these things can do. But basically think of these as delegated GPIO/SPI/I2C etc. co-processors that can blaze away at high speeds on I/O tasks without needing the main cores until something "high-level" occurs.



Makes sense. I’ve worked a lot with multipurpose gpio that can also be configured as spi or i2c but this is another step beyond that. Thanks to everyone for this!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: