nRF24L01详解.docx

上传人:b****2 文档编号:1969491 上传时间:2022-10-25 格式:DOCX 页数:21 大小:651.56KB
下载 相关 举报
nRF24L01详解.docx_第1页
第1页 / 共21页
nRF24L01详解.docx_第2页
第2页 / 共21页
nRF24L01详解.docx_第3页
第3页 / 共21页
nRF24L01详解.docx_第4页
第4页 / 共21页
nRF24L01详解.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

nRF24L01详解.docx

《nRF24L01详解.docx》由会员分享,可在线阅读,更多相关《nRF24L01详解.docx(21页珍藏版)》请在冰豆网上搜索。

nRF24L01详解.docx

nRF24L01详解

第一章、无线收发模块(nRF24L01)

1.1、nRF24L01介绍

(1)2.4Ghz全球开放ISM频段免许可证使用

(2)最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合

(3)126频道,满足多点通信和跳频通信需要

(4)内置硬件CRC检错和点对多点通信地址控制

(5)低功耗1.9-3.6V工作,待机模式下状态为22uA;掉电模式下为900nA

(6)内置2.4Ghz天线,体积小巧15mmX29mm

(7)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便

(8)内置专门稳压电路,使用各种电源包括DC/DC开关电源均有很好的通信效果

(9)2.54MM间距接口,DIP封装

(10)工作于EnhancedShockBurst具有Automaticpackethandling,Autopackettransactionhandling,具有可选的内置包应答机制,极大的降低丢包率。

(11)与51系列单片机P0口连接时候,需要加10K的上拉电阻,与其余口连接不需要。

(12)其他系列的单片机,如果是5V的,请参考该系列单片机IO口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!

如果是3.3V的,可以直接和RF24l01模块的IO口线连接。

比如AVR系列单片机,如果是5V的,一般串接2K的电阻

1.2、内部结构及引脚介绍

(1)结构方框图

 

(2)引脚介绍

引脚封装

引脚及其功能描述

引脚

名称

引脚功能描述

1

CE

协同nRF24L01状态寄存器共同控制芯片模式

2

CSN

片选线,低电平有效

3

SCK

SPI时钟线

4

MOSI

SPI,数据输入线

5

MISO

SPI,数据输出线

6

IRQ

可屏蔽中断引脚

7

VDD

电源(+3V)

8

VSS

电源(0V)

9

XC2

晶体振荡器2脚(输出)

10

XC1

晶体振荡器1脚/外部时钟输入脚

11

VDD_PA

给RF功率放大器提供1.8V电源

12

ANT1

天线接口1

13

ANT2

天线接口2

14

VSS

接地(0V)

15

VDD

电源(+3V)

16

IREF

参考电流(模拟输入)

引脚

名称

引脚功能描述

17

VSS

接地(0V)

18

VDD

电源(+3V)

19

DVDD

去耦电路电源正极端(电源输出)

20

VSS

接地(0V)

1.3、寄存器地址及一些重要寄存器详细介绍

(1)寄存器地址

地址

名字及其描述

00

CONFIG(配置寄存器,配置nRF24L01一些工作方式)

01

EN_AA(使能自动应答功能)

02

EN_RXADDR(使能接收数据通道0-5地址)

03

SETUP_AW(设置地址宽度)

04

SETUP_RETR(设置自动重发等信息)

05

RF_CH(射频通道,设置nRF24L01工作通道频率 )

06

RF_SETUP(射频寄存器,设置数据传输率、发射功率、低噪声增益等)

07

STATUS状态寄存器(反应芯片当前工作的各种状态)

08

OBSERVE_TX(发送检测寄存器)

09

CD(载波检测)

0A

RX_ADDR_P0(数据通道0接收地址)

0B

RX_ADDR_P1(数据通道1接收地址)

0C

RX_ADDR_P2(数据通道2接收地址)

0D

RX_ADDR_P3(数据通道3接收地址)

0E

RX_ADDR_P4(数据通道4接收地址)

0F

RX_ADDR_P5(数据通道5接收地址)

10

TX_ADDR(发送地址,先写低字节)

11

RX_PW_P0(数据通道0接收数据长度)

12

RX_PW_P1(数据通道1接收数据长度)

13

RX_PW_P2(数据通道2接收数据长度)

14

RX_PW_P3(数据通道3接收数据长度)

15

RX_PW_P4(数据通道4接收数据长度)

16

RX_PW_P5(数据通道5接收数据长度)

17

FIFO_STATUS(FIFO 状态寄存器,TXFIFO与RXFIFO空满状态)

(2)状态寄存器

寄存器地址:

07名称:

STATUS

D7

D6

D5

D4

D3

D2

D1

D0

保留

RX_DR

TX_DS

MAX_RT

RX_P_NO

TX_FULL

·RX_DR:

接收数据中断位。

芯片接收到有效数据时置1,写“1”清楚中断。

复位值为0。

·TX_DS:

数据发送成功中断位。

芯片数据发送成功后中断置1。

但如果nRF24L01工作在自动应答模式下,只有当接收到应答信号才置1,写“1”清除中断。

复位值为0。

·MAX_RT:

达到最多次重发中断位。

写“1”清除中断,如果MAX_RT中断产生则必须清除后芯片才能进行通讯。

复位值为0。

·RX_P_NO:

接收数据通道号位。

000-101:

数据通道号,110:

未使用,111:

RXFIFO寄存器为空。

复位值为111。

·TX_FULL:

TXFIFO寄存器满标志。

1:

TXFIFO寄存器满,0:

TXFIFO未满,有用空间。

(3)配置寄存器

寄存器地址:

00名称:

CONFIG

D7

D6

D5

D4

D3

D2

D1

D0

保留

MASK_RX_DR

MASK_TX_DS

MASK_MAX_RT

EN_CRC

CRC0

PWR_UP

PRIM_RX

·MASK_RX_DR:

可屏蔽中断RX_RD位。

MASK_RX_DR=1,IRQ引脚不显示RX_DR中断。

MASK_RX_DR=0,RX_DR中断引起IRQ引脚拉低。

复位值为0。

·MASK_TX_DS:

可屏蔽中断TX_DS位。

MASK_TX_DS=1,IRQ引脚不显示TX_DS中断。

MASK_TX_DS=0,IRQ引脚显示TX_DS中断。

复位值为0。

·MASK_MAX_RT:

可屏蔽中断MAX_RT位。

MASK_MAX_RT=1,IRQ引脚不显示MAX_RT中断。

MASK_MAX_RT=0,IRQ引脚显示MAX_RT中断。

复位值为0。

·EN_CRC:

CRC使能位。

如果EN_AA中任意一位为高,则EN_CRC强迫为高。

复位值为1。

·CRC0:

CRC模式选择位。

0:

8位CRC校验,1:

16位CRC校验。

复位值为0。

·PWR_UP:

nRF24L01上电掉电模式设置位。

1:

上电,0:

掉电。

复位值为0。

·PRIM_RX:

nRF24L01接收、发射模式设置位。

1:

接收模式,0:

发射模式。

复位值为0。

1.4、nRF24L01功能描述

(1)nRF24L01主要的工作模式设置

模式

PWR_UP

PRIM_RX

CE

FIFO寄存器状态

接收模式

1

1

1

×

发送模式

1

0

1

数据存放在TXFIFO中

发送模式

1

0

1跳变0

数据发送

待机模式Ⅱ

1

0

1

TXFIFO为空

待机模式Ⅰ

1

×

0

待机

掉电模式

0

×

×

芯片不工作

·待机模式:

待机模式I在保证快速启动的同时减少系统平均消耗电流。

在待机模式I下,晶振正常工作。

在待机模式II下,部分时钟缓冲器处在工作模式。

当发送端TX FIFO寄存器为空并且CE为高电平时进入待机模式II。

在待机模式期间,寄存器配置字内容保持不变。

·掉电模式:

在掉电模式下,nRF24L01各功能关闭,保持电流消耗最小。

进入掉电模式后,nRF24L01停止工作,但寄存器内容保持不变。

掉电模式由寄存器中PWR_UP位来控制。

(2)增强型的ShockBurstTM收发模式

·增强型ShockBurstTM模式可以使得双向链接协议执行起来更为容易、有效。

典型的双向链接为:

发送方要求终端设备在接收到数据后有应答信号,以便于发送方检测有无数据丢失。

一旦数据丢失,则通过重新发送功能将丢失的数据恢复。

增强型的ShockBurstTM模式可以同时控制应答及重发功能而无需增加MCU工作量。

·nRF24L01在接收模式下可以接收6路不同通道的数据。

每一个数据通道使用不同的地址,但是共用相同的频道。

也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01进行通讯,而设置为接收模式的nRF24L01可以对这6个发射端进行识别。

数据通道0是唯一的一个可以配置为40位自身地址的数据通。

道1-5数据通道都为8位自身地址和32位公用地址。

所有的数据通道都可以设置为增强型ShockBurst模式。

·nRF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号。

在发送端,数据通道0被用做接收应答信号。

因此,数据通道0的接收地址要与发送端地址相等以确保接收到正确的应答信号。

·nRF24L01配置为增强型的ShockBurstTM发送模式下,时只要MCU有数据要发送,nRF24L01就会启动ShockBurstTM模式来发送数据。

在发送完数据后nRF24L01转到接收模式并等待终端的应答信号。

如果没有收到应答信号,nRF24L01将重发相同的数据包,直到收到应答信号或重发次数超过SETUP_RETR_ARC寄存器中设置的值为止,如果重发次数超过了设定值则产生MAX_RT中断。

·只要收到确认信号,nRF24L01就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO中的数据清除掉并产生TX_DS中断IRQ引脚置高)。

·增强型ShockBurstTM模式下数据包的格式

前导码

TX_ADDR(3-5字节)

9位(标志位)

DATA(1-32字节)

CRC校验

·增强型ShockBurstTM发送模式:

1.配置寄存器位PRIM_RX为低

2.当MCU有数据要发送时,接收节点地址(TX_ADDR)和有效数据(TX_PLD)通过SPI接口写入nRF24L01。

发送数据的长度以字节计数从MCU写入TXFIFO。

当CSN为低时数据被不断的写入。

发送端发送完数据后,将通道0设置为接收模式来接收应答信号,其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同

3.设置CE为高,启动发射。

CE高电平持续时间最小为10us。

4.nRF24L01ShockBurstTM模式:

􀁺无线系统上电

􀁺启动内部16MHz时钟

􀁺无线发送数据打包(见数据包描述)

􀁺高速发送数据(由MCU设定为1Mbps或2Mbps)

5.如果启动了自动应答模式(自动重发计数器不等于0,ENAA_P0=1),无线芯片立即进入接收模式。

如果在有效应答时间范围内收到应答信号,则认为数据成功发送到了接收端,此时状态寄存器的TX_DS位置高并把数据从TXFIFO中清除掉。

如果在设定时间范围内没有接收到应答信号,则重新发送数据。

如果自动重发计数器(ARC_CNT)溢出(超过了编程设定的值),则状态寄存器的MAX_RT位置高。

不清除TXFIFO中的数据。

当MAX_RT或TX_DS为高电平时IRQ引脚产生中断。

IRQ中断通过写状态寄存器来复位。

如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在MAX_RX中断清除之前不会重发数据包。

数据包丢失计数器(PLOS_CNT)在每次产生MAX_RT中断后加一。

也就是说

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1