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.

CCS/CC1310: Frequency hopping: Sleep when trickle timer expires

Part Number: CC1310

Tool/software: Code Composer Studio

hey guys,

we use a TIDA00489 layout module and newest SDK for CC1310 15.4stack. We use the sensor collector example. I wanted to see how much current the sensor code needs, when in frequency hopping mode before the node joins a collector. Since the radio is always on, also for a sleepy end node, I changed the code, so that when an async message was send and the trickle timer has expired and no async response (PA or PC message) was received the sensor should go to sleep. To do this, I dont give it any task to do and set a timer. When this timer expires a new event is triggered. I measured the current until the timer has expired and it was about 130µA which is way higher than the 5µA I measure when using non beacon mode between backoff scan intervals.

The sensor has POWER_MEAS enabled and is set to sleepy and RX is actively set to false when the trickle timer has expired, too. This is what I do in processPASTrickleTimeoutCallback:

            /* If trickle timer timed out, go to sleep */
            ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, CONFIG_RX_ON_IDLE);

            /* define wake up case and go to sleep */
            smartFHWakeUpCase = PAS_WakeUp;
            Timer_setTimeout(FHjoinClkHandle, FH_TIMETOWAKEUP);
            Timer_start(&FHjoinClkStruct);

What else do I have to shutdown to have the equivalent current consumption like in non-beacon mode between backoff scans?

best wishes

Slev1n

  • Hey Slev1n,

    It was my understanding that our unmodified example should sleep in between backoff scans before joining a sensor. That being said, turning off rx_on_idle should allow the receiver to sleep when there are no other pending events. You've ensured there aren't any pending events elsewhere, correct?

    Let me look into this and get back to you.

  • Ammar N said:
    You've ensured there aren't any pending events elsewhere, correct?

    To be honest, no, I did not ensure it. I dont know what kind of events the sensors could be performing. You think I should pend the semaphore or do you have any better idea how to ensure that?

    best wishes

    Slev1n

  • You can look at the Sensor_event mask in a debugger to see if there are any pending events.

  • I've checked the events and they Sensor_event is 0. I did then rebuild the whole project, not just a simple build and it looks now as if it low enough, I see 0.02 to 0.03mA though my cheep multimeter seems to have an offset of 0.02mA, so I guess this is fine.

    Thank you.