文档详情

nrf24l01学习笔记

今***
实名认证
店铺
DOC
355KB
约14页
文档ID:105664634
nrf24l01学习笔记_第1页
1/14

按照如下方式在电路板上安排的管脚 8 7 6 5 4 3 2 1各管脚如下定义:8.IRQ 7.MISO6.MOSI 5.SCK4.CSN 3.CE 2.VCC 1.GND具体说明:3.CE 芯片的模式控制线在 CSN 为低的情况下,CE 协同NRF24L01 的CONFIG 寄存器共同决定NRF24L01 的状态(参照NRF24L01 的状态机) 4.CSN 为芯片的片选线 CSN 为低电平芯片工作5.SCK 为芯片控制的时钟线(SPI时钟)6.MOSI 为芯片控制数据线(Master output slave input) 主输出 从输入7.MISO 芯片控制数据线 (Master input slave output) master 硕士 主人 船长 slave 从属奴隶 主输入 从输出8.IRQ 中断信号引脚中断时变为低电平,即NRF24L01内部发生中断时IRQ 引脚从高电平变为低电平引脚会在以下三种情况变低:Tx FIFO 发完并且收到ACK(使能ACK情况下)、Rx FIFO 收到数据、达到最大重发次数。

中断:nRF24L01 的中断引脚(IRQ)为低电平触发,当状态寄存器中TX_DS(数据发送完成中断位)、RX_DR(接收数据中断位) 或MAX_RT(达到最多次重发中断位)为高时触发中断当MCU 给中断源写‘1’时,中断引脚被禁止可屏蔽中断可以被IRQ 中断屏蔽通过设置可屏蔽中断位为高,则中断响应被禁止默认状态下所有的中断源是被禁止的在写寄存器之前一定要进入待机模式或掉电模式NRF24L01有以下工作模式:其工作模式又CE和寄存器内部PWR_UP、PRIM_RX共同控制,见下表:NRF24L01所处模式 PWR_UP位状态PRIM_RX 位状态CE引脚电平 FIFO 寄存器状态接收模式111-发送模式101数据在TX FIFO 寄存器中发送模式10 1→0 停留在发送模式,直至数据发送完待机模式II 101 TX FIFO 为空待机模式I1-0无数据传输掉电模式0- - - PWR_UP和PRIM_RX 在配置寄存器(CONFIG)中设置,配置寄存器如下:配置寄存器:寄存器地址:00 名称:CONFIGCONFIG配置寄存器(配置NRF24L01一些工作方式)第7位第6位(MASK_RX_DR)第5位(MASK_TX_DS)第4位(MASK_MAX_RT)第3位(EN_CRC)第2位(CRCO)第1位(PWR_UP)第0位(PRIM_RX )保留(未用)(MASK_RX_DR)可屏蔽中断RX_RD。

1:IRQ 引脚不显示RX_RD 中断0:RX_RD 中断产生时IRQ 引脚电平为低(MASK_TX_DS)可屏蔽中断TX_DS1:IRQ 引脚不显示TX_DS 中断0:TX_DS 中断产生时IRQ 引脚电平为低(MASK_MAX_RT)可屏蔽中断MAX_RT1:IRQ 引脚不显示TX_DS 中断0:MAX_RT 中断产生时IRQ 引脚电平为低(EN_CRC)CRC使能如果EN_AA 中任意一位为高则EN_CRC 强迫为高CRCO)CRC模式‘0’-8 位CRC 校验‘1’-16 位CRC 校验(PWR_UP)NRF24L01上电掉电模式设置位1:上电 0:掉电(PRIM_RX )NRF24L01接收、发射模式设置位 1:接收模式 0:发射模式STATUS状态寄存器(反应nrf24l01当前工作的各种状态)第7位第6位(RX_DR)第5位(TX_DS)第4位第3位第2位第1位第0位保留(未用)(RX_DR)接收数据中断位当接收到有效数据后置 1 写‘1’清除中断(TX_DS) 数据发送完成中断当数据发送完成后产生中断如果工作在自动应答模式下,只有当接收到应答信号后此位置1写‘1’清除中 断。

MAX_RT) 达到最多次重发中断写‘1’清除中断如果MAX_RT 中断产生则必须清除后系统才能进行通讯 (RX_P_NO) 即接收数据通道号 位000-101:数据通道号、110:未使用、111:RX FIFO 寄存器为空(TX_FULL) TX FIFO 寄存器满标志1:TX FIFO 寄存器满0: TX FIFO 寄存器未满,有可用空间5.1收发模式收发模式有Enhanced ShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种,收发模式由器件配置字决定,具体配置将在器件配置部分详细介绍5.1.1 Enhanced ShockBurstTM收发模式Enhanced ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高Enhanced ShockBurstTM技术同时也减小了整个系统的平均工作电流。

在Enhanced ShockBurstTM收发模式下, NRF24L01自动处理字头和CRC校验码在接收数据时,自动把字头和CRC校验码移去在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将时发送过程完成后5.1.1.1 Enhanced ShockBurstTM发射流程A. 把接收机的地址和要发送的数据按时序送入NRF24L01;B. 配置CONFIG寄存器,使之进入发送模式C. 微控制器把CE置高(至少10us),激发NRF24L01进行Enhanced ShockBurstTM 发射; D.N24L01的Enhanced ShockBurstTM发射(1) 给射频前端供电; (2)射频数据打包(加 字头、CRC校验码); (3) 高速发射数据包; (4)发射完成,NRF24L01进入空闲 状 态4.1.1.2 Enhanced ShockBurstTM接收流程A. 配置本机地址和要接收的数据包大小;B. 配置CONFIG寄存器,使之进入接收模式,把CE置高C. 130us后,NRF24L01进入监视状态,等待数据包的到来; D.当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去;E. NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器;F. 微控制器把数据从NewMsg_RF2401 读出;G. 所有数据读取完毕后,可以清除STATUS寄存器。

NRF2401可以进入四种主要的模式之一5.1.2 ShockBurstTM收发模式ShockBurstTM收发模式可以与Nrf2401a,02,E1及E2兼容,具体表述前看本公司的N-RF2401文档5.2 空闲模式NRF24L01的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能的同时,缩短芯片的起动时间在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关5.4 关机模式在关机模式下,为了得到最小的工作电流,一般此时的工作电流为900nA左右关机模式下,配置字的内容也会被保持在NRF2401片内,这是该模式与断电状态最大的区别5.5增强型的ShockBurst TM 模式增强型ShockBurst TM 典型的双链方式为:发送方要求终端设备在接收到数据后有应答信号,以便发送方检测有无数据丢失,一旦丢失则重发数据重发数据设置在地址为 04 的数据重发设置寄存器 用于设置其重发次数及设置在未收到应答信号后等待重发的时间 nRF24L01 在接收模式下可以接收6 路不同通道的数据,见下图每一个数据通道使用不同的地址,但是共用相同的频道也就是说6 个不同的nRF24L01 设置为发送模式后可以与同一个设置为接收模式的nRF24L01 进行通讯,而设置为接收模式的nRF24L01 可以对这6 个发射端进行识别。

数据通道0 是唯一的一个可以配置为40 位自身地址的数据通道1~5 数据通道都为8 位自身地址和32 位公用地址所有的数据通道都可以设置为增强型ShockBurst 模式 NRF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号,在发送端,数据通道0被用作接收应答信号,因此属通道0 的接收地址要与发送地址端地址相等,以确保接收到正确的应答信号当MCU控制NRF24L01发送数据时,NRF24L01就会启动发送数据,发送完后NRF24L01就会转到接收模式并等待终端的应答信号如果没有收到应答信号,NRF24L01就会重发数据包,知道收到应答信号,或达到重发次数寄存器设定的最大值为止,如果重发次数超过了设定值则产生MAX_RT(最大重发次数中断)(应该在该中断没有被屏蔽的情况下的时候才会发生)只要收到确认信号,nRF24L01 就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO中的数据清除掉并产生TX_DS中断(数据发送完中断)(IRQ 引脚置高)增强型ShockBurstTM 发送模式:1、 配置寄存器位PRIM_RX 为低2、 当MCU 有数据要发送时,接收节点地址(TX_ADDR)和有效数据(TX_PLD)通过SPI 接口写入nRF24L01。

发送数据的长度以字节计数从MCU 写入TX FIFO当CSN 为低时数据被不断的写入发送端发送完数据后,将通道0 设置为接收模式来接收应答信号,其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同例:在上图 中数据通道5 的发送端(TX5)及接收端(RX)地址设置如下:TX5:TX_ADDR=0xB3B4B5B605TX5:RX_ADDR_P0=0xB3B4B5B605RX:RX_ADDR_P5=0xB3B4B5B6053、 设置CE 为高,启动发射CE 高电平持续时间最小为10 us4、 nRF24L01 ShockBurstTM 模式:􀁺 无线系统上电􀁺 启动内部16MHz 时钟􀁺 无线发送数据打包(见数据包描述)􀁺 高速发送数据(由MCU 设定为1Mbps 或2Mbps)5、 如果启动了自动应答模式(自动重发计数器不等于0,ENAA_P0=1),无线芯片立即进入接收模式如果在有效应答时间范围内收到应答信号,则认为数据成功发送到了接收端,此时状态寄存器的TX_DS 位置高并把数据从TX FIFO 中清除掉如果在设定时间范围内没有接收到应答信号,则重新发送数据。

如果自动重发计数器(ARC_CNT)溢出(超过了编程设定的值),则状态寄存器的MAX_RT 位置高不清除TX FIFO 中的数据当MAX_RT 或TX_DS 为高电平时IRQ 引脚产生中断IRQ 中断。

下载提示
相似文档
正为您匹配相似的精品文档