Command (instruction) mnemonics from datasheet - how to use them?

Good morning!

I'm attempting to get a better understanding of how the interaction with hardware happens...

In the datasheet for nRF24L01+ transceiver there is a list of commands (Command set) that looks like this:

Command name Command word
(binary)
# Data bytes Operation
R_REGISTER 000A AAAA 1 to 5
LSByte first
Read command and status registers.
AAAAA = 5 bit Register Map Address
R_RX_PAYLOAD 0110 0001 1 to 32
LSByte first
Read RX-payload: 1 – 32 bytes. A read operation
always starts at byte 0. Payload is deleted from
FIFO after it is read. Used in RX mode.

and the list goes on...

This brings up a few questions.

Datasheet refers to the above as the Command set while author of the RF24 library call it Instruction Mnemonics. Are the two therms directly interchangeable or do they have slightly different meaning?

In the first command in the second column part of the address is replaced by AAAAA - 5 bit Register Map Address... What does it mean?

The second command requests a received package to be sent over the SPI. How to call a command?

Any incite will be greatly appreciated!

Here, Command Set and Instruction Mnemonics mean the same thing. Technically, though, an instruction mnemonic is a supposedly easy to remember name of a command, like R_REGISTER.

In the R_REGISTER command, AAAAA represent the five bits of the Register Map Address. Each A is replaced by a "0" or a "1" to give 32 distinct addresses. The three leading zeros in 000AAAAA are an essential part of the command byte and must be zeros.

If you mean by the last question "how to send a command", study the instructions for the library and/or the example code.

Dear Jremington, thank you for your reply.

I'm sorry for misleading question.

I meant to ask how to address the command register?
How to let the system know that I'm sending a command and not data?

The actual technical side of how commands are sent is quite clear...

John Boxall in his tutorial series shows a way of transmitting commands to a chip - just send it before the data:

void write_led_decimals(int value)
{
 digitalWrite(SLAVESELECT, LOW);
 delay(10);
 spi_transfer(0x77);               // Decimal Point OpCode
 spi_transfer(value);              // Decimal Point Values
 digitalWrite(SLAVESELECT, HIGH);  //release chip, signal end transfer
}

Within the RF24 library this approach is taken further - mnemonics / commands are defined in a separate file and then in RF24.cpp library file command is used "by name" instead of its code:

#define R_RX_PAYLOAD  0x61  //or 0b1100001


status = _SPI.transfer( R_RX_PAYLOAD );