Automatic actions based on RSSI measurements on Si446x
The RSSI interrupt gets activated if the current RSSI level is above (crosses) the RSSI threshold defined in API property MODEM_RSSI_THRESH. Regardless of how the MODEM_RSSI_CONTROL or MODEM_RSSI_THRESH or FRR_CTRL_X_MODE properties are configured, the source for the RSSI interrupt in Si446x chips is always the comparison of the Current RSSI value with the programmed MODEM_RSSI_THRESH value. That is to say, the RSSI interrupt (bit D3 of the MODEM_STATUS response byte returned by the GET_INT_STATUS command) is always generated by comparing the Current RSSI value with RSSI_THRESH, and never by comparing the Latched RSSI value with RSSI_THRESH. The interrupt remains active until it is either cleared or the receiver is restarted by either its automatic state machine or by the host MCU.
There is potential for confusing the RSSI interrupt with another function involving the Latched RSSI value. In the MODEM_RSSI_CONTROL property, there is a function called CHECK_THRESH_AT_LATCH (bit D5). If this bit is set, then indeed the Latched RSSI is compared with the RSSI_THRESH value. However, the purpose is to determine if the Latched RSSI value does not exceed the threshold. If the Latched RSSI exceeds the threshold, no interrupt occurs and the reception of the packet continues normally. If the Latched RSSI is below the threshold, then the chip transitions to the START_RX:RXTIMEOUT_STATE and generates an INVALID_PREAMBLE interrupt (if enabled). When frequency hopping is utilized one of the conditions upon which the receiver tunes to the next frequency is INVALID_PREAMBLE. The feature described in this paragraph generates an INVALID_PREAMBLE if the Latched RSSI value stays below a threshold defined by MODEM_RSSI_THRESH. So in other words if no signal power is detected in the channel the receiver can be made to go to the next frequency.
The CCA (Clear Channel Assessment) signal is one of the signals that can be output to one of the GPIOs (look for GPIO_PIN_CFG in the API document). It goes high if the current RSSI value is above the threshold given in MODEM_RSSI_THRESH and goes low if the current RSSI value is below this threshold. This signal is continuously updating as long as the receiver is on.
The CCA latch (Clear Channel Assessment latch) signal is one of the signals that can be output to one of the GPIOs (look for GPIO_PIN_CFG in the API document). There is the potential for confusing the Latched CCA signal, with the Latched RSSI signal. The Latched CCA signal is *not* developed by comparing the Latched RSSI signal with the RSSI Threshold. Instead, the Latched CCA signal is developed by “remembering” the CCA signal (developed from the Current RSSI comparison with the RSSI Threshold) by a latching function. The CCA latch signal remains asserted until either sync word is detected or the receiver is restarted.
Squelching of the RX_DATA output may be configured conditional (amongst other measures) on the current RSSI reading. If current RSSI remains below the RSSI threshold defined in API property MODEM_RSSI_THRESH there will be no toggling on RX_DATA whereas if it is above this level there will be toggling on RX data. See filed SQUELCH in API property MODEM_OOK_CNT1 for more details.