Hi Sarfraz,

> Basically I want to get an estimate of the noise floor. Therefore, I am
> trying to force the RF230 to give me an estimate of the RF energy on the
> current channel even if there are no packets being received. The datasheet
> (page 41) mentions that this can be done by writing an arbitrary value to
> PHY_ED_LEVEL register, waiting for 140uS and then reading the register given
> that the chip is in RX_ON or BUSY_RX state. I am assuming that the radio
> stack does not put the chip in standby or sleep state. Is this correct?

It depends if you use low power listening or not. I would suggest to
do the following:

1. obtain the SPI bus
2. check first the RX_STATUS register. If it is not in RX_ON state,
then the radio is busy (either sending or receiving or off) and you
should not mess with it.
3. start your PHY_ED_LEVEL measurement,
4. wait your 140 uS with a busy loop
5. get the PHY_ED_LEVEL value you want
6. you can recheck your RX_STATUS if it is still RX_ON (so that you
did not measure the ED_LEVEL while a transmission is on)
7. Release the SPI bus

You should release the SPI bus as soon as possible, but I think it is
not necessary to do any of this in atomic context.

The other option would be to obtain the value of the rssiClear
variable of RF230LayerP. That contains the averaged noise floor
(updated after each received message). For this you need to modify the
RF230LayerP and export that value via a command.

Miklos
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to