Minimizing CC2420 Power Consumption

From TinyOS Wiki
Jump to: navigation, search

Built in power saving methods

There are several methods the CC2420 radio stack uses to minimize power consumption.


Invalid Packet Shutdown

Typically, packets are filtered out by address at the radio hardware level.When a receiver wakes up and does not receive any packets into the low power listening layer of the radio stack, it will automatically go back to sleep after some period of time.As a secondary backup, if address decoding on the radio chip is disabled, the low power listening implementation will shut down the radio if three packets are receive that do not belong to the node.This helps prevent against denial of sleep attacks or the typical transmission behavior found in an ad-hoc network with many nodes.

Early Transmission Completion

A transmitter typically sends a packet for twice the amount of time as the receiver's receive check period.This increases the probability that the receiver will detect the packet.However, if the transmitter receives an acknowledgement before the end of its transmission period, it will stop transmitting to save energy.This is an improvement over previous low power listening implementations, which transmitted for the full period of time regardless of whether the receiver has already woken up and received the packet.

Auto Shutdown

If the radio does not send or receive messages for some period of time while low power listening is enabled, the radio will automatically turn off and begin duty cycling at its specified duty cycle period.

CCA Sampling Strategy

The actual receive check is performed in a loop inside a function, not a spinning task.This allows the sampling to be performed continuously, with the goal of turning the radio off as quickly as possible without interruption.


Sleep Interval Recommendations

With the default low power communication implementation, we recommend a sleep interval between 0.5 - 2 seconds. If you know nodes in your network will transmit very rarely, you can try increasing the sleep interval to greater amounts.

Increasing the sleep interval increases the amount of energy a transmitter must expend to wake up a sleeping node, and also increases the throughput through the network.

In some point-to-point applications that rarely transmit, sleep intervals of 5 seconds or more have proven to work well.

You can also try experimenting with the backoff by capturing the RadioBackoff events for your packet and setting them as low as possible. This will let you decrease the number of clear channel samples needed to detect a transmitter.


See Also

Next