Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

RTC wakeup CC1310

Other Parts Discussed in Thread: CC1310

Hi

I have problem with RTC & Wakeup from standby in CC1310.

in my test code i start initializing my RTC and Event setting and putting the CC1310 in standby mode.

the Idea is the RTC event will wake the device again after 5 sec.

The code shown below :

//---------------------------------------------------------------------------------------------------------------------------------------------

static void TestTaskFunction(UArg arg0, UArg arg1)
{

AONRTCCompareValueSet(AON_RTC_CH0, 0x00050000);

// enable compare channel 0
AONEventMcuWakeUpSet(AON_EVENT_MCU_WU0, AON_EVENT_RTC0);
AONRTCChannelEnable(AON_RTC_CH0);
AONRTCCombinedEventConfig(AON_RTC_CH0);

// start timer
AONRTCEnable();

SysCtrlAonSync();


SysCtrlStandby();


SysCtrlAonUpdate();

while(1)

{

....

  Task_sleep(100);

}

}

//---------------------------------------------------------------------------------------------------------------------------------------------

However when the SysCtrlStandby() is called the device never recovers/continues  from here/this line, have waited for 10 sec.

I am using 

Library versions:
ti\tirtos_cc13xx_cc26xx_2_15_00_17\products\cc13xxware_2_03_00_16456

and Power polecy:

const PowerCC26XX_Config PowerCC26XX_config = {
.policyInitFxn = NULL,
.policyFxn = &PowerCC26XX_standbyPolicy,
.calibrateFxn = &PowerCC26XX_calibrate,
.enablePolicy = TRUE,
.calibrateRCOSC_LF = TRUE,
.calibrateRCOSC_HF = TRUE,
};

Am i doing anything right or have i misunderstud how this works?

Is there any sample code how to setup the RTC and EVENTs, enter standby and wake up from standby with RTC?

Hope somebody can help me.

Best regards

Alen

  • Hi Alen,

    the on-chip RTC is used by the TI-RTOS kernel, and therefore you shouldn't access it directly from your application. The explanation is here:

    I would recommend you to use the Clock module of the TI-RTOS module to get the 5 seconds tick. Please refer to the TI-RTOS documentation: - chapter 5.2 "Clock"

    There is also an example to use Clock module in the CC1310 TI-RTOS Simplelink SDK:

  • Hi Leo

    What you are saying does not correspond with the user manual instructions, as I understand, I should be able to generate an event from the middle 32bit RTC register and step out from standby mode.
    This is also explained in the blog you are referring to.

    However, I can not see anywhere in the documentation saying not to use the API’s to enter the registers, which are provided by TI. Please send the list which APIs I am allowed to use.

    I want in my application to wake the task for every five days.

    The solution you are referring to (Clock sample code) is this to work with the task I have generated.
    Please explain: How is this clock periodic timer helping me enter standby mode from my task?
    I only see this to work if I use Semaphore_pend(SemaphoreHandle, BIOS_WAIT_FOREVER) in my task, which forces it to enter standby.

    I see this as a less than elegant solution. If I am not mistaken in the user manual for CC13xx, the RTC should wake the device with the Event fabric and events generated with RTC channels 0-2.

    Can you please confirm that the user manual is wrong on this?

    regards

    Alen
  • Alen,
    since we are using TI-RTOS which manages the whole system, it is indeed the most elegant way to use a semaphore to wait for an event which will be triggered by a timer event. If every tasks are pending, e.g. waiting for semaphore, the TI-RTOS kernel will put the device automatically into standby mode.
    If you are going to configure the RTC directly using the API, this will probably not work because the kernal will change the setting again. So please try to create Clock module to generate the periodic timer event.
  • Hi,
    I've the same problem. I've tried this solution but doesn't work. Is there a way to go in stanby mode?
    Thanks
  • Alex: Instead of posting the same question in a lot of old thread post this as a new post. In this post add as much information as possible:
    - What do you want to do
    - What you have tested. The description in your post does not tell us anything since you are not describing exactly how you have written you code.