Hi,
during normal operation, my device shows a power consumption of 4.7mA. Normal operation is:
- accelerometer (lis2dh) detects a shake and wakes up the nrf51 via GPIO toggle
- nrf51 gets via SPI the incoming accelerometer data
- nrf51 does some statistic calculations with fix math as the nrf51 has no FPU
- accelerometer detects no more movements then
- nrf51 searchs the last record in the flash
- nrf51 stores one data record into the next free flash address
- nrf goes to sleep
Effectively my device is not more than a data recorder.
The normal operation takes around 4 to 5 seconds and occurs up to 1000times a day. During this time period, the current draw is 4.7 mA. The overall consumption during sleep and advertising are within the expected limits (e.g. 9uA, 70uA). But with that high consumption of the normal operation cycle the battery (CR 2032) is drained much to fast.
The Lis2DH is a low power ic and runs in low power mode of 25Hz (11uA). The nrf51 is also running at low speed of 25Hz. I have chosen SPI over TWI for its lower consumption. The fix math operations are mostly averaging values, power and square root calculations. And i am using SD110, SDK 9.0.
So I am wondering what causes the high consumption and how can I reduce it? Is maybe searching and writing to the flash very power consuming? Are there any reference values available, e.g. mcu consumption on high load, consumption reading, writing the flash?
Any hints are greatly appreciated Johannes