Using NRF24L01+ with pure assembler programing

Dear people

I have connected NRF24!01+ with PIC16F1826 for use as PRX and have also another similar for PRX

For an initial test I tryed to trasmit a closed / open switch state to a LED and as ussually hapens it does not work

Also I have a Tx packets each 200ms with one Data byte incremented in each Tx
I get SPI write an read ok but at PRX have not getting any received packet

There is the same program for PTX an PRX with  #define    PRX  o rnot at compiling so most of defined values are the same

What I get reading with SPI : in PRX , Reg 0x17 FIFO_STATUS  bit4 TX_EMPTY:
 is 1 before loading data
0 after loading payload   (4 bytes)
1 after CE goes H

At PRX side  not IRQ arises , not changes in Reg 07 bit RX_DR

I only use assembler programming and I didn´t found in the web any complete and working assembler example.

--> I am asking please the simplest example with a detailed list of commands to send for configuring and useing TPX
and PRX, similar at Appendix B, pag 77 in NRF24L01+ data sheet.

*** But please include the waiting delays and other instructions that may be  needed ***

For some address, default values may be used in a first test ? ( only 1 Pipe )

Is it posible not  using CRC ?

I need to have something working before going to a complete use of full NRF24L01+ capabilities

Finally I will insert well tested software in bigger assembler programs

I like to  replace a RS485 conexion with this RF link

I will1452.Control_NRF.rar send the assembler that I am testing if somebody like to see it, but RF part is not working

Waiting some help, Best Regards, Osvaldo Hojvat

  • Hi Osvaldo

    I also made a mistake earlier. I forgot you were using the nRF24L01+, and in this case you can't upload a packet for all FIFO's at once. This device only has 3 slots in the FIFO, so you would have to upload only 3 packets at first, and then upload the remaining packets as the ACK payloads are being picked up. 

    o.hojvat said:
    Where is the information of TX FIFO full and empty available in the PRX?

    You can find information about this in the FIFO_STATUS register (register 0x17). Please refer to the product specification for more information. 

    o.hojvat said:
    Is the same as the TX FIFO in PRT?  I did not found it clearly stated in the data sheet.

    What do you mean by PRT? I see you mention this several times in your post. There are only two modes in the device, PTX and PRX. 

    Also, I would appreciate it if you create a new ticket if you have more questions where you summarize the latest status of your project and what questions are remaining. This ticket is getting big and messy, with a mix of old and new questions, and the devzone is not really designed to handle long running tickets very well. 

    Best regards
    Torbjørn

  • I had confused in my mind about names (my memory errors)

    PRT- -> I wanted to say PTX  

    Now I noted that are RX and TX modes with a P letter at the begining.  I guess I will remember well it.

    What is the P letter  meaning?

         And the last question is if the Tx FIFOs used in PTX mode are the same Tx FIFOs used for ACK_PAYLOAD in a PRX mode device,  so the the informations about Tx FIFO full or empty are in register 0x17 for both cases.

         In data sheet page 62 there are mention of  ACK_PLD  TX_PLD  RX_PLD  as not numbered registers or FIFOs.

    After several days I may have RFcomunication  working  in the proyect and more information and questions.

    I will send it in a new ticket, as you sugested.

    Best Regards, Osvaldo

  • Hi 

    P means Primary. Since both devices will transmit and receive you can't just call them TX and RX. PTX is the device that transmits first, and receives the ACK second (primary transmit). 

    PRX is the device that receives first, and then transmits an ACK (primary receive). 

    o.hojvat said:
         And the last question is if the Tx FIFOs used in PTX mode are the same Tx FIFOs used for ACK_PAYLOAD in a PRX mode device,  so the the informations about Tx FIFO full or empty are in register 0x17 for both cases

    Yes. In PRX mode the TX FIFO is used to hold the ACK payloads, so the bits are the same. 

    Best regards
    Torbjørn

Related