美文网首页
nRF24l01使用说明

nRF24l01使用说明

作者: 缺小小 | 来源:发表于2018-03-22 23:48 被阅读166次

    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

    相关文章

      网友评论

          本文标题:nRF24l01使用说明

          本文链接:https://www.haomeiwen.com/subject/jrxtcftx.html