What is the current consumption of nRF52480 when idle.
I used power profiler to measure it. But I want to know if it is accurate.
What is the current consumption of nRF52480 when idle.
I used power profiler to measure it. But I want to know if it is accurate.
Hi,
If you close the UART(E) with app_uart_close()
, and stop the scanning(comment the scan_start();
, or call sd_ble_gap_scan_stop()
) you should see a couple of µA power consumption.
Note that you on the nRF52840-PDK need to cut both SB40 and SB41 to get accurate current measurements.
Note, you need to power cycle the UARTE peripheral after you call app_uart_close() in order stop HFCLK and DMA bus. See this post
So you need to do it like this when you close the UARTE:
err_code = app_uart_close();
*(volatile uint32_t *)0x40002FFC = 0;
*(volatile uint32_t *)0x40002FFC;
*(volatile uint32_t *)0x40002FFC = 1;
Also remember to disable the log module in sdk_config.h (set NRF_LOG_BACKEND_RTT_ENABLED and NRF_LOG_ENABLED to 0)
Hi,
If you close the UART(E) with app_uart_close()
, and stop the scanning(comment the scan_start();
, or call sd_ble_gap_scan_stop()
) you should see a couple of µA power consumption.
Note that you on the nRF52840-PDK need to cut both SB40 and SB41 to get accurate current measurements.
Note, you need to power cycle the UARTE peripheral after you call app_uart_close() in order stop HFCLK and DMA bus. See this post
So you need to do it like this when you close the UARTE:
err_code = app_uart_close();
*(volatile uint32_t *)0x40002FFC = 0;
*(volatile uint32_t *)0x40002FFC;
*(volatile uint32_t *)0x40002FFC = 1;
Also remember to disable the log module in sdk_config.h (set NRF_LOG_BACKEND_RTT_ENABLED and NRF_LOG_ENABLED to 0)
Really? SB40 and SB41? I only cut SB40 but already got a relatively clean figure.
I have stopped the uart and the LOG and the scan. I measured again and got a periodic wave. The highest current is 70uA and the lowest is 40uA. And the cycle time is about 50ms. Do you maybe have any idea of what causes this wave? I have commented out everything else. This is my whole program.
for (;;)
{
nrf_pwr_mgmt_run();
}
This "wave" is probably the on-chip power regulator working in auto-controlled refresh mode in order to maximize power efficiency. It's completely normal, and lowers the average power consumption. See the quote in this post.
When you measured, what was the average current consumption ?
The average current is about 40uA. I want it to be smaller than this.
When I tested the example(without logging, uart, and scanning) I got somewhere betwen 2-4 uA.
How does your main() function look like now ?