Hi,
I have done some reverse eng on a nrf24l01+ emitters using spi spy and managed to catch datas using an arduino leonardo + nrf24l01+ using the following register setup:
const byte addr[5] = {0x30, 0x26, 0xDA, 0x91, 0xD3};
radio.write_register(NRF_CONFIG, 0x7C); //0x20 0x7C
//0 Reserved
//1 RX_DR interrupt not reflected
//1 RX_DS interrupt not reflected
//1 MAX_RT interrupt not reflected
//
//1 CRC enabled
//1 CRC 2bytes
//0 PWR DOWN
//0 PTX
radio.write_register(EN_AA, 0x00); //0x21 0x00 //No auto ack
radio.write_register(SETUP_AW, 0x03); //0x23 0x03 //Adr Width 5
radio.write_register(SETUP_RETR, 0x00); //0x24 0x00 //No retransmit
radio.write_register(RF_SETUP, 0x00); //0x26 0x00 //1Mbps
radio.write_register(RX_ADDR_P1, addr, 5);
radio.write_register(RX_PW_P1, 0x04); //0x32 0x04 //P1 Payload size 4
radio.write_register(FEATURE, 0x00); //0x3D 0x00
radio.write_register(EN_RXADDR, 0x02); //0x22 0x02 //Enable RX Addr Pipe 1
radio.write_register(NRF_CONFIG, 0x3B); //0x20 0x3B
//0 Reserved
//0 RX_DR interrupt IS reflected
//1 RX_DS interrupt not reflected
//1 MAX_RT interrupt not reflected
//
//1 CRC enabled
//0 CRC 1 byte
//1 PWR UP
//1 PRX
radio.write_register(RF_CH, 0x1C); //0x25 0x1C
Now i am trying to catch datas using nRF52/pca10040 updating esb_prx_pca10040 with the following setup but no RX event fires:
uint32_t esb_init( void )
{
uint32_t err_code;
uint8_t base_addr_0[4] = {0x30, 0x26, 0xDA, 0x90};
uint8_t base_addr_1[4] = {0x30, 0x26, 0xDA, 0x91};
uint8_t addr_prefix[8] = {0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9 };
nrf_esb_config_t nrf_esb_config = NRF_ESB_LEGACY_CONFIG;
nrf_esb_config.payload_length = 4;
//nrf_esb_config.protocol = NRF_ESB_PROTOCOL_ESB_DPL;
nrf_esb_config.bitrate = NRF_ESB_BITRATE_1MBPS;
nrf_esb_config.mode = NRF_ESB_MODE_PRX;
nrf_esb_config.event_handler = nrf_esb_event_handler;
nrf_esb_config.selective_auto_ack = false;
nrf_esb_config.crc = NRF_ESB_CRC_8BIT;
err_code = nrf_esb_init(&nrf_esb_config);
VERIFY_SUCCESS(err_code);
err_code = nrf_esb_set_base_address_0(base_addr_0);
VERIFY_SUCCESS(err_code);
err_code = nrf_esb_set_base_address_1(base_addr_1);
VERIFY_SUCCESS(err_code);
err_code = nrf_esb_set_prefixes(addr_prefix, 8);
VERIFY_SUCCESS(err_code);
//
// Channel
//
err_code = nrf_esb_set_rf_channel(0x1C);
VERIFY_SUCCESS(err_code);
return err_code;
}
may you please help?
Many thanks in advance