Hi,
For simple products where an 8-bit micro is more than enough, there is some push to use 32-bit because it is arguably cheaper nowadays and the SW team is more up to speed on these platforms. For low volume, this is probably true, but for high-volume/low-cost products I am not so sure…
I am looking for long term alternatives to the 32bit STMs that we are currently using.
What 8-bit micros are you using?
Thank you
The sweet spot for me is the 16-bit PIC24 family for performance, maturity, breadth of features, ease of development, and ease of moving up to the dsPIC33 for more speed, but I’m not doing any high-volume cost-sensitive stuff these days.
There is a pretty big range of high-volume cost discussion… if it’s not insanely price sensitive there is still a lot of room in the 32-bit space IMO. Besides some lower-cost mainstream options (like STM32F0) you can get high performance for low cost ($0.50 - $2) from places like GigaDevice (GD32x is basically a STM32 clone), or their RISC-V core offerings. I’ve seen GD32 parts showing up in what I would call “reasonably respectable” end user products FWIW.
If you want even cheaper WCH microcontrollers (CH32 series) are similar clones but even cheaper (<$0.50), although those I can’t say I’ve ever tried. Again they also have their own models besides just clones too.
For either of those we’re talking LCSC ordering for protos, but if you’re doing high-volume presumably it’s eventually being made somewhere that is closer to those supply chains anyway.
For me I mostly use 8-bit where there is legacy code supporting it, where I need specific peripherals that the micro family has, or some 8-bit chips are using older processes and empirically I’ve seen them be more resilient to e.g., ESD problems and electrical noise.
I’m also a big fan of the pic24 and dspic33. most of my team, however, like the pic32s a lot (we also are mostly working on low volume less cost sensitive products like med devices)
Does the PIC18 require RAM bank switching? That’s a nightmare for me (I code in assembler) and the cost differential vs PIC24 is not enough to compensate for that pain. Also PIC24 has multiply and divide instructions.
I think using the PIC18 in assembly can be a bit painful. You’re operating in 256-byte banks if you want high-efficiency instructions. There are instructions that can access the full memory map directly, but they take two opcodes instead of one, and the architecture only supports multiplication (no hardware divide).
We always use it in C, and the compiler is actually quite effective. That said, if you need more math-heavy processing, the PIC24 is definitely the way to go. We used its “steroids” version, the dsPIC33, and it’s a little beast.
We once implemented a low-frequency (125 kHz carrier) software-defined radio using its high-speed ADC as a down-converter and performed all the DSP functions to decode the data in software. It was a really fun project to work on.
I took a quick look at it, and it looks quite good. We haven’t used TI much lately — we used the MSP430 extensively for years, but it started to become expensive and hard to source
I swapped STM 8 bit for PY32F series. 32bit for 10c. Based on ARM M0+ well known architecture. At that price there is no point in using 8 bit anymore. For some reason western distributors do carry the PY memory chips but not their PY32Fxxx micro controllers. Politics ?