Difference between revisions of "NRF24L01"

From ElectroDragon
Jump to navigation Jump to search
(Serial to NRF24L01)
(Redirected page to Category:NRF24)
(Tag: New redirect)
 
Line 1: Line 1:
 
+
#redirect [[category: NRF24]]
== Features  ==
 
The Nordic Semiconductor nRF24L01 is descended from the TXRX24G, but it offers some important features that make it much easier to deal with:
 
 
 
*Enhanced Shockburst™: This is Nordic’s link layer protocol that gives the radio auto-acknowledgement, auto-retransmit, and packet loss detection capability. It will make the wireless link much more reliable without adding complexity to the students’ application programs.
 
*SPI bus: The nRF24L01 implements a 4-wire Serial Peripheral Interface bus. This allows the software driver to use the microcontroller’s native high speed SPI module for communications instead of having to do manual bit bashing, which is less reliable, slower, and more difficult to implement.
 
*External antenna: This should improve the new radio’s sensitivity and range over those of the old radios.
 
*MultiCeiver™: Each radio can receive packets on up to six different addresses. This allows us to implement features such as selective packet broadcasting without sacrificing other functionality.
 
 
 
Other features: Variable packet widths, packet queueing, ack packet payload, etc.
 
 
 
 
 
== Module pin definition, board schematic ==
 
<gallery>
 
File:Nrf24l01_pin.jpg | pin definition
 
File:NRF24L01B.png| Board and pin outs for NRF24L01B
 
File:NRF24 Board design.png | module schematic
 
 
 
</gallery>
 
 
 
== Dimension, Schematic  ==
 
<gallery>
 
 
 
File:Nrf24l01 dimension.jpg | NRF24L01L
 
File:NRFDuino-S.png | NRFduino - dimension
 
File:Nrf24duino schematic.png | NRFduino - schematic keeps updating, reference only
 
File:STC15L204_NRF24L01.jpg | STC15L204 TTL UART Board
 
File:NRF24L01-TTL_V2.jpg | STM8 TTL UART Board
 
</gallery>
 
* NRF24Duino pin definition
 
{| class="wikitable sortable"
 
|-
 
! Pins !! Configuration
 
|-
 
| D2 via Jumper || Nrf24l01 - IRQ interrupt
 
|-
 
| D7 || Nrf24l01 - enable pin (EN or CE)
 
|-
 
| D8 || SPI Flash - chip slect pin(CS)
 
|-
 
| D9 via Jumper || On-board testing LED
 
|-
 
| D10 || Nrf24l01 - chip select pin(CS or SS)
 
|-
 
| D11-D13 || Nrf24l01 and SPI Flash - SPI pins
 
|}
 
 
 
== NRF24duino ==
 
=== Quick start ===
 
* To have a quick start of this board, you can try a pair, or another arduino with nrf24l01.[[File:Nrf24duino connect to FTDI.JPG|thumbnail]]
 
* The board are pre-flashed RF24 get started sketch, use RF24 arduino library
 
* Connect the board with FTDI-basic
 
* Turn on the serial monitor in arduino
 
Baudrate: 57600
 
* One board should be on "T" mode, another one should be on "R" mode.
 
* Note: LED is not work for default pre-programmed sketch, but can be used for other libraries which support nrf24l01
 
* To upload new sketch, please choose board:
 
Arduino uno
 
(new firmware will switch to pro-mini 3v3/8m firmware, if your board can not work please also try this option or contact us)
 
* [[Memory|SPI Flash arduino library on this page.]]
 
=== Bootloader Flash Guide ===
 
* This is not necessary for, we already pre-loaded the bootloader
 
<gallery>
 
File:Nrf24l01_prog_guide.jpg | Flash guide 
 
</gallery>
 
== Other Boards (reference only) ==
 
=== XL24LE1 ===
 
* [[:File:XL24LE1-dev_board_schematic.pdf|Dev Board Schematic]]
 
* [[:File:NRF24LE1_Product_Specification_rev1_6.pdf|NRF24LE1 Specification]]
 
 
 
=== NRF24L01 with MCU USB Control ===
 
AT+SET=00,12,34,56,78,90,27
 
{| class="wikitable sortable"
 
|-
 
! Section !! Header text !! Header text
 
|-
 
| 1 || 00 || frequency
 
|-
 
| 2 || 12 || Register to setup power rate and serial port baud rate
 
|-
 
| 3-7 || 34,56,78,90,27 || Example
 
|}
 
=== NRF24L01 with STC C51 MCU ===
 
 
 
STC15L204EA +NRF24L01
 
[[:File:STC15L204_NRF24L01.pdf|Schematic]]<br />
 
 
 
[[:File:STC15L204EA_NRF24L01_demo_code.zip|Demo Code of STC51]]
 
''' Usage '''
 
Connect board RX to TX (MCU,PC), and board TX to RX(MCU,PC)<br />
 
Simply use a UART connector (PL2303, FT232RL, CP2102, etc) to connector between PC and this module.
 
* To upload C51 demo code, notice the MCU frequency, for default button pressed frequency is 22.1184 mhz, and data transmission demo code frequency is 18.xx Mhz
 
 
 
''' Testing Methods '''
 
* In this case you don't need connect with any UART and go to PC
 
* Prepare two pairs, all power up normally:
 
* One pair of TX and RX connect to LEDs, and LEDs goes to VCC.
 
* The TX (Or RX) in another pair should shortly connect to GND
 
* Now the LEDs will start to blinking which means both works well
 
* Try to further adapt the demo code for your projects
 
 
 
== Serial to NRF24L01 ==
 
{| class="wikitable sortable"
 
|-
 
! Command !! Example !! Parameters !! Default
 
|-
 
| baudrate || AT+BAUD=7 set to 115200 || Example || 9600
 
|-
 
| Air speed || AT+RATE=1 || 250kbps, 1Mbps, 2Mbps || 2Mbps
 
|-
 
| Set Target Receiver module address || AT+RXA=0xAA,0xBB,0xCC,0xDD,0xEE || - || 0xFF,0xFF,0xFF,0xFF,0xFF
 
|-
 
| Set local transmitter address || AT+TXA=0xAA,0xBB,0xCC,0xDD,0xEE || - || 0xFF,0xFF,0xFF,0xFF,0xFF
 
|-
 
| Set channel || AT+FREQ=2.424G || - || 2.4GHz
 
|-
 
| CRC check || AT+CRC=8 || 8 or 16 || 2.4GHz
 
|-
 
| System enquiry || AT? || - || -
 
|}
 
 
 
== Documents ==
 
{| class="wikitable sortable"
 
|-
 
! Title !! Type
 
|-
 
| [[File:NRF24L01P_Product_Specification_1_0.pdf|NRF24L01 Datasheet]]  || Documents
 
|-
 
| [http://www.airspayce.com/mikem/arduino/RadioHead/index.html Radiohead] || Arduino library
 
|-
 
| [https://github.com/tmrh20/RF24 tmrh20 - RF24], recommanded || Arduino library
 
|-
 
| [https://github.com/maniacbug/RF24/ RF24], [http://maniacbug.github.com/RF24/examples.html RF24 v1] || Arduino library
 
|-
 
| [https://github.com/aaronds/arduino-nrf24l01/tree/master/Mirf Mirf] || Arduino library
 
 
 
|-
 
| [https://github.com/mysensors/Arduino/tree/master/libraries/MySensors Mysensors], [http://www.mysensors.org/ instruction] || Arduino library
 
|-
 
| [http://www.tinkerer.eu/AVRLib/nRF24L01 AVRlib] || Arduino port
 
|}
 
 
 
Documents
 
* [[NRF24L01-Mirf|Nrf24l01-mirf wiki page]]
 
*[http://www.arduino.cc/playground/InterfacingWithHardware/Nrf24L01 Arduino documents for nrf24l01]
 
* [https://github.com/Edragon/AVR Other demo code for atmega16, stc89, etc see on this page.]
 
 
 
 
 
 
 
[[category: Wireless]]
 

Latest revision as of 08:18, 27 December 2019

Redirect to: