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

nRF24L01+ as TX and nRF51822 as RX

I have a nRF24L01+ connecting to an Arduino board using the RF24 library code. It is a print of the registers:

http://i.imgur.com/Y3krORD.png

On the nRF51822 I have the following code:

    int main()
{
    // Initialize ESB
    (void)nrf_esb_init(NRF_ESB_MODE_PRX);
	
		nrf_esb_set_base_address_length(NRF_ESB_BASE_ADDRESS_LENGTH_4B);
		nrf_esb_set_datarate(NRF_ESB_DATARATE_250_KBPS);
		nrf_esb_set_crc_length(NRF_ESB_CRC_LENGTH_2_BYTE);
		nrf_esb_set_channel(2);

    nrf_esb_set_address_prefix_byte(0,0xC4);
    //nrf_esb_set_base_address_0(0x7b4d0331);
		nrf_esb_set_base_address_0(0x31034d7b);  //31034d7b
    
    // Setup user interface
    ui_init();
    
    // Load data into TX queue
    my_tx_payload[0] = input_get();
    (void)nrf_esb_add_packet_to_tx_fifo(PIPE_NUMBER, my_tx_payload, TX_PAYLOAD_LENGTH, NRF_ESB_PACKET_USE_ACK);
    (void)nrf_esb_add_packet_to_tx_fifo(PIPE_NUMBER, my_tx_payload, TX_PAYLOAD_LENGTH, NRF_ESB_PACKET_USE_ACK);
    (void)nrf_esb_add_packet_to_tx_fifo(PIPE_NUMBER, my_tx_payload, TX_PAYLOAD_LENGTH, NRF_ESB_PACKET_USE_ACK);
    
    // Enable ESB to start receiving
    (void)nrf_esb_enable();
    
    while(1)
    {
        // Optionally send the CPU to sleep while waiting for a callback.
        // __WFI();
      }
  }

Can't get a communication between them, I read some posts here on the forum but couldn't get a solution, what should I look into?

Parents
  • Hi Jose

    In my experience most of the compatibility issues between the nRF24L and nRF51 series are address related, as the address configuration is handled quite differently between them.

    To see if this is the issue for you as well could you please try to configure both devices with the following address? 0xE7, 0xE7, 0xE7, 0xE7, 0xE7

    Then we will know if its address related or not, making it easier to isolate the issue.

    Regards Torbjørn

Reply
  • Hi Jose

    In my experience most of the compatibility issues between the nRF24L and nRF51 series are address related, as the address configuration is handled quite differently between them.

    To see if this is the issue for you as well could you please try to configure both devices with the following address? 0xE7, 0xE7, 0xE7, 0xE7, 0xE7

    Then we will know if its address related or not, making it easier to isolate the issue.

    Regards Torbjørn

Children
Related