Interface: tos.chips.cc1000.CC1000Control

interface CC1000Control

CC1000 internal radio control interface.

Author:
Philip Buonadonna
Aythor:
Jaein Jeong

Commands
command void biasOn() Turn the bias power on.
command void coreOn() Turn off the bias power on the CC1000 radio, but leave the core and crystal oscillator powered.
command uint8_t getLock() Get the binary value from the CHP_OUT pin.
command bool getLOStatus() Returns whether the present frequency set is using high-side LO injection or not.
command uint8_t getRFPower() Get the present RF power index.
command void init() Initialise the radio to its default state.
command void off() Turn the CC1000 off
command void rxMode() Shift the CC1000 Radio in receive mode.
command void selectLock(uint8_t LockVal) Select the signal to monitor at the CHP_OUT pin of the CC1000.
command void setRFPower(uint8_t power) Set the transmit RF power value.
command uint32_t tuneManual(uint32_t DesiredFreq) Tune the radio to a given frequency.
command void tunePreset(uint8_t freq) Tune the radio to one of the frequencies available in the CC1K_Params table.
command void txMode() Shift the CC1000 Radio into transmit mode.

Commands - Details

biasOn

command void biasOn()

Turn the bias power on. This function must be followed by a call to either rxMode() or txMode() to place the radio in a recieve/transmit state respectively. There is approximately a 200us delay when restoring bias power.

coreOn

command void coreOn()

Turn off the bias power on the CC1000 radio, but leave the core and crystal oscillator powered. This will result in approximately a 750 uA power savings.

getLock

command uint8_t getLock()

Get the binary value from the CHP_OUT pin. Analog signals cannot be read using function.

Returns:
1 - Pin is high or 0 - Pin is low

getLOStatus

command bool getLOStatus()

Returns whether the present frequency set is using high-side LO injection or not. This information is used to determine if the data from the CC1000 needs to be inverted or not.

Returns:
TRUE if high-side LO injection is being used (i.e. data does NOT need to be inverted at the receiver.

getRFPower

command uint8_t getRFPower()

Get the present RF power index.

Returns:
The power index value.

init

command void init()

Initialise the radio to its default state.

off

command void off()

Turn the CC1000 off

rxMode

command void rxMode()

Shift the CC1000 Radio in receive mode.

selectLock

command void selectLock(uint8_t LockVal)

Select the signal to monitor at the CHP_OUT pin of the CC1000. See the CC1000 data sheet for the available signals.

Parameters:
LockVal - The index of the signal to monitor at the CHP_OUT pin

setRFPower

command void setRFPower(uint8_t power)

Set the transmit RF power value. The input value is simply an arbitrary index that is programmed into the CC1000 registers. Consult the CC1000 datasheet for the resulting power output/current consumption values.

Parameters:
power - A power index between 1 and 255.

tuneManual

command uint32_t tuneManual(uint32_t DesiredFreq)

Tune the radio to a given frequency. Since the CC1000 uses a digital frequency synthesizer, it cannot tune to just an arbitrary frequency. This routine will determine the closest achievable channel, compute the necessary parameters and tune the radio.

Parameters:
The - desired channel frequency, in Hz.
Returns:
The actual computed channel frequency, in Hz. A return value of '0' indicates that no frequency was computed and the radio was not tuned.

tunePreset

command void tunePreset(uint8_t freq)

Tune the radio to one of the frequencies available in the CC1K_Params table. Calling Tune will allso reset the rfpower and LockVal selections to the table values.

Parameters:
freq - The index into the CC1K_Params table that holds the desired preset frequency parameters.

txMode

command void txMode()

Shift the CC1000 Radio into transmit mode.