This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1311R3: CC1311 peripherial current consumption in idle mode

Part Number: CC1311R3

Hi, 

I have a few questions concerning the power consumption of the CC1311. I managed to measure an idle current of about 2uA, its actually quite a bit less than that but spikes to ~2 every couple of seconds or miliseconds. I'll assume the datasheet states the maximum output. This was done using the empty project from the examples and removing the GPIO for the LED. 

I now switched to my actual project or rather a test version of that for power measurements. The code looks something like 

int main(void)
{
	/* init peripherals */
	GPIO_init();
	SPI_init();
	ADC_init();
	NVS_init();
	I2C_init();

	/* create application thread with highest priority to finish thread creation before other threads are run.
		Set prio to -1 afterwards to stop execution but not delete thread. All global semaphores/mailboxes/configs
		live on this threads stack.*/
    Task_Params taskParams;
	Task_Params_init(&taskParams);

    taskParams.stackSize= APP_STACK_SIZE;
    taskParams.stack 	= applicationStack;
	taskParams.priority = PRIO_APP;
	Task_create( (Task_FuncPtr) ApplicationThread, &taskParams, NULL );

    BIOS_start();				/* start thread scheduling and hope for the best */

    return (0);
}

The application thread does nothing for now and immediately goes to constant sleep: 

    while(1){
        Task_sleep(1000000);
    }

I measured about 55uA on one board and about 70-75uA on a few others. Is this an expected order of magnitude? I'm not entirely sure how to interpret the second half of the table in chapter 8.5. My assumption would be that as long as the controller is in the sleep-loop it goes into the "standby with cache retention" mode and draws 2.1uA (RCOSC_LF mode). The peripheral and serial power domains draw a combined 50.3uA (being turned on by GPIO_init() and I2C/SPI_init() respectively) plus the 2.1uA standby current would result in about 53uA. Once the I2C module for example is clocked, it would draw another 11.6uA.  Is this somewhat correct? 

Greetings

Max

  • Hi Max,

    When it comes to power measurements I would recommend you to read this app note which explains a lot. E.g. the spikes you are seeing which sound like recharge pulses.

    https://www.ti.com/lit/swra478

    The default behavior is not to retain the cache during standby.

    If your device is in standby the expectation is to see around 1 uA, depending on what's going on with peripherals etc.

    1. How are you conducting the measurements? 

    2. Are you using energy trace? If so, please remember to calibrate. (Also take the numbers with a grain of salt, Energy Trace is not very accurate in this range.)

    3. How long are you measuring for? I would recommend measure for e.g. 1 s and look at the average number.

    Cheers,

    Marie H

  • Hi Marie,

    yes, thanks for the AN, I will have a look. 

    Ah, I somehow assumed cache retention. I'm guessing because the values fit. I measured about 60-100 nA with the occasional ~2uA spike. The spikes varied a bit from board to board. Recharge pulses would make sense. 

    1. We have a small custom PCB with just the 1311, a bit of RF-stuff and a couple of caps, resistors, etc. basically the minimal setup to run the 1311. I flash the device, check if its running, disconnect the debugger restart. Current measurement is done using a digital multimeter (Tektonix DMM 4040) precision should be around 100pA or 1nA, good enough for now. 

    2. No, maybe later. I'll keep that in mind.

    3. The multimeter is measuring pretty fast and doesn't seem to have a configurable measurement time. But thats fine for now, we dont need absolute nA precision for now. We first of all want to get some ballpark numbers and make sure were actually in a power saving mode and not mining bitcoins in the background. 

    Greetings 

    Max

  • Hi Max,

    Ok let me know if you have follow-up questions.

    If you're unsure what your power consumption "should be" in standby, you can run the GPIO standby example and measure the power consumption when running this example. This should give you a good baseline number that you can compare with your application.

    https://dev.ti.com/tirex/explore/node?node=A__AMYk3U9ut2Ill6VIdUdbeA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST&placeholder=true

    Cheers,

    Marie H