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

nRF51822 communicates with 24L01?

I use the example "Keil\ARM\Device\Nordic\nrf51822\Board\pca10001\led_radio_example" and "Keil\ARM\Device\Nordic\nrf51822\Board\pca10000\led_radio_example" to communicates with 24L01

1 when I use nRF51822 to send 32bytes to 24L01,its all right. 2 but,when I use 24L01 to send 32bytes to nRF51822, it fail

nRF51822 config:

#define PACKET0_S1_SIZE (0UL) //!< S1 size in bits #define PACKET0_S0_SIZE (0UL) //!< S0 size in bits #define PACKET0_PAYLOAD_SIZE (0UL) //!< payload size in bits #define PACKET1_BASE_ADDRESS_LENGTH (4UL) //!< base address length in bytes #define PACKET1_STATIC_LENGTH (32UL) //!< static length in bytes #define PACKET1_PAYLOAD_SIZE (255UL) //!< payload size in bytes

NRF_RADIO->TXPOWER = (RADIO_TXPOWER_TXPOWER_0dBm << RADIO_TXPOWER_TXPOWER_Pos); NRF_RADIO->FREQUENCY = 25UL; // Frequency bin 7, 2407MHz NRF_RADIO->MODE = (RADIO_MODE_MODE_Nrf_2Mbit << RADIO_MODE_MODE_Pos);

// Radio address config NRF_RADIO->PREFIX0 = 0xC4C3C2E7UL; // Prefix byte of addresses 3 to 0 NRF_RADIO->PREFIX1 = 0xC8C7C6C5UL; // Prefix byte of addresses 7 to 4 NRF_RADIO->BASE0 = 0xE7E7E7E7UL; // Base address for prefix 0 NRF_RADIO->BASE1 = 0xC2C2C2C2UL; // Base address for prefix 1-7 NRF_RADIO->TXADDRESS = 0x00UL; // Set device address 0 to use when transmitting NRF_RADIO->RXADDRESSES = 0x01UL; // Enable device address 0 to use which receiving

it is to send at pipe0,0xE7E7E7E7E7UL,and to receive at pipe1 0xC2C2C2C2C2UL, and I confirmed that 24L01 send 32bytes at pipe1 is right, I want to knnow why nRF51822 cannot receive it.

Related