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.

CC2531: wakeup from power mode 3 via timer? Deactivate tasks manually in PM2?

Other Parts Discussed in Thread: CC2531, TIMAC, CC2530

Hello,


I use TIMAC 1.5.0 with the CC2531 and I tried power modes PM2 and PM3 to save energy for battery operation. Two questions:

1) In PM3, the MCU core is without clock and according to the user guide, it can wakeup only via an IO event such as an interrupt on P0 or P1. This works for me. But is it correct that I can not wakeup using a timer in PM3 as they are also without clock?

2) I understand that for PM2, the MCU runs with 32 kHz. In my case, the device has a changing current of 25, 80, 180 and 212uA in PM2. Why is that? Do I have to deactivate tasks manually?

To activate PM2, I run:

MAC_MlmeSetReq(MAC_RX_ON_WHEN_IDLE, &_false);

osalApi_PowerMgr(TRUE);

Any advice?

  • Timo D said:
    1) In PM3, the MCU core is without clock and according to the user guide, it can wakeup only via an IO event such as an interrupt on P0 or P1. This works for me. But is it correct that I can not wakeup using a timer in PM3 as they are also without clock?

    Correct.

    Timo D said:
    2) I understand that for PM2, the MCU runs with 32 kHz. In my case, the device has a changing current of 25, 80, 180 and 212uA in PM2. Why is that? Do I have to deactivate tasks manually?

    What time period are you measuring this over? 212uA seems to align with PM1, not PM2.

    Did you read section "9. Power Management API" of /Documents/API/OSAL API.pdf?  

    I am not sure where this API is coming from, is this a function you created?

    Timo D said:
    osalApi_PowerMgr(TRUE);

    The correct API call should be osal_pwrmgr_device(PWRMGR_BATTERY);

    Is the device you are testing the Coordinator? Did you set the key interrupt define to true:

    #define MSA_KEY_INT_ENABLED FALSE /*
    * FALSE = Key Polling
    * TRUE = Key interrupt
    *
    * Notes: Key interrupt will not work well with 2430 EB because
    * all the operations using up/down/left/right switch will
    * no longer work. Normally S1 + up/down/left/right is used
    * to invoke the switches but on the 2430 EB board, the
    * GPIO for S1 is used by the LCD.
    */

     Regards, TC.

  • Also please insure that the application does not start any osal_timers (osal_start_timerEx).

    Regards, TC.

  • TopCat said:
    current of 25, 80, 180 and 212uA in PM2.


    I'm just looking at different values on the multimeter in current measuring mode. I could measure the current with a scope to tell the exact durations of that current...

    TopCat said:
    "9. Power Management API" of /Documents/API/OSAL API.pdf?

    yes

    TopCat said:
    I am not sure where this API is coming from, is this a function you created?

    osalApi_PowerMgr is a function of the TIMAC sample app, it calls osal_pwrmgr_device(PWRMGR_BATTERY)

    TopCat said:
    s the device you are testing the Coordinator? Did you set the key interrupt define to true:

    yes, it is a coordinator. Is osal_pwrmgr_device not meant for coordinators? Ok, I see the point, I will change that...

    yes, key interrupts are active

  • TopCat said:
    Also please insure that the application does not start any osal_timers (osal_start_timerEx).


    That is my point, I have several OSAL timers running, can I hold them all (automatically instead of each manually) and reactivate after setting  osal_pwrmgr_device(PWRMGR_ALWAYS_ON) ?

    Regards

  • Okay, not executing MAC_InitCoord() and MAC_InitBeaconCoord() as well as stoping all timers with osal_stop_timerEx helped to decrease the power consumption.

    After entering PM2, the current is now 96uA, then 47, 28, 23 and then stays at 23uA. Can I achieve even less power comsumption? Any ideas...?

  • Yes, you should be able to go down to 0.1uA in PM3. How are you measuring the power consumption? Is this the consumption of the CC2530 or of the SmartRF05? If you put a resistor across P15 of SmartRF05 and measure the voltage across this resistor you should get the power of just the CC2530.

    Regards, TC.