how to enter low power mode

sdk:17.1
example: ble_app_uart+ secure_bootloader.

HI
I want to do a demo recently. The application scenario of this demo is that in low-power mode, the RTC wakes up every 1s and performs ADC initialization to detect whether a touch sensor has input. If not, continue to low power. Get up and work if you can.
But now I'm wondering,
1. How to enter the low-power mode and what function to call to enter it?
2. What do I need to do with other peripherals and Ble before entering low power mode?
(For example, what does adv need to do in idle?)

3. Does low-power implementation require a bootloader?

Looking forward to your reply and Is there a routine you can refer to? thank you very much

Parents
  • Hi,

    The application scenario of this demo is that in low-power mode, the RTC wakes up every 1s and performs ADC initialization to detect whether a touch sensor has input. If not, continue to low power.

    I have made an example application showing how to achieve low power SAADC sampling at low intervals. This does not use a SoftDevice, but the functionality should be transferrable to a BLE application as well.

    1. How to enter the low-power mode and what function to call to enter it?

    The CPU can be put to SystemON idle mode by calling __WFE() or nrf_pwr_mgmt_run() if the power management library is enabled in the application.

    2. What do I need to do with other peripherals and Ble before entering low power mode?

    Running peripherals will continue to consume power in SystemON mode if they are not stopped/disabled. Typical things to consider disabling is UART(E) in RX mode, SAADC, SPIS and TIMERs. It is possible to enter low power mode/System ON mode with BLE enabled. BLE operations happens at predetermined intervals, and CPU/chip can be in idle mode between events to save power. If you have not active connections or advertising/scanning roles, there should not be a need to disable the SoftDevice/BLE stack before going to low power mode.

    3. Does low-power implementation require a bootloader?

    No, bootloader is only required for firmware updates.

    Best regards,
    Jørgen

  • The average current consumption when BLE roles are enabled will depend on the configured advertising/connection interval parameters. It is possible to achieve a low average current consumption even with BLE enabled, but this will affect the latency and throughput. You can play around with the parameters in our Online Power Profiler to see if you can get to a number you can live with.

    It is also possible to stop advertising (sd_ble_gap_adv_stop()) or disconnect (sd_ble_gap_disconnect()) entirely if you want to enter low power mode for a longer period of time.

Reply Children
No Data
Related