This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

about current consumption (sd_app_evt_wait())

Hi team,

Does the nordic chip receive a Bluetooth signal being communicated with a mouse, keyboard, cell phone, etc.,
and the sleep state (sd_app_evt_wait()) is canceled?
I will write down the circumstances leading up to this question below.

As far as I read the explanation of sd_app_evt_wait (),
I thought that the CPU would go to sleep,
but when I measured the current consumption I consume more than I imagined, so I decided to experiment.
I conducted an experiment with one hypothesis about the behavior of sd_app_evt_wait () in an infinite loop (for (;;)).

In the example of light_switch, execution_start (start) is executed after initialize () is called. (default)
After that, as far as I see the program, we expect to enter the for (;;) loop and let the CPU sleep with sd_app_evt_wait ().

In order to check whether the CPU is really sleeping, I added a __ LOG print sentence under sd_app_evt_wait () in the loop.
If the CPU is sleeping, I think about __LOG () is never output on the RTT viewer, right?

However, when I tried it a lot of __LOG () was output on the RTT viewer.
I did not press any button and did not anything.
Just it connects the PC and the evaluation board and outputs the execution result on the RTT viewer.

I tried to eliminate things that would cause interruption little by little.

I commented out
rtt_input_enable ()
and ERROR_CHECK (mesh_stack_start)
in static void start (void) of main.c.

Then, the __ LOG output is only once.

As I first asked, do CPU wake up from sd_app_evt_wait () by receiving Bluetooth communication of the mouse, keyboard or etc.?


my development environment :
nrf52840 (third party module)
nRF5_SDK_15.0.0
nRF5_SDK_for_Mesh_v2.2.0
Segger Embedded Studio


Best regards, 
Wataru

  • Hi Hung,

    Currently I am measuring current consumption with an unmodified sample (light_switch_client).
    I will tell you again when I know the results.

    By the way, is DC / DC enabled for the default sample?
    Also, is the server example current consumption the same as the result of client?

    Your company's DK is might not certified in my country and I think that it can not be used. . .

    I do not know exactly, but is my understanding that the timeslot request does not occur frequently correct? (e.g. ms order)
    In other words, does the timeslot request may occur about every 10 seconds and the CPU returns from sd_app_evt_wait ()?
    (In an environment without Bluetooth packet)

    Best regards,
    Wataru


    [Update]
    As a result of experimenting in the office, it consumed about 13 to 15 mAh as well.
    Since the Bluetooth communication can not be completely blocked, the accuracy of the data may be lacking...

  • Hi Wataru, 

    If you want to enable DC/DC you would need to have this command in your main(): NRF_POWER->DCDC_EN = 1;

    However your hardware on the PCB board need to support this. Please have a look at the reference circuitry in the nRF52840 Spec with DCDCEN0 = Yes. 

    If you don't have a power profiler, you can also use an oscilloscope scope to measure the voltage drop on a series resistor to calculate the current consumption. 

    Yes, the timeslot event should not happen on ms order, it should be once in a few seconds (10s). 

    When no DCDC enabled I'm seeing around 12mA current draw on the example. I don't think there will be much different between the client example and the server example. 

     I would suggest to test using the radio directly, you can try the \examples\proprietary_rf\esb_low_power_prx . Current consumption should be 12mA DCDC Off and 7mA DCDC On. 

Related