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.

CC1310: Time Synchronisation question / example availability?

Part Number: CC1310


Hello,

A while back on this forum I had enquired about time synchronisation with EasyLink, and someone told me that the next release of the Simplelink SDK will include an example for this. 

  • I was wondering if it might be possible to have a peek at that prior to its official release with the SDK? If not, is there a decided date for release of the next SDK update?

Secondly, I want to check that I'm calculating something correctly... If I understand the Radio Timer is used for this sort of synchronisation, which is clocked from the 32.768KHz crystal.

  • If the crystal on the Rx and Tx node are the same 20ppm device, does that mean that the maximum drift will be 0.00002 * 2 = 40us per second between last synchronisation? 
  • If I want to send a packet every 15 minutes, the maxumim drift would therefore bbe 15 * 60 * 40us = 36ms. This means the Rx side would have to start listening at 36ms before the calculated Tx time until 36ms after so as to not miss the packet?

Thanks
Craig

  • Could someone possibly weigh in on this please?

  • I pinged the engineer that has made the example yesterday but I suspect that he is busy with a VIP task. I'll check with him.
  • Thank you TER, I really appreciate it.
  • Hi,

    yes, there will be a "rfSynchronizedPacketTx/Rx" example in the upcoming SDK release. The SDK release is supposed to happen next week during Embedded World. The example is not based on EasyLink, but raw proprietary RF commands. I have the felling that you know already pretty well what is required, so I don't see the need for publishing it here.

    Craig E said:
    Secondly, I want to check that I'm calculating something correctly... If I understand the Radio Timer is used for this sort of synchronisation, which is clocked from the 32.768KHz crystal.

    The radio timer (RAT) is clocked from the HF oscillator which runs at 48 Mhz and has a tick rate of 4 ticks per µs. The RF driver disables the RF core (and the RAT) whenever possible, but syncs the RAT to the RTC during power on/off. This makes it possible to keep the RAT "virtually" counting and schedule a RF command in the future. During standby, the (virtual) RAT drift depends on the 32.768 KHz crystal of course.

    Craig E said:
    If the crystal on the Rx and Tx node are the same 20ppm device, does that mean that the maximum drift will be 0.00002 * 2 = 40us per second between last synchronisation? 

    Yes, correct. But depending on how long the RF core stays in active mode during that time, the accuracy of the HF crystal applies as well. 

    Craig E said:
    If I want to send a packet every 15 minutes, the maximum drift would therefore be 15 * 60 * 40us = 36ms. This means the Rx side would have to start listening at 36ms before the calculated Tx time until 36ms after so as to not miss the packet?

    Under the assumption that this is the only thing what both sides do, the calculation is correct. It would then be even possible to optimize because you can assume that the drift changes only slowly over time. You may need to experiment a bit with the time window and a safety margin.

  • Thanks for the response Richard.

    If I wanted to implement time synchronisation with EasyLink, could you recommend how I would go about this?
  • You would need to use the rfSynchronizedPacketTx/Rx and implement in EasyLink abstraction layer.