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

51802 debug mode consuming less power?

Hi community, I'm running a 51802 on my custom board with no other parts on it, except for some buttons and leds directly connected to GPIO, and a DC/DC converter which feed the 51802 with 1.8V power directly. I'm running a custom 2.4G protocol with neither softdevices, nor Gazell lib, which keep 16M clock always running.

Now when I try to optimize power, I've found some interesting thing that I can't find an explanation. I measure current before the DC/DC, so the absolute current read is not so relevant. The cpu is running the main loop steadily merely check for GPIO buttons, not much radio activities except sending a heartbeat packet every second,

the current read 2.21mA.

But if I reset the board to debug mode(with jlink plugged),

the current read 0.96mA.

I've checked this many times to make sure, as long as power is on, the consumption keeps the low state, and there seems no difference of the functionality of the 51802.

So my question is: why in debug mode, the power consumption reduced to about 44% of the normal state? what's changed inside the chip?

Parents
  • Hi,

    It’s actually the other way around. When you do a power-reset, the nRF51 will exit debug mode. Debug mode consumes around ~1mA, so you will see a ~1mA reduction when you resume normal mode. Please see section 11.1.3 "Resuming Normal Mode" in the nRF51 reference manual

  • Yes I've been guessing the same thing, that's why I asked this question at the first place, to check if there's any peripheral should have been stopped but I didn't. But today I've found some more interesting things, I tested my board in BLE mode, the same result. When steadily connected:

    • debug mode on: 3.11mA;
    • debug mode off: 2.33mA;
    • normal mode on: 4.16mA;
    • normal mode off: 0.02mA.

    These two radio mode share the same key scan code, but currently there's nothing I found suspicious. my 2.4G code is very simple, only two int handler, Timer0 and Radio, nothing else, and the main loop look like this:

    	// Enter main loop.
    for (;;)
    {
    	__WFE();
    }
    

    If any int handler miss, the connection can't be held steady. When in debug mode, the board function normally, and the 16M clock is no change, I've checked this with oscilloscope. Anyway, without my usb dongle, you can't test it in 2.4G mode, but you can test in BLE mode, so how should I send the hex file?

Reply
  • Yes I've been guessing the same thing, that's why I asked this question at the first place, to check if there's any peripheral should have been stopped but I didn't. But today I've found some more interesting things, I tested my board in BLE mode, the same result. When steadily connected:

    • debug mode on: 3.11mA;
    • debug mode off: 2.33mA;
    • normal mode on: 4.16mA;
    • normal mode off: 0.02mA.

    These two radio mode share the same key scan code, but currently there's nothing I found suspicious. my 2.4G code is very simple, only two int handler, Timer0 and Radio, nothing else, and the main loop look like this:

    	// Enter main loop.
    for (;;)
    {
    	__WFE();
    }
    

    If any int handler miss, the connection can't be held steady. When in debug mode, the board function normally, and the 16M clock is no change, I've checked this with oscilloscope. Anyway, without my usb dongle, you can't test it in 2.4G mode, but you can test in BLE mode, so how should I send the hex file?

Children
No Data
Related