This document describes a PIC microcontroller firmware controlling a cheap
nRF24L01+ (!) module. The purpose was building an ultra-low-power microwave
beacon for antenna range tests, radio range coverage, and path attenuation
on 2.4 GHz caused by trees, houses, etc compared to a radio link
over 'unobstructed line of sight'.
| Intf. pin | Name | Pin function | Description |
|---|---|---|---|
| 1 | VSS | Power | Ground (0V) |
| 2 | VDD | Power | Power Supply (+1.9V to +3.6V DC) |
| 3 | CE | Digital Input | Chip Enable Activates RX or TX mode |
| 4 | CSN | Digital Input | SPI Chip Select |
| 5 | SCK | Digital Input | SPI Clock |
| 6 | MOSI | Digital Input | SPI Slave Data Input |
| 7 | MISO | Digital Output | SPI Slave Data Output, with tri-state option |
| 8 | IRQ | Digital Output | Maskable interrupt pin. Active low |
nRF24_Control
|
|- Header Files
| |- Beacon.h
| |- CwGen.h
| |- main.h
| |- nRF24.h
| |- PIC18F_Drivers (also for PIC16F)
| | |- ClockSystem.h, fixed_address_memory.h, iop.h,
| | |- LowLevelTypes.h, micro_string.h, spi.h, sysconfig.h
| | |- half a dozen of USB header files
| | | (USB support is optional, so far only for PIC18F25F50)
| '- switches.h (located in a project specific subdirectory,
| e.g. switches_PIC16F628A or switches_PIC18F25J50)
|- Important Files (created by MPLAB X, only an auto-generated makefile)
|- Linker Files (created by MPLAB X, but completely empty)
|- Source Files
| |- Beacon.c
| |- CwGen.c
| |- main.c
| |- nRF24.c
| |- PIC18F_Drivers (also for PIC16F)
| | |- ClockSystem_PIC16F.c or ClockSystem_PIC18F.c
| | |- iop_PIC16F628A.c + iop_PIC16F628_asm.s (for PIC16F628A or PIC16F1845)
| | | or
| | | iop_PIC18FxxJ50.c (for the PIC18F25J50 variant)
| | |- micro_string.c, spi.c
| | '- half a dozen of USB driver- and descriptor modules
| | (USB support is optional, so far only for PIC18F25J50)
| '- possible more project-specific modules in future
|- Libraries (created by MPLAB, empty since we don't use "libraries")
|- Loadables (what the heck ? created by the IDE, empty)

Spectrum emitted by an nRF24L01+ during a burst of messages at 250 kbps
at 1 mW, using a board without the "PA+LNA" chip.