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.

CC2652P7: CC2652P74T0RGZR

Part Number: CC2652P7
Other Parts Discussed in Thread: CC1352P7, CC1352P, LP-CC2652R7, CC2652R7, SIMPLELINK-CC13XX-CC26XX-SDK, SYSCONFIG, ENERGYTRACE

CC1352P7 & CC2652P7 do not enter Deep Sleep. I started with the example code project "CC1352P7-4 > TI thread > door_lock"

With the default .syscfg I get about 2.4mA at 2V. I modified the RF switches and got down to about 1.7mA at 2V. 

I'm using a custom PCB and the CC1352P7-4 development kit, and both behave the same way. 

Any suggestions how to invoke deep sleep for lower power consumption? I need to get down to minimal power consumption.

  • Hi,

    Have you tried disabling the serial output?

    To do this, right-click your project --> Properties --> Build --> Arm Compiler --> Predefined Symbols.

    Then, modify these values to match the following:

    • BOARD_DISPLAY_USE_LCD=0
    • BOARD_DISPLAY_USE_UART=0
    • TIOP_CUI=0

    To reduce it even further, you can try removing GPIOs from the syscfg.

    Thanks,
    Toby

  • Thank you for your quick response.

    I have about 3.9mW, I dropped 100mW removing  

    • BOARD_DISPLAY_USE_LCD=0
    • BOARD_DISPLAY_USE_UART=0
    • TIOP_CUI=0

    I/O is optimized.

    What else can I check?

  • Is this with the device connected to a network? Or freshly flashed and not attempting to join a network?

    Since this is a custom PCB, can you try running one of these example first? So we can get a baseline.

    https://dev.ti.com/tirex/explore/node?node=A__AEew.HoNFOCSFEfmCGToMA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST

    https://dev.ti.com/tirex/explore/node?node=A__AJzNg9mxEVJ5lDeevpEMJA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST 

    Be sure to "optimize" GPIOs as before (e.g. no LEDs).

  • Thank you for your response.

    With the project "gpiostandby_LP_CC1352P7_4_tirtos7_gcc" I get ( 0.672mA, 1.415mW, 2.1V).

    With the project "empty_CC1352P_4_LAUNCHXL_tirtos7_gcc" I get ( 5.43mA, 11.42mW, 2.1V).

    With the project "project I'm making" I get ( 1.688mA, 3.54mW, 2.1V).

  • When I remove the LED I/O completely I get the following:

    With the project "gpiostandby_LP_CC1352P7_4_tirtos7_gcc" I get ( 0.010mA, 0.021mW, 2.1V).

  • Thank you for your response.

    With the project "gpiostandby_LP_CC1352P7_4_tirtos7_gcc" I get ( 0.672mA, 1.415mW, 2.1V).

    With the project "empty_CC1352P_4_LAUNCHXL_tirtos7_gcc" I get ( 5.43mA, 11.42mW, 2.1V).

    With the project "project I'm making" I get ( 1.688mA, 3.54mW, 2.1V).

    When I remove the LED I/O completely I get the following:

    With the project "gpiostandby_LP_CC1352P7_4_tirtos7_gcc" I get ( 0.010mA, 0.021mW, 2.1V).

  • For testing purposes, I did the following:

    HW: LP-CC2652R7, CC2652R7 LaunchPad

    I’m Using the default example “cli_mtd_LP_CC2652R7_tirtos7_gcc_modified”.

    Connected to an OT network and periodic transmit I get (1.48mA, 4.49mW at 3.0V).

    I need to get down to minimal power consumption in the uA range.

    I get no difference when I use POWER_SAVE bellow

    Any suggestions how to invoke deep sleep for lower power consumption?

    /* =============================== Power =============================== */

    #define POWER_SAVE      1

    #define POWER_SAVE_NOT  0

    #define POWER_SELECT (POWER_SAVE_NOT)

    #if (POWER_SELECT == POWER_SAVE)

    #include <ti/drivers/dpl/HwiP.h>

        #include <ti/drivers/dpl/ClockP.h>

        #include <ti/drivers/Power.h>

        #include <ti/drivers/power/PowerCC26XX.h>

        //#include <ti/drivers/power/PowerCC26X2.h>

        #include <ti/drivers/Temperature.h>

        #include <ti/devices/DeviceFamily.h>

        #include DeviceFamily_constructPath(driverlib/sys_ctrl.h)

    #endif

    int main(void)

    {

        /* Call driver init functions */

        Board_initGeneral();

    #if (POWER_SELECT == POWER_SAVE)

        //Turn ON the sleep timer for normal low power application

        // Ensure we get proper internal power

        int_fast16_t power_good = Power_init();

        if ( power_good != Power_SOK ){

            // Did not init power properly

            SysCtrlSystemReset();

        }

        assert(power_good==0);

        Power_enablePolicy();

    #endif

  • Hi Nick,

    Toby is out of office this week, so I will be attempting to further assist your Thread power consumption issue.  Have you reviewed the Low-Power Operation section of the TI-OpenThread User's Guide? 

    By default in OpenThread, a MTD is configured as a MED.  In order to configure a MTD to be a SED the rx-on-when-idle value in the Thread device mode must be unset. Additionally, the data poll period can be configured, but is not required.

    Have you also reviewed Current Consumption Measurement guidelines?  It would be beneficial to know how you are measuring current on the LaunchPad and what the XDS110/other jumper positions are.

    Regards,
    Ryan

  • Hi Ryan, Thank you for your response. I have checked all of the above and they are correct. What else can be possibly causing the power consumption?  The radio switches fine. How can I check if any particular peripheral is causing the issue?

  • You can use EnergyTrace++ mode (required a 4-wire JTAG connection) as described in the TI-OpenThread User's Guide to view CPU and Peripheral States, which would confirm whether your device is entering LPM and what operations could be preventing it from happening.  I assume you are using the SIMPLELINK-CC13XX-CC26XX-SDK v6.20, have you tried the TI-CLANG project version with optimized power settings as well?

    Regards,
    Ryan

  • Thank you, where can I find the TI-CLANG project version?

  • The simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\LP_CC2652R7\thread\cli_mtd\tirtos7 directory contains both gcc and ticlang versions.

    Regards,
    Ryan

  • I used the TI-CLANG "cli_mtd_LP_CC2652R7_tirtos7_ticlang" project without any modification with the cc2652-r7 dev board and I only changed the device to be sleepy from always on and I got identical results with all other projects I used on custom PCB's and CC1352P7 dev board.

    (4.65mW, 1.5mA, 3.0V).

    I'm starting to think it might be something in the SDK using TI-CLANG and GNU. I can try TI v20.2.6LTS and see the diference.

    Any additional recommendations?

  • I have loaded the default project "door_lock_LP_CC2652R7_tirtos7_ticlang" on the Launchpad and added the Power section from above with a sleepy device.

    I get (4.10mW, 1.22mA, 3.3V) with the power section, and without (18.66mW, 5.55mA, 3.3V).

    What am I missing?

  • It might be something with the SDK. Any suggestions on how to get to micro power i.e., less than 200uA @ 2V?

  • Hi Nick,

    Thank you for your patience.  I got around to evaluating the CC2652R7 door_lock example today with a LP_CC2652R7.  I understand that even with BOARD_DISPLAY_USE_* disabled, the UART peripheral is still active.  I was able to define CUI_MIN_FOOTPRINT, remove LED and RXD/TXD jumpers, and set SysConfig -> TI-OpenThread -> Power Management -> Power Mode of Operation to Sleepy.  After programming and removing the TMS/TCK/TDO/TDI/SWO jumpers and commissioning the door_lock to the CLI FTD as instructed in the READMEs, EnergyTrace (granted, not the most accurate energy measurement tool) displays an average of ~150 uA @ 3.3V.  With further work to remove the UART and LED peripherals from the application, this current consumption could be further reduced.  Each SimpleLink SDK stack is tested and validated quarterly to ensure low power consumption can be achieved.  Make sure you are loading LP-CC1352P7-4 examples to the CC1352P7 device.  

    Regards,
    Ryan

  • Hi Ryan, the "CUI_MIN_FOOTPRINT" allowed the CPU to go to deep sleep. This resolved my issue, and I can go down to 6uA with everything optimized and custom hardware.

    What document can I find this type of flags and information?

    Thank you.

  • Hi Nick,

    Thanks for confirming.

    Generally, CUI behavior for a given technology (such as Thread, BLE, or Zigbee) can be found in the respective SDK documentation, and a search for CUI.
    E.g. for Thread: dev.ti.com/.../search.html

    It looks like we may need to add this particular macro (I would've assumed that setting TIOP_CUI=0 would remove CUI completely), or some general guidance/macro to enable the lowest power operation.

    Thanks,
    Toby