Hi,
I am trying to receive BLE advertisements on Ch38 (=2426MHz) without using SoftDevice, i.e. with direct register access.
However "EVENTS_DISABLED" is very rarely called (if at all). Any ideas what I might be doing wrong?
NRF_RADIO->SHORTS = (1 << RADIO_SHORTS_READY_START_Pos) | // Shortcut between READY event and START task (1 << RADIO_SHORTS_END_DISABLE_Pos); // Shortcut between END event and DISABLE task NRF_RADIO->MODECNF0 = (RADIO_MODECNF0_RU_Fast << RADIO_MODECNF0_RU_Pos); NRF_RADIO->FREQUENCY = 26; NRF_RADIO->MODE = (RADIO_MODE_MODE_Ble_1Mbit << RADIO_MODE_MODE_Pos); NRF_RADIO->DATAWHITEIV = 38; uint32_t m_address = 0x8E89BED6; NRF_RADIO->PREFIX0 = 0; NRF_RADIO->PREFIX0 &= ~RADIO_PREFIX0_AP0_Msk; NRF_RADIO->PREFIX0 |= (m_address >> 24) & RADIO_PREFIX0_AP0_Msk; NRF_RADIO->BASE0 = m_address << 8; NRF_RADIO->RXADDRESSES = RADIO_RXADDRESSES_ADDR0_Enabled << RADIO_RXADDRESSES_ADDR0_Pos; NRF_RADIO->TXADDRESS = (0x00 << RADIO_TXADDRESS_TXADDRESS_Pos) & RADIO_TXADDRESS_TXADDRESS_Msk; NRF_RADIO->EVENTS_DISABLED = 0; NRF_RADIO->EVENTS_END = 0; NRF_RADIO->EVENTS_READY = 0; NRF_RADIO->TASKS_RXEN = 1; while (!NRF_RADIO->EVENTS_DISABLED ); // gets stuck NRF_RADIO->EVENTS_DISABLED = 0;
Best,
Paul