nRF24l01使用说明

Enhanced ShockBurstTM 发送流程

  1. 把地址和要发送的数据按时序送入nRF24l01
  2. 配置config寄存器,使之进入发送模式
  3. 把CE置高(至少10us),激发Enhanced ShockBurstTM发射

Enhanced ShockBurstTM 发送模式初始化流程

  1. 写Tx节点地址 TX_ADDR
  2. 写Rx节点的地址(使能auto ack) RX_ADDR_P0
  3. 使能auto ack EN_AA
  4. 使能PIPE0 EN_RXADDR
  5. 配置自动重发次数 SETUP_RETR
  6. 选择通信频率 RF_CH (2400 + RF_CH MHz) (0~125)
  7. 配置发射参数(低噪方法增益、发射功率、无线速率) RF_SETUP
  8. 配置24l01的基本参数以及切换工作模式 CONFIG

Enhanced ShockBurstTM 接收流程

  1. 配置接收地址和要接收的数据包大小
  2. 配置CONFIG寄存器,使之进入接收模式,置高CE
  3. 130us后,nrf24l01进入监视状态,等待接收数据包
  4. 当接收到正确的数据包,nrf24l01自动去除字头、地址和CRC校验码
  5. nrf24l01通过把STATUS寄存器的RX_DR置位(引起微控制器中断)通知微控制器
  6. 微控制器把数据从FIFO读出(0x61指令)
  7. 数据读取完毕后,可以清楚STATUS寄存器。nrf24l01进入四种主要模式之一

Enhanced ShockBurstTM 接收模式初始化

  1. 写Rx节点的地址 RX_ADDR_P0
  2. 使能auto ack EN_AA
  3. 使能PIPE0 EN_RX_ADDR
  4. 选择通信频率 RF_CH
  5. 选择通道0有效数据宽度 RX_PW_P0
  6. 配置发射参数(低噪放大增益、发射功率、无线速率) RF_SETUP
  7. 配置24l01的基本参数以切换工作模式 CONFIG

SPI指令

指令名称 指令格式 操作
R_REGISTER 000A AAAA 读寄存器。A AAAA为要读取的寄存器地址
W_REGISTER 001A AAAA 写寄存器。
R_RX_PAYLOAD 0110 0001 读RX有效数据,1~32字节。读取操作从字节0开始,当读RX有效数据完成后,FIFO寄存器中的使有效数据将被清除。接收模式下使用
W_TX_PAYLOAD 1010 0000 写有效数据,1~32字节。写操作从字节0开始。发送模式下用。
FLUSH_TX 1110 0001 清除TX FIFO寄存器。发送模式下用。
FLUSH_RX 1110 0010 清除RX FIFO寄存器。接收模式下用。
#define NRF_READ_REG    0x00
#define NRF_WRITE_REG   0x20
#define RD_RX_PLOAD     0x61
#define WR_TX_PLOAD     0xA0
#define FLUSH_TX        0xE1
#define FLUSH_RX        0xE2
#define NOP             0xFF

CONFIG寄存器

地址 参数 复位值 类型 描述
0x00 CONFIG 配置寄存器
Reserved 7 0 R/W 保留位
MASK_RX_DR 6 0 R/W 可屏蔽中断 RX_RD<br /> 1: IRQ引脚不输出RX_RD中断<br />0: RX_RD中断时,IRQ输出低电平
MASK_TX_DS 5 0 R/W 可屏蔽中断 TX_DS<br /> 1: IRQ引脚不输出TX_DS中断<br />0: RX_DS中断时,IRQ输出低电平
MASK_MAX_RT 4 0 R/W 可屏蔽中断 MAX_RT<br />1: IRQ引脚不输出MAX_RT中断<br />0: MAX_RT中断时,IRQ输出低电平
EN_CRC 3 1 R/W CRC使能。如果EN_AA中任意一位置高,则EN_CRC强迫为高
CRCO 2 0 R/W CRC模式。<br />0: 8位CRC<br />1: 16位CRC
PWR_UP 1 0 R/W 1: 上电<br />0: 掉电
PRIM_RX 0 0 R/W 1: 接收模式<br />0: 发送模式

自动应答使能寄存器 EN_AA

地址 参数 复位值 类型 描述
0x01 EN_AA 自动应答使能寄存器<br /> 同时可以使能Enhanced模式
Reserved 7~6 0 R/W 保留位
ENAA_P5 5 1 R/W 数据通道5,自动应答允许
ENAA_P4 4 1 R/W 数据通道4,自动应答允许
ENAA_P3 3 1 R/W 数据通道3,自动应答允许
ENAA_P2 2 1 R/W 数据通道2,自动应答允许
ENAA_P1 1 1 R/W 数据通道1,自动应答允许
ENAA_P0 0 1 R/W 数据通道0,自动应答允许

RX地址使能寄存器

地址 参数 复位值 类型 描述
0x02 EN_RX_ADDR RX地址使能寄存器
Reserved 7~6 0 R/W 保留位
ERX_P5 5 1 R/W 数据接收通道5使能
ERX_P4 4 1 R/W 数据接收通道4使能
ERX_P3 3 1 R/W 数据接收通道3使能
ERX_P2 2 1 R/W 数据接收通道2使能
ERX_P1 1 1 R/W 数据接收通道1使能
ERX_P0 0 1 R/W 数据接收通道0使能

自动重发设置寄存器

地址 参数 复位值 类型 描述
0x04 SETUP_RETR 自动重发设置寄存器
ARD 7~4 0000 R/W 自动重发延时<br />0000~1111 -> 85us+250*(ARD+1)us
ARC 3~0 0000 R/W 自动重发次数<br />0000~1111 -> 0代表禁止

射频频率设置寄存器

地址 参数 复位值 类型 描述
0x05 RF_CH 射频频率设置寄存器
Reserved 7 0 R/W 保留位
RF_CH 6~0 000 0010 R/W 0~125,设置nrf24l01的射频频率

射频配置寄存器

地址 参数 复位值 类型 描述
0x06 RF_SETUP 射频配置寄存器
COUNT_WAVE 7 0 R/W 使能连续载波发送
Reserved 6 0 R/W 保留位
RF_DR_LOW 5 0 R/W 射频数据速率设置低位<br />1: 250Kbps
PLL_LOCK 4 0 R/W PLL_LOCK允许,仅用于测试模式
RF_DR_HIGH 3 0 R/W 射频数据速率设置高位,和低位配置设置速率[ RF_DR_HIGH RF_DR_LOW ]<br />00: 1Mbps <br />10: 2Mbps <br />01: 250Kbps <br />11: 保留
RF_PWR 2~1 11 R/W 设置射频输出功率<br />00: -18dBm <br />01: -12dBm <br />10: -6dBm <br />11: 0bBm
Obsolete 0 1 R/W -

状态寄存器

地址 参数 复位值 类型 描述
0x07 STATUS 状态寄存器
Reserved 7 0 R/W 保留位
RX_DR 6 0 R/W 数据接收标志,收到数据后置一。写1清0
TX_DS 5 0 R/W 数据发送完成标志,如果工作在自动应答模式,则必须收到ACK才会置1。写1清0
MAX_RT 4 0 R/W 达到最大重发次数。写1清0
RX_P_NO 3~1 111 R/W 接收数据通道<br />000~111: 数据通道号 <br />110: 未使用 <br />111: RX_FIFO寄存器空
TX_FULL 0 1 R/W TX_FIFO寄存器满标志<br />1: 满 <br />0: 未满

数据通道接收地址寄存器

地址 参数 复位值 类型 描述
0x0A RX_ADDR_P0 数据通道0接收地址寄存器
RX_ADDR_P0 39~0 0xe7e7e7e7e7 R/W 数据通道0接收地址寄存器,最大长度5个字节<br />由SETUP_AW(0x03)寄存器控制地址长度(默认是5个字节)

类似的,还有通道1~5接收地址 设置寄存器: RX_ARRD_P1~5。
不过P1~P5共用32位高位地址,由P1设置,
P2~P4只可以设置8位地址(低8位)。

发送地址设置寄存器

地址 参数 复位值 类型 描述
0x10 TX_ADDR 发送地址设置寄存器
TX_ADDR 39~0 0xe7e7e7e7e7 R/W 发送地址设置(先写低字节)。在Enhanced模式下,RX_ADDR_P0的地址应与此地址相同

接收通道有效数据宽度设置寄存器

地址 参数 复位值 类型 描述
0x11 RX_PW_P0 接收通道0有效数据宽度设置寄存器
Reserved 7~6 0 R/W 保留位
RX_PW_P0 5~0 0 R/W 数据通道0接收区有效数据宽度<br />0: 非法 <br />1~32: 表示1~32字节

类似的还有通道1~5有效数据宽度设置寄存器: RX_PW_P1~5,
对应通道1~5的接收有效数据宽度,方法同RX_PW_P0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345