The best way to save energy in an application

Hi,
I am developing an application that includes the following features:
1. PWM to control the buzzer
2. 2 Uarte to communicate with 2 external devices
3. BLE to wireless communication (ble_app_uart)
4. Timer
5. saadc to read battery level
6. nrf_log_info for debugging

Now I want to implement an application as economical as possible, so I planned this topic
1. PWM => I enable/disable depending on when the user wants/don't want to ring buzzer by app_pwm_enable (& context) / app_pwm_disable (& context)
2. Libuarte => I enable/disable uarte when nRF needs/no need to communicate with external devices using nrf_libuarte_async_uninit (& libuarte) / nrf_libuarte_async_ninit (& libuarte)
3. BLE => I increase the advertising interval as big as possible
4. timer => I think app_timer is the best way
5. saadc => now i don't have any solution for this
6. Log Info => I think I will disable it in sdk_config.h => NRF_LOG_BACKEND_RTT_ENABLED 0
I'm using the ON system when the device is idle
So can you give me some comments and suggestions on my plan?
I am using custom board with nRF5833 chip and my application is based on SDK16 ble_app_uart example
As this feature is the most important feature in my project so please provide me a complete process for this feature.
Thank you

  • Hi Jared,
    I can't find any schematic from this module
    But I confirm that is external crystal.
    So please suggest for me:
    1. how and when I should enable DC/DC converter ? Any blog post ?
    2. what is the advantage when I make app_timer use external external crystal ? how can use external crystal? I attached my sdk_config.h please check for me.
    May It here ? What is RC, XTAL, SYNTH ?
    Thank for your reply.
    I'm new at this topic so your reply help me a lot.

    // <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
    
    // <0=> NRF_CLOCK_LF_SRC_RC
    // <1=> NRF_CLOCK_LF_SRC_XTAL
    // <2=> NRF_CLOCK_LF_SRC_SYNTH
    
    #ifndef NRF_SDH_CLOCK_LF_SRC
    #define NRF_SDH_CLOCK_LF_SRC 1
    #endif



  • Hi,

    John12 said:
    how and when I should enable DC/DC converter ? Any blog post ?

    If you're using the Softdevice then you can use the SD API by calling sd_power_dcdc_mode_set() in the beginning of main(). 

    John12 said:
    . what is the advantage when I make app_timer use external external crystal ? how can use external crystal? I attached my sdk_config.h please check for me.
    May It here ? What is RC, XTAL, SYNTH ?

    The external low frequency crystal has a lower run current then the RC oscillator. Thus it will consume less current. See the clock section in the product specification for a description of the different LFCLK sources. 

    regards

    Jared

  • Hi Jared,
    About regulator I have some confusions about this topic
    I follow this thread but It hard to understand 

    1. What is the difference between external DC/DC converter and internal DC/DC converter ?
    2. May I supply 1.8v voltage for my nRF saving energy working?
    3. My custom board don't have LC so It seems can not enable DC/DC converter ? What is the alternative solutions?
    4. DC/DC is automatically enabled when voltage goes below 2.1V => LDO is disabled and vice versa when voltage goes up?

Related