• 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: 117
  • HC32F460_DS_eng.zip
    9.9 KB · Views: 64
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: 31