| (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. |