Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Why are the ultra low power MCUs all 32-bit? I assumed 8-bit would sip less

Why are the ultra low power MCUs all 32-bit? I assumed 8-bit would sip less

Çözüldü 4 3

Backend developer, getting into the device side for our energy monitoring kit. We’re picking an MCU for a battery sensor that wakes every 5 minutes, reads a CT clamp, sends over LoRa, sleeps. It reports to Hermetry through a gateway.

My naive assumption was that an 8-bit MCU (an ATmega328P, say) would draw less than a 32-bit ARM because it’s “smaller”. But every “ultra low power” part I’m pointed at is a Cortex-M0+ or M4: STM32L0, nRF52, MSP430 is 16-bit, EFM32… Why? What am I missing about where the power goes?

♥ 0

Following, we pay for battery swaps per site visit so this matters to me more than any datasheet number.

♥ 2

I went down this hole for a garden sensor last year and the answer turned out to be energy per job, not current.

A battery device spends 99.9% of its life asleep. What empties the battery is (sleep current × sleep time) + (active current × awake time) + the radio. The core width hardly matters for sleep current: that’s set by the process the chip is made on, the RTC, the RAM retention and leakage. Modern 32-bit low power parts are made on newer, leakier-in-theory but better-managed processes with power domains you can switch off, and their sleep currents with RTC running are around 1 µA or less. An ATmega328P in power-down with the watchdog running is in the same ballpark at best, and with brown-out detection on, worse.

When awake, a 32-bit core finishes the job faster. Reading a 16-bit ADC result, doing a few multiplications for RMS current and building a packet is many more instructions on an 8-bit AVR than on a Cortex-M0+, at similar µA/MHz. Fewer cycles means less time awake, so less energy, even if the current while running is similar.

And the peripherals: the low power ARM parts can run the ADC, DMA and timers while the core sleeps, so the core wakes once with the result ready.

In my case the MCU choice turned out to be noise next to the radio: one LoRa transmit costs more than an hour of MCU sleep. Spend your effort on how often you send.

If it isn't logged, it didn't happen.
Kabul edilen çözüm♥ 9

That makes sense, thanks Maria. Energy per wake-up was the idea I didn’t have. We’re going with an STM32L0 and we’ll measure a full wake cycle with a power profiler rather than reading datasheets. And yes, the transmit interval is now the main discussion.

♥ 0

Good. Fewer transmits means fewer site visits, I’ll take it.

♥ 1
5 yazı görüntüleniyor – 1 ile 5 arası (toplam 5)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş