What's the best way to measure sound at very lower power?
The input part

Electret microphone usually require a current from 100µA to 800µA (given in their specifications). This is low power, but not low power enough for your application, it seems.

MEMS microphones seem to require about the same amount of current. I found a few, however, that need low current and seem to be relatively easily available:


Knowles SPV1840LR5H-B: about 50µA
Cirrus Logic WM7331E: ~55µA
InvenSense ICS-40310: 16µA only!! - Mmh, there may be some compromise somewhere...


Another option would be to use a piezo element. Their frequency response is poor, and I am not sure about the sensitivity you'd have, but here, the advantage is obvious: they don't need power at all (it is even used to harvest energy - well, you'd need to knock the device to a table to get some useable power, though).

An option that could be considered, if the sound level to detect is constant (when present), and if you can tolerate some latency when the sound comes, would be to power the microphone bias only 1/10th of a second every second, for example. That would divide the overall consumption by 10. Of course, this depends on your application, and this may affect the mic performance.

The amplification part is less challenging, there are plenty of ultra low power opamps available.

The MCU part

To keep the power usage as low as possible when there is no sound (which is, I suppose, the case most of the time), instead of checking the sound level from the MCU software, I would use a hardware comparator.

Checking the sound level from the MCU means regularily sampling the signal through the ADC, which means the MCU must be awoken, and the ADC powered. This will use significant power, especially considering the fact the sound must be sampled at a relatively high frequency (a few kHz, depending on the maximum sound frequency you want to be able to detect).

On the other hand, a comparator can use very low power (there are some cheap ones that consume only a few µA of current) and will be constantly monitoring the sound level, triggering an interrupt and awaking the MCU only when the required sound level is actually reached. Then, from the MCU, you can sample the waveform through the ADC. So the mic needs to feed both the comparator and the MCU ADC.

In your specific case, you're using nRF51822 which has an internal low-power comparator (LPCOMP). You can use it instead of an external, additional chip. Moreover, you can choose to feed the reference input of the LPCOMP with any multiple of Vdd/8 (up to Vdd*7/8), which is very handy here, if your supply voltage is fixed.

Note that there is no need to rectify+filter the signal. It doesn't matter if you're missing each lower half of the signal wave. If the interrupt can be correctly triggered from the temporary event raised by the comparator when the upper half of the input signal exceeds the reference, it's enough.