The 5-bit RSSI value has a valid range from {0 ... 28} and indicates the receive power in the selected RF channel, in steps of 3 dB. The value is updated in the radio transceiver every tTR25 and can be read from the sub register SR_RSSI.
The ED value is calculated by averaging the RSSI values over 8 symbol periods, i.e. the measurement duration results to 8*tsym. Due to the internal processing in the radio transceiver, an ED measurement is finished after tTR26.
| rssi | The current RF input power is calculated by:
| |
| ed | The 8 bit ED value can be read from register RG_PHY_ED_LEVEL. It has a valid range from ed = {0,...,84}, the reset value is {255} and the values {85,...,254} are reserved. The RF signal power level for a measurement period is RSSI_BASE_VAL + ed [dBm]. The value ed=0 means, that the calculated energy is energy<=RSSI_BASE_VAL [dBm]. |
The ED value is also part of the RX status information appended to each frame (see RX Frame Status Information).
/* AT86RF212::[RX_BASIC] */ rssi = trx_bit_read(SR_RSSI);
/* AT86RF212::[RX_BASIC] */ trx_reg_write(RG_PHY_ED_LEVEL, 0); delay(tED); ed = trx_reg_read(RG_PHY_ED_LEVEL);
/* AT86RF212::[RX_ACTIVE] */ delay(tPSDU); ed = trx_reg_read(RG_PHY_ED_LEVEL);
1.5.6