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.

RTOS/CC1350STK: pinStandby_CC1350STK_tirtos_ccs Does not power down on the sensor tag

Part Number: CC1350STK
Other Parts Discussed in Thread: CC1350, OPT3001, HDC1000,

Tool/software: TI-RTOS

The pinStandby example powers down on the cc1350 launchpad, but not on the same example for the sensor tag (it still uses about 7mA).

I've read about the external flash and ported the initialization/shutdown code over to the sensortag, but it is still using way too much power compared to the launchpad. Can you advise on how to turn off all the additional devices on the sensortag so that it will go into standby?

I think this might also be a flaw in the sensortag example code that should be addressed.

  • Hi
    Can you try to include all the sensor files from : <Install directory>\ti\simplelink_cc13x0_sdk_1_60_00_21\source\ti\mw\sensors and then init and disable all sensors.

    if (SensorI2C_open())
    {
    /* Put unused external sensors and flash into Sleep */
    SensorBmp280_init(); // Pressure Sensor
    SensorBmp280_enable(false);
    SensorTmp007_init(); // Infrared Thermopile Sensor
    SensorTmp007_enable(false);
    SensorHdc1000_init(); // Humidity
    SensorMpu9250_init(); // Gyroscope and accelerometer
    SensorMpu9250_enable(false);
    SensorMpu9250_powerOff();
    SensorOpt3001_init();
    SensorOpt3001_enable(false);
    }

    BR
    Siri
  • Thanks, I'm getting closer (down to 2.5mA, which is still more than it should be consuming... it should be somewhere in the uA range).

    The MPU code actually pulls power from the sensor. The enable/disable on the other sensors just set sensor configuration.

    void SensorMpu9250_powerOff(void)
    {
        // Make sure pin interrupt is disabled
        PIN_setInterrupt(hMpuPin, PIN_ID(Board_MPU_INT)|PIN_IRQ_DIS);
    
        // Turn off power supply
        PIN_setOutputValue(hMpuPin,Board_MPU_POWER, Board_MPU_POWER_OFF);
    
        // Force an access on I2C bus #0 (sets the I2C lines to a defined state)
        SensorOpt3001_test();
    }

    I had the code for the BMP280 and MPU9250 already, so disabling the Tmp007,Hdc1000, and Opt3001 reduced the sleep consumption by about 2.5mA. I'm on the right track, just not far enough.

    As far as the radio goes, is RF_yield(rfHandle); enough to put the radio to sleep, or am I missing something on that front?

    Thanks again.

  • Sorry, my sleep consumption is now ~2.5mA, disabling the additional 3 sensors saved me ~4.5mA (apparently I cant do maths) from the ~7mA before (when I was just powering down the MPU9250 and disabling the BMP280)
  • I took the rfPacketTX example from the simplelink_cc13x0_sdk_1_60_00_21. In mainThread I disabled the sensors as described in my previous post. In addition, I included the POWER_MEASUREMENT define (to turn off the flash). When measuring the current I measure 13 uA in between every TX.

    Siri
  • I'm still not getting the same results. Just to be sure, this is the project name on the sensor tag: "rfPacketTx_CC1350STK_tirtos_ccs", correct?

    The POWER_MEASUREMENT define doesn't seem to do anything on the sensortag aside from skipping the LED toggle. The other blocks are further disabled by the lack of the __CC1350_LAUNCHXL_BOARD_H__ define. And I don't see anything that indicates that controls the flash power (maybe I didn't look far enough)

    I should also say that I am working with an analog amp meter, and the tx toggle time is pretty small, so the needle might not drop fast enough in between tx operations. I added a sleep(5) at the end of the loop, which ultimately calls Task_sleep(). That seems to have increased the power consumption. Clearly I don't understand something here. If I want to go into standby, is Task_sleep() via sleep() not the way to go about that?
  • Yes, that is the example. What SDK are you using?
    I was testing with simplelink_cc13x0_sdk_1_60_00_21.
    If you want to stay longer in standby you simply increase the packet interval. The device will be in Standby whenever it is not transmitting packets.
    Siri