| I'm referring to their collective effort in MCUs, including RP2040 and RP2350. There are a bunch of issues that are now addressed but permanently makes me distrustful of them especially when combined with how uninteresting the hardware are - Broken ADC design on RP2040 with nonlinearity at certain codes (and they're not fixing it) - Shipping chips with exact part number of inductor and specific DCDC layout requirement (like come on, the Chinese are advertising zero decoupling capacitor required and you can route the USB right under the chip in funky shapes and everything "just works".. meanwhile RPi is doing this) - GPIO current leakage (fixed with a stepping but I would hate to be those who bought a reel of the earlier stepping) "Actually good MCU products" in my opinion are those with at least a reason to exist. For example the ubiquity of STM32, the radios of ESP32, the high compute of i.MX RT1172, the cheapness of PY32 et al, the low power of Ambiq chips, the reliability of Atmel/Microchip, the USB3 on CH569, the potential true MCU-level-SoC-capability on AG32, etc. When compared with these, RP chips are frankly not innovative at all (PIO does not unlock much actual capabilities besides party tricks). Combined with the general culture of people hyping RPi Pico chips, it results in a culture of ignorance and hype. Erratas alone aren't a big deal, but the fact that they're happening with such basic things and for no innovation is not a good sign. We shouldn't give RPi a pass just because "it's the good old RPi that we know" |
I implore you to open up the errata sheet of stm32g4, just the ADC section alone (or frankly any stm32 mcu) (https://blog.mjbots.com/2023/07/24/stm32g4-adc-performance-p...), and that's an MCU series with focus on analog peripherals.
Stm32 chips are plagued with all sorts of issues and hardware bugs that are very easy to run into. In comparison rp2040 has surprisingly few major defects apart from its ADC implementation.
I see no mention of exact part number of inductor requirement in their hardware design guide, are you making shit up now? They are somewhat more particular in oscillator selection, and unfortunately don't include factory trimmed RC oscillator like most MCUs do these days.
> PIO does not unlock much actual capabilities besides party tricks
Ok, so you've no idea what you're talking about.
RP2040 is widely used in many projects because it has insane bandwidth for MCU in its price category. It can do 4 x 32bit reads/writes per cycle (if those ops are spread across 64kb x 4 memory banks), at 200mhz base clock, which gives theoretical maximum of 3.2 gigabytes per second bandwidth. That is pretty crazy.
This enables you to interface with or easily emulate many highspeed interfaces. And do things like 24ch 400mhz logic analyzers and similar. And this is what they are commonly used for (emulating memory cards, etc)
And that's a 60cent MCU. In this price range MCUs don't have 264kb of SRAM and 133/200mhz much less with two cores, that can push anywhere remotely this insane amount of bandwidth.
rp2040 additionally has human friendly and readable documentation, with truckloads of examples, and API that's pleasant to use. (can't exactly be said about stm32 ref manuals and APIs).
While it is not perfect (rp2040 ADC, and lacks encryption), some of those shortcomings have already been addressed in rp2350, with double sram (520KB at this price point!), floating point, even more PIO, more improved DMA channels and so on.
While cheap py32, gd32, apm32, etc are cool, but they just generic arm32 m0/m4. A 10 cent 24mhz m0 puya with 3kbs sram, isn't particularly impressive when put next to 60cent rp2040 with 80x sram, etc
> Combined with the general culture of people hyping RPi Pico chips, it results in a culture of ignorance and hype.
You haven't opend an errata sheet of stm32 chips even once and you talk about ignorance.
rp2040/rp2350 are unironically one of the best MCUs on the market (esp. in their niche), both in documentation/API and price/perf and features/flexibility in doing highspeed interfaces/bandwidth.