PIO is great but the competition has working silicon and SDK for all of the common peripherals while RP gives you crappy example code. Want to connect to an audio codec with I2S? Almost every MCU has this built in but for RP2040/RP2350 you'll have to roll your own production quality version from a demo that only shows how to send. Years after release.
Here you go, I2S output:
https://github.com/bschwind/rp2040-i2s/blob/e1d5647704b03ad1...
And I2S input:
https://github.com/bschwind/rp2040-i2s/blob/e1d5647704b03ad1...
The RP2040 has great documentation and the PIO is an amazing swiss army knife of a peripheral. I've had no trouble learning from their datasheet and docs and making plenty of PIO programs.
Maybe totally my fault for being dumb, but the ESP32 has an I2S peripheral and after days combing through docs and web searches I never actually got it working, mostly because it seems to have been barely documented and its usage was by twiddling magic registers etc. I’d say personally some nice example PIO code that I can actually read through, understand, and modify for my needs is actually better…
> I’d say personally some nice example PIO code that I can actually read through, understand, and modify for my needs is actually better…
I agree and that's why its disappointing RP still provides half-baked examples instead of real working implementations of the common peripherals other manufacturers are supporting.
https://github.com/malacalypse/rp2040_i2s_example
It's almost as if different equipment can serve different purposes...