Hi,
One question I had a while back that I didn't find a great answer to is the following --
Which current 32 bit SOC MCUs like Cortex-M0 or similar can acquire ADC data and process it in
essentially real time (maybe with some buffering if needed) at XX kHz or XXX kHz rates and achieve ultra low power consumption while doing so?
Basically I wanted to do a small amount of processing of something like continually digitizing audio and doing a bit of filtering / analysis on it but at XX microamp level average power consumptions.
The problems I found with several devices I looked at from Cypress, TI, SiLabs, and Nordic were:
(a) the MCUs had high power consumption for ADC operations and although the peak currents were high that could be OK except many had also high sustained overall ADC currents, and on several the ADC / reference could not be placed in idle / sleep / off / low power mode and still woken up in time to process the next sample within XX to XXX microseconds.
There only seemed to be a couple discrete "ultra low power" 12 bit+ ADCs that could run at XX kHz, few or no MCU integrated ones, and of those the latency to wake up / sleep was high and the overall microamps power consumption seemed questionable.
(b) The ARM CORTEX M MCUs had basically uselessly high "sleep" mode power consumption (milliamp range maybe or even XXX microamps and that's without even doing the acquisition / processing job). So "sleep" wasn't a solution.
(c) The C-M MCUs often had fine "deep sleep" or similar power modes with low enough current consumption, but they would all be specified to take too long to "wake up" to any mode where data processing / acquisition could happen so that it could not keep up with 10kHz++ sample rates if set to deep sleep between samples.
(d) The C-M MCUs investigated generally were not specified to have their processing units able to be clocked down to where they could run at XXX kHz or so overall clock rates. I know that "hurry up and get idle" is often a good strategy for power consumption so running at X or XX MHz for a burst and then going to deep sleep is often a good strategy for minimizing overall power consumption but that can only be done if the MCU can deep sleep and wake fast enough to handle the task / sample rate. So if that could not be done then it might be interesting to see if a MCU could be clocked to run from a 32kHz or 500kHz or whatever low frequency so that dynamic power consumption could be minimized and maybe therefore the faster to wake "sleep" mode might be usable with adequately low power consumption, but most MCUs I saw weren't well specified to run from DC to XXX kHz or even 32kHz to sub-1MHz rates. I guess some might have been able to do so but if so either the ADC or static power consumption seemed high or the specification for the static+dynamic power consumption in such low clock rate regions was too poorly specified to inspire confidence or so on. It would be interesting to know if in specification or in practice what ULP C-M MCUs can actually *run* at kHz or maybe 1MHz clock rates without requiring an external or internal oscillator / master clock as X MHz+ rates that would itself consume quite a bit of needless power. Being able to run a MCU off, say, 32kHz LFXTAL would be interesting as a mode of operation particularly if the latency to boost it up to X MHz for a burst of processing could be low so it could mode-switch in a few microseconds or less.
(e) The possibility to use some kind of sub-sleep maybe deep sleep or intermediate power mode which affected the MCU core but the ability to leave integrated peripherals like ADC, analog comparator, analog op-amp or whatever active and useful for signal processing in that mode would be interesting and useful in such applications. Ideally one could start an ADC conversion and put the MCU to deep sleep for 50 microseconds or whatever while the ADC converted and then wake up to read / process the last sample and begin the conversion of the next one. But all C-M MCUs even the "ultra low power" ones from TI, SiLabs, Freescale, ST, ... seemed to be totally incapable to leave the ADC, opamps, comparators or whatever on and processing (and achieving low power consumptions) when the MCU was in anything substantially lower than "sleep mode" itself. That seemed like quite a flaw since either you have way too high static / average power consumption or you can't do the processing in time.
Even the TI CC2650 with the integrated "sensor controller" coprocessor / peripheral system did not seem capable of this kind of continuous real time processing with XX or low 1XX level microamp level power consumption at 10 to 50kHz or so sample service rates. I guess an external MSP430 or something in a whole different class of MCU might be able to do it but then a bigger C-M processor would often be needed for other aspects of the system I envisioned so overall the size / space of a multi-MCU solution was not so attractive.
I looked at DSPs used in things like hearing aids and such but even those seemed to be either inadequate or marginal for the level of power consumption and capability, though I'm sure some ASIC ones could, the few COTS DSP solutions seemed marginal.
So what platforms or tricks do you know of for processing truly real time mixed-signal streams at XX kHz rates and still running from battery power like a mobile device might?
Are there MCUs or ADCs that I missed seeing that can do exceptional synchronous processing by either fine grained control of peripherals in sleep modes, fine grained clock / sleep control or so on?
Also I wondered about oscillators, it seemed like there were only one or two (and not so available) oscillators specified for say 1-4MHz range operation while taking only say under 20uA current levels. There were plenty of low current 32kHz oscillators. And I did not notice anything like an external variable rate oscillator that could be (at very low power) switched between say XX kHz rates and X MHz rates which could be interesting if there actually was a MCU that could operate off such an external and variable frequency clock source. Ideally of course the internal LF / main MCU oscillator would have high dynamics of fast start / stop / frequency control but that did not seem to be the case with the MCUs I saw to the extent that the result would be XX or (1-2)XX uA level power consumption.
Thanks in advance!