Part Number: CC1310
Other Parts Discussed in Thread: CC1350,
Tool/software: TI-RTOS
I've noticed something a bit strange in one of my applications: A star network comprised of a CC1310 receiver/hub device and multiple CC1350 sensor nodes.
One task of the receiver is to monitor the regular transmissions of the nodes, and raise an alarm if there has been too long a delay since the last transmission from any one device. Nodes are constantly time-sync'd in their Tx using the RAT timer.
To do this I have a clock that times out every 10 seconds, whose callback posts an event to provide an update over serial terminal with a list of the last time it received transmissions from each node. I timestamp (in seconds and milliseconds) the serial update itself using the Seconds_getTime() function.
What I've noticed is that over a period of ~60s the time drifts by around 1ms. So after about 10 mins (600s) of running, the timestamp is "599.990s".
This itself would not be troublesome, but after a while this drift surpasses the allowable delay for node transmissions, and constantly triggers alarms.
So firstly, why am I seeing this drift? And secondly, is there a better way to keep track of time that won't drift like this and cause me problems?
{System start}
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 0.462}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 0.711}
(Receiver: 13f1ee79 Timestamp: 9.999s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 10.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 10.518}
(Receiver: 13f1ee79 Timestamp: 19.999s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 20.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 20.518}
(Receiver: 13f1ee79 Timestamp: 29.999s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 30.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 30.518}
(Receiver: 13f1ee79 Timestamp: 39.999s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 40.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 40.518}
(Receiver: 13f1ee79 Timestamp: 49.999s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 50.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 50.518}
(Receiver: 13f1ee79 Timestamp: 59.999s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 60.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 60.518}
(Receiver: 13f1ee79 Timestamp: 69.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 70.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 70.518}
(Receiver: 13f1ee79 Timestamp: 79.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 80.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 80.518}
(Receiver: 13f1ee79 Timestamp: 89.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 90.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 90.518}
(Receiver: 13f1ee79 Timestamp: 99.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 100.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 100.518}
(Receiver: 13f1ee79 Timestamp: 109.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 110.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 110.518}
(Receiver: 13f1ee79 Timestamp: 119.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 120.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 120.518}
(Receiver: 13f1ee79 Timestamp: 129.998s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 130.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 130.518}
(Receiver: 13f1ee79 Timestamp: 139.997s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 140.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 140.518}
(Receiver: 13f1ee79 Timestamp: 149.997s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 150.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 150.518}
(Receiver: 13f1ee79 Timestamp: 159.997s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 160.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 160.519}
(Receiver: 13f1ee79 Timestamp: 169.997s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 170.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 170.519}
(Receiver: 13f1ee79 Timestamp: 179.997s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 180.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 180.519}
(Receiver: 13f1ee79 Timestamp: 189.997s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 190.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 190.519}
(Receiver: 13f1ee79 Timestamp: 199.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 200.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 200.519}
(Receiver: 13f1ee79 Timestamp: 209.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 210.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 210.519}
(Receiver: 13f1ee79 Timestamp: 219.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 220.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 220.519}
(Receiver: 13f1ee79 Timestamp: 229.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 230.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 230.519}
(Receiver: 13f1ee79 Timestamp: 239.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 240.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 240.519}
(Receiver: 13f1ee79 Timestamp: 249.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 250.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 250.519}
(Receiver: 13f1ee79 Timestamp: 259.996s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 260.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 260.519}
(Receiver: 13f1ee79 Timestamp: 269.995s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 270.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 270.519}
(Receiver: 13f1ee79 Timestamp: 279.995s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 280.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 280.519}
(Receiver: 13f1ee79 Timestamp: 289.995s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 290.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 290.519}
(Receiver: 13f1ee79 Timestamp: 299.995s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 300.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 300.519}
(Receiver: 13f1ee79 Timestamp: 309.995s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 310.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 310.519}
(Receiver: 13f1ee79 Timestamp: 319.995s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 320.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 320.519}
(Receiver: 13f1ee79 Timestamp: 329.994s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 330.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 330.519}
(Receiver: 13f1ee79 Timestamp: 339.994s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 340.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 340.519}
(Receiver: 13f1ee79 Timestamp: 349.994s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 350.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 350.519}
(Receiver: 13f1ee79 Timestamp: 359.994s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 360.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 360.519}
(Receiver: 13f1ee79 Timestamp: 369.994s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 370.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 370.519}
(Receiver: 13f1ee79 Timestamp: 379.994s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 380.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 380.519}
(Receiver: 13f1ee79 Timestamp: 389.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 390.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 390.519}
(Receiver: 13f1ee79 Timestamp: 399.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 400.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 400.519}
(Receiver: 13f1ee79 Timestamp: 409.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 410.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 410.519}
(Receiver: 13f1ee79 Timestamp: 419.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 420.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 420.519}
(Receiver: 13f1ee79 Timestamp: 429.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 430.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 430.519}
(Receiver: 13f1ee79 Timestamp: 439.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 440.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 440.519}
(Receiver: 13f1ee79 Timestamp: 449.993s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 450.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 450.519}
(Receiver: 13f1ee79 Timestamp: 459.992s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 460.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 460.519}
(Receiver: 13f1ee79 Timestamp: 469.992s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 470.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 470.519}
(Receiver: 13f1ee79 Timestamp: 479.992s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 480.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 480.519}
(Receiver: 13f1ee79 Timestamp: 489.992s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 490.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 490.519}
(Receiver: 13f1ee79 Timestamp: 499.992s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 500.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 500.519}
(Receiver: 13f1ee79 Timestamp: 509.992s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 510.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 510.519}
(Receiver: 13f1ee79 Timestamp: 519.991s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 520.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 520.519}
(Receiver: 13f1ee79 Timestamp: 529.991s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 530.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 530.519}
(Receiver: 13f1ee79 Timestamp: 539.991s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 540.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 540.519}
(Receiver: 13f1ee79 Timestamp: 549.991s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 550.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 550.519}
(Receiver: 13f1ee79 Timestamp: 559.991s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 560.268}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 560.519}
(Receiver: 13f1ee79 Timestamp: 569.991s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 570.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 570.519}
(Receiver: 13f1ee79 Timestamp: 579.990s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 580.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 580.519}
(Receiver: 13f1ee79 Timestamp: 589.990s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 590.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 590.519}
(Receiver: 13f1ee79 Timestamp: 599.990s)
{Heartbeat from 197707e2: ▒▒▒▒▒▒ @ 600.269}
{Heartbeat from 19770a87: ▒▒▒▒▒▒ @ 600.519}