Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

TOC(depth=5,TschTiming)

Home Tutorial

Timing Constants

By default, we use a 15ms timeslot template:

 
 commonGINATelosB

 

 

provisioned

measured

provisioned

measured

Time-slot related

 

 

 

 

 

#TsTxOffset

4000us

 

 

 

 

#TsLongGT

1300us

 

 

 

 

#TsTxAckDelay

4000us

 

 

 

 

#TsShortGT

500us

 

 

 

 

#TsSlotDuration

15000us

 

 

 

 

Execution speed related

 

 

 

 

 

#maxTxDataPrepare

 

2014us

746us

2899us

2420us

#maxRxAckPrepare

 

305us

83us

610us

474us

#maxRxDataPrepare

 

1007us

84us

1000us

477us

#maxTxAckPrepare

 

305us

219us

793us

746us

Radio speed related

 

 

 

 

 

#delayTx

 

214us

219us

366us

352us

#delayRx

 

0us

cannot

0us

cannot

Radio watchdog

 

 

 

 

 

#wdRadioTx

1000us

 

 

 

 

#wdDataDuration

5000us

 

 

 

 

#wdAckDuration

3000us

 

 

 

 

...

The image below shows TsTxOffset, measured between the beginning of the slot and the time the receiver gets the start of frame event from the radio.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

How early the receiver starts listening for a data packet, see TschSynchronization.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

The duration between the end of the data packet, and the beginning of the ACK packet (its SFD).

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

Exactly the same use as #TsLongGT, but when listening for an ACK. Because this duration is measured from the end of the data packet, which just happened, motes are "very" synchronized and so TsShortGT can be shorted than #TsLongGT.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

Determined by the pre-agreed upon timeslot template.

The duration of a slot.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

This is the maximum time it takes your microcontroller to execute #ti2 and #ta1. You want maxTxDataPrepare to be as close as possible to the measured value to reduce the energy wasted while in the TXDATAREADY state.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

This is the maximum time it takes your microcontroller to execute #ti6. You want maxRxAckPrepare to be as close as possible to the measured value to reduce the energy wasted while in the RXACKREADY state.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

This is the maximum time it takes your microcontroller to execute #ri2. You want maxRxDataPrepare to be as close as possible to the measured value to reduce the energy wasted while in the TRXDATAREADY state.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

This is the maximum time it takes your microcontroller to execute #ri6 and #ra2. You want maxTxAckPrepare to be as close as possible to the measured value to reduce the energy wasted while in the TXACKREADY state.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

The best way to determine this value is by measuring. If your radio does not generate an event when it has sent the SFD, you can measure the SFD receive event:

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

This should be longer than the duration of the longest packet. We measure the duration of the longest packet (127 byte payload) to be 4.27ms. The value of wdDataDuration simply needs to be longer than that.

Image RemovedImage Added

(source file at nine_slots_final.prj)

...

Similar to #wdDataDuration, but for the ACK. The ACK is much shorter and we measure the time it takes to transmit it to be 578us. 
The value for wdAckDuration simply needs to be longer than that.

Image RemovedImage Added

(source file at nine_slots_final.prj)