en:pfw:wireless_communication_nrf24l01
Table of Contents
nRF24L01+ 2.4GHz transceiver
The nRF24L01+ is a cheap 2.4GHz transceiver module with a low level part of the communication layer already in hardware available. Features of the nRF24L01+ are, adjustable auto retransmit, RF ACK handshake, a 1 to 32 byte payload with variable length (Dynamic Payload), Fifo of 3 deep, 125 selectable frequencies, adjustable output power, CRC, etc.
Software
- USCIB SPI MSP v100.f, SPI driver for MSP430G2553 (Github: USCIB SPI MSP v100.f)
- Basic 24L01dn G2553-01.f, Basic transceiver routines using 'Dynamic payloads' (Github: Basic 24L01dn G2553-01.f)
- Range checker G2553 usci.f, Tools to help testing the range & placement of the transceivers (Github: Range checker G2553 usci.f)
File load order for a test
- SPI driver for your MPU on two boards
- Adapted version of: basic 24L01dn G2553-01a.f file on two boards
- One MPU board with: Transmit test.f See demo commands
- And one MPU board with: Receive test.f
Load the Range checker G2553 usci.f on the boards when you want to check out busy channels or the placing of transceivers.
See here for a description of the words.
Basic nRF24L01+ commands
Command | Stack | Function |
---|---|---|
SPI-SETUP | ( – ) | Activate whole nRF24 SPI interface |
SETUP24L01 | ( – ) | Initialise nRF24l01 |
TRON | ( – ) | Tracer active |
TROFF | ( – ) | Tracer inactive |
>RF | ( db rate – ) | Set transmit strength & bitrate |
>LENGTH | ( +n – ) | Set size of current payload |
>PAY | ( b +n – ) | Store byte b at location +n of the payload |
PAY> | ( +n – b ) | Read byte b from location +n of the payload |
IRQ? | ( – flag ) | Leave true when an nRF24 interrupt has gone off |
RESPONSE? | ( – flag ) | Wait a bit, exit & leave true when an IRQ was received |
CE-HIGH | ( – ) | nRF24 to transmit modus |
CE-LOW | ( – ) | nRF24 to receive or standby modus |
XEMIT? | ( c – +n ) | Send byte c, +n are the transmit retries (max=10) |
XEMIT | ( c – ) | Send byte c to addressed nRF24 |
XKEY | ( – c ) | Receive byte c that is addressed to me |
SET-DEST | ( +n – ) | Set address of destination nRF24 to +n |
Bidirectional demo commands
Command | Stack | Function |
---|---|---|
TRANSMIT1 | ( +n – ) | Send a T every +n milliseconds, display answer |
TEST1 | ( – ) | Send a T every 50 milliseconds, display answer |
RECEIVER | ( – ) | Receive command, incr. counter & send it back |
Range & disturbance test commands
Command | Stack | Function |
---|---|---|
CHECK | ( – ) | Check all available frequency channels |
CARRIER | ( +n – ) | Check only frequency channel +n |
WAVE | ( +n pwr – ) | Send carrier on channel +n with strength pwr |
PULSE | ( +n pwr p – ) | Send carrier on channel +n with strength pwr in p millisec. pulses |
Bidirectional transmit & receive test in action
A self constructing mesh network can be found here.
en/pfw/wireless_communication_nrf24l01.txt · Last modified: 2023-09-06 13:06 by 157.90.7.32