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

nRF24LE1 problems when transmit and receive

I use two nRF24LE1s as transmiter and receiver Here are my questions:

  1. I set the transmiter side to auto reply mode using PIPE0 ,but i found the STATUS regesitor to be 0b0001 1110 (see pic )when the receiver side doesn't work,this can be not correct?

  2. I detect a pulse(about 100us) in the PIN ANT2 of the transmiter side ,is this correct?

  3. I receive no data in the rx_buf array,where the STATUS regesitor to be 0b0000 1110 ,which means there is no interrupt of the PRX ,why is this? Cause I do configurated the transmiter and receiver as the same address, same PLOAD_WIDTH.

Here is my initialization of my RF_init function:

void rf_init(void)
{
  	RFCE = 0;                                   		
  	RFCKEN = 1;                                
  	RF = 1;                                     		
	delay_n_ms(100);
  	SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);   
  	SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); 	
  	SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      			
  	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  			
	SPI_RW_Reg(WRITE_REG + SETUP_AW,0x03);						
	SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x10);//1a); 			
  	SPI_RW_Reg(WRITE_REG + RF_CH, 100);        			
  	SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   			
  	SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH); 				
}

pic:image description

Edit: format.

  • Q1: STATUS register on the PTX equal to b0001 1110 means that you are sending, but not receiving any acknowledgements from the PRX. bit4 in the STATUS is set to 1 and that mean maximum retransmit (SETUP_RETR) fires.

    Q2: Yes, this is normal. It goes up to 1.8 V when transmitting.

    Q3: If you don't get any RX_DR interrupt on the PRX it should indicate that something is wrong with your configurations. Based on Q2 you are sending something, but it might be wrong frequency, wrong address, wrong address length, wrong payload length, wrong CRC.

    I would recommend you to roll back and start by having a look at the PRX and PTX code available in the nRFgo SDK. The example will be default found: C:\Nordic Semiconductor\nRFgo SDK 2.3.0.10040\source_code\projects\nrfgo_sdk\enhanced_shockburst_examples

Related