[Tinyos-help] CC2420 RSSI Question

David Moss dmm at rincon.com
Sat Jan 27 12:51:49 PST 2007


According to the CC2420 datasheet, page 66, register 0x13 
on the CC2420 contains the RSSI.  It is valid after 8 
symbol periods.  Bits [7:0] contain the "RSSI estimate on 
a logarithmic scale, signed number on 2’s complement."

This register is not accessible by the default CC2420 
stack.  To access this register, you'll need to edit some 
of the CC2420 modules.  Specifically, take a look at 
CC2420SpiP and how it provides connections to individual 
registers on the CC2420.  You'll need to add an entry that 
connects to CC2420_RSSI, for example:

RSSI = Spi.Reg[ CC2420_RSSI ];

To access the SPI bus and read this register, you'll need 
to be first given acccess to the bus.  Most of the 
low-level CC2420 files (CC2420ControlP, CC2420TransmitP, 
CC2420ReceiveP) provide examples of how to do this - 
request access, access is granted, do your thing, release 
the bus.  If I were doing this implementation, I would 
make up an interface provided by CC2420Control that allows 
external components to read the RSSI ..

interface CC2420Rssi {
   command error_t readRssi();
   event void rssi(uint8_t rssi);
}

Finally, look to CC2420ControlC on how to wire up to the 
SPI bus.  You can create a new instance of CC2420SpiC and 
make it specific to reading the SPI bus register.  When 
you go to readRssi(), request access to the SPI bus.  When 
access is granted, set CSn low, read the register, CSn 
high, release the bus, and signal your rssi event.  Be 
sure you send that CSn pin low before reading the 
register, and put it back up high when you're done (chip 
select is active low).

Hope this points your CC2420 hacking in the right 
direction.

http://www.chipcon.com/files/CC2420_Data_Sheet_1_3.pdf

-David




On Sat, 27 Jan 2007 13:19:37 -0700
  davivale at nmsu.edu wrote:
> Platform:  TelosB
> TinyOS version:  2.x
> 
> I understand that a receiving node upon reception of a 
>packet can compute the
> RSSI of the transmitting node.  My question is, can the 
>CC2420's RSSI register
> be polled in order to capture the amount of background 
>energy present in the
> channel?    (i.e. when a packet is sent from the 
>transmitting node to the
> basestation and it is not received at the basestation, 
>is it possible to sample
> the RSSI register in order to get the radio energy 
>present in the channel.  I am
> interested in determining what is causing that 
>interference at that particular
> time).  Thanks.
> 
> Dave
> _______________________________________________
> Tinyos-help mailing list
> Tinyos-help at Millennium.Berkeley.EDU
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help



More information about the Tinyos-help mailing list