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?

Related