• Member Blogs have been stealth lauched / soft launched. Members who are keen to start a useful informative blog and who will keep it current can contact GerardV to be set up. Blogs that go stale will be archived.

Low power Arm Cortex M4 MCUs

I've been poking around Cortex M4 MCU datasheets for a number of years now, looking for the lowest power (uA/MHz) offerings. The primary purpose is to perform digital filtering functions - initially as an upgrade for SAA7220 in oversampling DAC designs. For a long while the best bang for the Watt in the general purpose space (excluding chips with fancy radios on-board which are normally rather limited in their maximum MHz) came in the form of the STM32F401/11 which take ~130uA/MHz and go up to 100MHz for the 411. The STM32G4 range arrived more recently and offers a higher top end and a richer peripheral set but roughly equivalent energy efficiency to the 411. STM32L4 manages to do slightly better at 110uA/MHz but tops out at 80MHz. Its 'low power' designation really comes from its low leakage rather than the energy efficiency of its CPU.

Over in the NXP stable there is the LPC550X (using Cortex M33 a newer design which is roughly equivalent to the M4) which delivers stunning numbers for uA/MHz. Until you read the fine print that a DC/DC converter is involved that is. So the currents are those drawn at the input to the DC/DC rather than what's drawn by the CPU itself. When that's taken account of, the device is still nicely efficient, in the 100uA/MHz region but the DC/DC converter is an unknown source of noise which I'd prefer to avoid if at all possible. Furthermore, its maximum clock speed is 96MHz. The LPC552X goes up to 150MHz but loses some of the attractive efficiency of its baby brother at that high clock. LPC54114 goes up to 150MHz with 17mA supply (no DC/DC) so that makes it about the most attractive NXP part. I haven't looked in depth at Kinetis branded parts recently but K24 headlines at 250uA/MHz so clearly not in the same ballpark.

There have been some Chinese vendors putting out M4s of late, GigaDevice was the first of these I looked at, GD32F303 runs ~200uA/MHz and is very cheap. However about 3 months ago I came across another part from a vendor I'd not met before, XSHC, as a very cheap (20RMB, $3) development module on Taobao. Being so affordable I felt compelled to check it out, however there is no datasheet in English as far as I'm aware. LCSC has stock https://www.lcsc.com/products/Microcontroller-Units-MCUs-MPUs-SOCs_11329.html?keyword=hc32f460
Wifey got hold of the Chinese DS and it wasn't too hard to figure out the uA/MHz from that - just under 100uA/MHz most of the way up to 200MHz. But it might not be an apples-apples comparison as the master oscillator current isn't included in that. Still at under $2 for the chip at official prices (cheaper on TB) and $3 for the module this has to be the winner. I just need to get a translation sorted out now.... The preliminary efforts I've so far made indicate it has enough functionality, including 4 * I2S, a TRNG and 192k SRAM though only 32k of that is able to run at 0 wait states.

<later> Attached first pass at translating the interesting meat of the DS, the outline descriptions of the functionality supported. Had to .zip it because .rtf isn't supported.
Development files here for Keil uVision use : https://github.com/ANYCUBIC-3D/HDSC_SupportPackage
Aliexpress purchase link : https://www.aliexpress.com/item/100...!sea!HK!2609685283&curPageLogUid=NDfczG45ooJ3
 

Attachments

  • DS_HC32F460系列数据手册_Rev1.42.pdf
    2.2 MB · Views: 157
  • HC32F460_DS_eng.zip
    9.9 KB · Views: 87
Last edited:
  • Like
Reactions: 1 users
At long last, there is now an evaluation/development board for the HC32F460 at a reasonable price ($2.4) on Aliexpress : https://www.aliexpress.com/item/1005003651371848.html

There is also an even faster (240MHz) M4 board using an Arterytek device at a very slightly higher price - https://www.aliexpress.com/item/1005004842376803.html. I've not yet investigated the power efficiency of the AT32F403 but undoubtedly there's a lot of bang for the buck there.

I see Ali also has an extremely affordable STM32G431 board here. Its a bit slower (170MHz tops) and has less SRAM but on the upside there's a hardware DSP acceleration unit and some high-speed ADCs and DACs. Its power consumption is a bit more than the HSDC chip at higher clock speeds but if you don't need the full processing capability it turns in some impressively low power draws at very low clock speeds. For example at 4MHz it sips around 600uA.
 
Last edited:
STM recently introduced a family of 'ultra-low power' Cortex M33s, the STM32U5 series : https://www.st.com/en/microcontrollers-microprocessors/stm32u5-series.html. Cortex M33 looks very similar to Cortex M4 but with 'Trustzone' security functionality added. When I've looked in more detail at the numbers for MCUs headlined 'ultra-low power' in the past I've found excellent stop/standby performance but rather lack-lustre run performance. However the STM32U5 looks on the surface not to fit the mold, here is the headline number :

image_2024-01-30_141806475.png


That's jolly impressive, about 6X lower power than the HC32F460. So I decided to take a closer look.

Here is the table in the DS that number is taken from (p144)

image_2024-01-30_142205015.png


The rows there represent different code running on the device and the bottom row is a while(1) loop. Which means the CPU isn't doing anything useful at all, just branching back on itself. If you actually want to do some useful work then you'll need about 50% more juice than the headline number.

The second reason the uA number seems very low is because this device has a buck converter built in - notice how the uA numbers go up as the supply voltage goes down? If you don't want to use the buck converter (perhaps for EMC/noise reasons) then the LDO figures turn out to be quite a bit poorer :

image_2024-01-30_143021934.png


The buck regulator is giving about a 3X reduction in the current consumption. Which tells us that the CPU itself is likely running around 1V supply and the LDO is dissipating twice as much as the CPU.

Just how much raw performance can we get from a CPU running around 1V? Turns out the maximum for this supply voltage is 24MHz for a CPU which is rated to run at 160MHz max. If you want the full performance you'll need the highest supply voltage and then you get this (assuming LDO, not buck) :

image_2024-01-30_143720218.png


Middle column is MHz and right, mA. So around 80uA/MHz, not bad at all but a far cry from the headline number.
 

Attachments

  • stm32u535cb.pdf
    5.9 MB · Views: 70
I keep my eyes peeled for lower powered M4s and in the past week I came across this one, thanks to a reference I followed up here https://www.cnx-software.com/2024/0...u-energy-harvesting-battery-free-iot-devices/. Of all the M4s I've looked at the Silicon Labs BG22E has the best uA/MHz numbers when not using a buck converter for the 1.8V CPU supply : https://www.silabs.com/documents/public/data-sheets/efr32bg22-datasheet.pdf. Bottom line, from 40-55uA/MHz at max clock (76.8MHz), depending on software.
 
This one's an M0+ rather than an M4 but the power efficiency is around 50uA/MHz. I'm including it not just because its low power but because its ridiculously cheap on Taobao - about 1/10th of the price of the HC32F460 and probably delivers about 1/10th the performance : PY32F002A. Over at the EEVblog, poster David Alfa has uncovered that its actually a higher spec part than it claims to be in the DS. If that's a reliable, consistent finding for all parts then it's actually only 1/5th the performance of the F460 which makes it one phenomenal bargain : https://www.eevblog.com/forum/micro...-24mhz-320kb-actually-324kb-more-peripherals/

<Update> I searched for quite some time for an English version of the PY32F030 reference manual, eventually found it on a Google Drive linked in David's thread. Too large to upload in one file so I've split it into 2. It applies to almost all the features of the PY32F002A except the LED driver's not available. This chip is truly phenomenal value for money.
 

Attachments

  • PY32F002B.datasheet.EN_V0.3.pdf
    2.3 MB · Views: 88
  • PY32F030.datasheet.Rev.1.4_EN.pdf
    1.4 MB · Views: 38
  • PY32_1_1-180.pdf
    5.1 MB · Views: 21
  • PY32_1_181-end.pdf
    5.3 MB · Views: 17
Last edited:
For some reason I didn't catch on when these STM32H5XX were released last year but they turn in some quite respectable figures for uA/MHz. To me 'respectable' means <100uA/MHz. The other thing going for them is their top speed of 250MHz, I don't know of any other M4 or equivalent that runs higher - except when part of a multi-core perhaps.

Here's the most optimized configuration current draw vs MHz chart. Its slightly ahead of the STM32U5 above and also beats the HC32F460 but has fewer useful peripherals like SPI and I2S than the F460 and much less RAM :

STM32H50X_20240511105907.png

The STM32H5XX range comes with an 8k instruction cache which practically guarantees programs that can fit within 8k will run at 0 wait states.

Aliexpress has a seller of eval modules : https://www.aliexpress.com/item/1005006858700513.html
 

Attachments

  • stm32h503eb.pdf
    2 MB · Views: 28
The decently low-powered M4s just keep on a comin'. Here's another Chinese vendor comfortably achieving under 100uA/MHz. It goes up to 128MHz, has 16k RAM upto 64k Flash and a 4.7Msps 12bit ADC. The 2 SPIs support I2S in half-duplex : https://www.nationstech.com/uploadfile/file/20220907/1662537237596850.pdf.

Artery Tech AT32F421 just manages to slide under the wire power consumption-wise, these are about the cheapest M4s I've found. On Aliexpress you can find them for under $0.40 if you buy a handful, on Taobao they're in the 1-2RMB region. Looks like they're pretty bare-bones though, no mention of floating point and apparently no Flash acceleration so you're running with 3 wait states at max clock (120MHz) unless you can fit your code into SRAM.
 

Attachments

  • AT32F421_V2.02_EN.pdf
    2.4 MB · Views: 10
Last edited: