I am working on a product based on the nRF52832 (using the Rigado BMD-300 module) which is basically a data logger with a BLE connection for offload. I am running FreeRTOS and using SDK 14.2.
Currently I measure the power draw at about 1.2mA and I have not been able to find the main culprit of this higher power. I believe I have set all the GPIOs appropriately (unused pins as outputs driven low, no pull-ups where the board has them already, no static draws due to pull-ups being on, etc.). The application uses the UART, 2 TWI buses, and The SAADC. In the Idle Task, I have a __WFE() call, although I have also tried the sd_app_evt_wait() call and both seem to have very similar results (from a power draw standpoint).
I have measured the power that the board takes as well as what just the BMD-300 takes and just about all the current draw is to the module/nRF52. I have also tried just creating the app tasks and OS objects (with all tasks in suspended state), then just starting up the scheduler with no tasks running (except the Idle task and the FreeRTOS timer task. In this case, I still see about 0.5mA draw.
I should note a few other details: 1) logging is disabled; 2) board has a 32kHz crystal loaded; 3) boot sequence before launching schedule includes a call to nrf_drv_clock_init(), nrf_drv_clock_lfclk_request(NULL), initialization and enabling of the s132 SD, call to sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE), a call to nrf_pwr_mgmt_init(), and initialization of all GPIOs.
I realize it may be very difficult for someone to accurately diagnose what might be going on from a power perspective, but I was hoping there might be a pointer to a short list of items to investigate. As well, if there is any guide or app note that describes a how to diagnose power issues, a pointer to that would be great. I think the main issue might be that the CPU is not ever actually sleeping (or very rarely), but I don't know how to instrument the system to determine that. If there are some key registers to examine or methods to route CPU activity to a test/debug GPIO, that would be great to know as well.
Thanks for any assistance.
-Mark Bianchi