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 symbols, i.e. the measurement duration results to tTR26=8*tsym. Due to the internal processing in the radio transceiver, an ED measurement is finished after tED.
| rssi | The current RF input power is calculated by: |
| - | PHY_RSSI = 0: | PRF < RSSI_BASE_VAL [dBm] |
| - | 0 < PHY_RSSI < 28 : | PRF = RSSI_BASE_VAL + 3 * (PHY_RSSI- 1) [dBm] |
| - | 0 < PHY_RSSI = 28 : | PRF>= RSSI_BASE_VAL + 81 [dBm] |
| ed | The 8 bit value indicating the ED value is read from RG_PHY_ED_LEVEL. It has a valid range from ed = [0...84], all values from 85...255 are reserved. The RF signal power level during the measurement period is RSSI_BASE_VAL + ed [dBm]. The value ed=0 means, that the calculated energy is energy<=RSSI_BASE_VAL [dBm]. |
/* AT86RF231::[RX_BASIC] */ rssi = trx_bit_read(SR_RSSI);
/* AT86RF231::[RX_BASIC] */ trx_reg_write(RG_PHY_ED_LEVEL, 0); delay(tED); ed = trx_reg_read(RG_PHY_ED_LEVEL);
/* AT86RF231::[RX_ACTIVE] */ delay(tPSDU); ed = trx_reg_read(RG_PHY_ED_LEVEL);
1.5.2