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

nrf52832/nrf52840: Can frequency hopping be fully automated via PPI? At which point to set FREQUENCY?

Hi,

I'm currently trying to build a quick frequency spectrum scanning tool on an nRF52840 dongle. I want to sample RSSI on a list of channels as quickly as possible in a round-robin fashion.

The RADIO documentation in the product specification isn't very detailed, leaving me with these questions:

  1. Does changing FREQUENCY require a DISABLE/RXEN cycle of the RADIO?
    1. If yes, at which point do I have to write the frequency register?
      1. Can I do it before DISABLE (is it latched during RXEN)?
      2. Can I do it while the RADIO is disabling, i.e. between TASKS_DISABLE and EVENTS_DISABLED? How long is that time even, probably almost nonexistent when coming form RX?
      3. Does it have to happen between DISABLED and RXEN?
      4. Or can it be done very shortly after RXEN (in a DISABLED IRQ handler, while PPI has already triggere RXEN)?
    2. If yes, is an additional RSSI settling time of ~15µs required after the READY event? Or would that have settled as part of ramp-up anyway? (with fast ramp up enabled)
    3. If not, how long does it take for the change to take effect?
  2. In general, which RADIO registers (other than PACKETPTR) are latched, and at which times?
  3. Which RADIO registers are safe to modify in which states, and take how long to take effect, if they can be modified during operation?

While we're at it, for another project, I stumbled upon another question:

The product specification specifies a 3dB better sensitivity for BLE 2Mbit/s than it does for nRF 2Mbit/s.
Is it possible to take advantage of this in a custom protocol application by using BLE-like modulation/whitening/etc.? Which setting actually matters here?
Similarly, enabling additional receive addresses for nRF supposedly deteriorates sensitivity by another 3dB. But this doesn't apply to BLE - why is that? Does BLE inherently only use one address?

Parents
  • Hi,

    You can find radio states and receive sequence in the datasheet:
    https://infocenter.nordicsemi.com/topic/ps_nrf52840/radio.html

    1aC is the one you should do.

    1b you should wait after READY event before start sample RSSI yes, and then wait for the RSSIEND event (~15us).

    We don't have more information than stated in the radio chapter, typically registers are "latched" when a task is started. So any change after this will typically not have an effect until radio go back to idle and then task is started again.

    BLE have typically some better SNR due to higher bandwidth, and this increase sensitivity. Also there are some other techniques in the radio that may improve sensitivity due to how the radio "search" for packets in the demodulated white noise that typically is there all the time, this feature may not be available on all configurable logical addresses.

    Kenneth

Reply
  • Hi,

    You can find radio states and receive sequence in the datasheet:
    https://infocenter.nordicsemi.com/topic/ps_nrf52840/radio.html

    1aC is the one you should do.

    1b you should wait after READY event before start sample RSSI yes, and then wait for the RSSIEND event (~15us).

    We don't have more information than stated in the radio chapter, typically registers are "latched" when a task is started. So any change after this will typically not have an effect until radio go back to idle and then task is started again.

    BLE have typically some better SNR due to higher bandwidth, and this increase sensitivity. Also there are some other techniques in the radio that may improve sensitivity due to how the radio "search" for packets in the demodulated white noise that typically is there all the time, this feature may not be available on all configurable logical addresses.

    Kenneth

Children
No Data
Related