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:
- Does changing FREQUENCY require a DISABLE/RXEN cycle of the RADIO?
- If yes, at which point do I have to write the frequency register?
- Can I do it before DISABLE (is it latched during RXEN)?
- 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?
- Does it have to happen between DISABLED and RXEN?
- Or can it be done very shortly after RXEN (in a DISABLED IRQ handler, while PPI has already triggere RXEN)?
- 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)
- If not, how long does it take for the change to take effect?
- If yes, at which point do I have to write the frequency register?
- In general, which RADIO registers (other than PACKETPTR) are latched, and at which times?
- 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?