This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Radiated Immunity Certification problems/Unclear documentation about CCA

Hello there,

We're developing a chip with a nRF52840 as the only processor, which we're trying to get certified against 802.15.4. However, we had problems passing the radiated immunity test. We realized we didn't use the ack/resend functionality of 802.15.4, and that we probably wanted another CCA setting, so we made those changes in the software, and sent a new sample to the test lab. However, the new sample performed worse (dropped "most" instead of "some" packages, with variations depending on the external emission frequency). This surprised us.

As the documentation is slightly unclear on the following, my questions (to start with) are:

1. Given the configuration in the code snippet below, will the chip use Energy Detection as well as Carrier Detect, then report the channel clear to send on if at least one of the two measurements reports the channel clear?

2. Given the same snippet, will we actually set the Energy Detection to -80 dBm? That is, will ED report the channel clear to send on if the measured energy is beneath -80 dBm?

nrf_802154_cca_cfg_t cca_cfg = {
    .mode = NRF_RADIO_CCA_MODE_CARRIER_AND_ED,
    .ed_threshold = (uint8_t) -80,
    .corr_threshold = 0,
    .corr_limit = 0
};
nrf_802154_cca_cfg_set(&cca_cfg);


Other details:
Specific version of the nRF52, as read from the etching on the hardware:
N52840
Q1AAC0
1816AU

nRF5 SDK v15.0.0
nRF IEEE 802.15.4 radio driver 1.1.0
We use a Front End Module (FEM), SE2431L, which is controlled by the following insert into the 802.15.4 driver state machine:
/** Set driver state.
 *
 * @param[in]  state  Driver state to set.
 */
static void state_set(radio_state_t state)
{
    m_state = state;

    printf("%s", str_set);
    switch (state)
    {
        case RADIO_STATE_SLEEP:
        case RADIO_STATE_FALLING_ASLEEP:
        	antenna_sleep_mode();
            printf("%s", str_s);
            break;
        case RADIO_STATE_RX:
        case RADIO_STATE_RX_ACK:
            antenna_rx_mode();
            printf("%s", str_r);
//			antenna_bypass_mode();
            break;
        case RADIO_STATE_TX_ACK:
        case RADIO_STATE_CONTINUOUS_CARRIER:
        case RADIO_STATE_CCA_TX:
        case RADIO_STATE_TX:
            antenna_tx_mode();
            printf("%s", str_t);
            break;
        case RADIO_STATE_ED:
        case RADIO_STATE_CCA:
        default:
            antenna_bypass_mode();
            printf("%s", str_b);
            break;
    }

    nrf_802154_log(EVENT_SET_STATE, (uint32_t)state);
}


For the resend functionality, we let the chip send 4 times total before giving up.
The certification test setup has two copies of our chip, one which sends every second, and one that receives those messages and send them to a connected computer which logs when a message is missed.

Thank you in advance,

Gabriel


Parents
  • You don't mention what state you have the FEM in during RX. The fem has an LNA and you can easily be losing your packets due to compression even though the CCA is working. Although FSK is highly immune to IMD, the baseband processes on the nRF are not.

    Since the nRF already has a good receiver you should operate the FEM in bypass mode during RX.  Or, you could have the LNA on but pad down a bit after the FEM to normalize the gain and keep the system noise figure intact.

Reply
  • You don't mention what state you have the FEM in during RX. The fem has an LNA and you can easily be losing your packets due to compression even though the CCA is working. Although FSK is highly immune to IMD, the baseband processes on the nRF are not.

    Since the nRF already has a good receiver you should operate the FEM in bypass mode during RX.  Or, you could have the LNA on but pad down a bit after the FEM to normalize the gain and keep the system noise figure intact.

Children
  • While I'm not completely sure I understand you, my interpretation is that the signal at the nRF is too strong which distorts the signal, causing us to lose packets when we're also receiving the certification noise. Is that accurate? If not, please clarify what you mean with compression, as well as baseband processes.

    The problem is that a 12 dB amplification helps our range a lot, and we're hesitant to remove that advantage, but we will take your suggestion into account if we can't pass certification even after the other problems we found.

    EDIT: And yes, the FEM is in LNA mode during RX.

  • I suggest you get someone on your team familiar with RF terms. Baseband is anything not on a carrier. Normally this implies your broadcast bandwidth centered around DC, but some designs do direct sampling at IF and RF frequencies so the meaning of baseband can change a little depending on the design.

    12dB amplification is meaningless to talk about unless you know the noise figure at baseband. The compression points and the intermod intercept points are all highly influenced by the receiver gain.  You need someone on your team who understands these terms otherwise you are likely to create a design that will continue to fail immunity and will have serious issues in the field.

    As I noted you can likely have the benefit of the FEM LNA while still having a receiver that works well and passes immunity.  But you need someone to do the receiver modeling and the link budget calculations. You may find that while 12dB gain fails, 4dB passes and gives nearly the same performance in the field.

  • I've talked with a collegue, who explained that this is nothing new to us, even if it's new to me. We'll take your insight into consideration, thanks for your help!

Related