Hello,
For my project I am interested in performing IQ sampling in the payload of a BLE packet, using nRF52833 at both receiver and transmitter.
I am manually configuring the RADIO peripheral at the receiver. As far as I understand, the bit DFECTRL1.DFEINEXTENSION should do the trick for me, by setting it to 0. However, modifying that bit by writing 0 to that bitfield does not change anything. It stays set to 1.
When I start the debugger and manually flip the bit at a breakpoint using the register editor, it seems to do the trick and the device behaves as expected. How can I achieve this without using the debugger?
This is the function I use to configure the sampling procedure.
void aoa_radio_rx_init(){ NRF_RADIO->DFEMODE |= (RADIO_DFEMODE_DFEOPMODE_AoA << RADIO_DFEMODE_DFEOPMODE_Pos); NRF_RADIO->CTEINLINECONF |= (RADIO_CTEINLINECONF_CTEINLINECTRLEN_Disabled << RADIO_CTEINLINECONF_CTEINLINECTRLEN_Pos); NRF_RADIO->DFECTRL1 |= (RADIO_DFECTRL1_DFEINEXTENSION_Payload << RADIO_DFECTRL1_DFEINEXTENSION_Pos); NRF_RADIO->DFECTRL1 |= (RADIO_DFECTRL1_SAMPLETYPE_IQ << RADIO_DFECTRL1_SAMPLETYPE_Pos); NRF_RADIO->DFECTRL1 |= (RADIO_DFECTRL1_TSWITCHSPACING_2us<<RADIO_DFECTRL1_TSWITCHSPACING_Pos); }