当前位置: 首页 > news >正文

nrf 24l01使用方法

1、frequency 

     频率=基础频率2.400G HZ+ RF_CH

              RF_CH=10 

      CH=2.4G+0.01G=2.41G

2、逻辑通道6个 pipe  时间片不同,占用同一个频率

      发送时,只有一个pipe

       接受时可以有6个pipe

3、通讯速率  air data rate  rf_dr 寄存器设置 

       有两种速率  2M  1M

       RF_DR=0 1M  , =1   2M

       1M时,信号较好,组网时有更好的兼容性

4、PA 发射功率放大

        RF_PWR  00  18dB

        RF_PWR  01  12dB

        RF_PWR  10  6dB

        RF_PWR  11  0dB

5、LNA 接受功率放大  低噪声放大

        LNA_HCURR

        W_TX_PAYLOAD  PAYLAOD数据经过打包变成PLOAD打包后发送出去

       NRF2401_Write_Buf(WR_TX_PLOAD,txbuf,TXWIDTH)  字符宽度0-32位

        R_RX_PAYLOAD

6、工作模式

1、PowerDown 功耗最低的状态 

 PowerDown模式下 pwr_up=1 进入Standby模式   1500us   

Standby模式下,pwr_up=0会进入PowerDown模式

2、Standby 模式功耗略大于PowerDown

CE=1

PRIM_RX=1 接受状态

PRIM_RX=0 发送状态

发送状态和接受状态不能直接转换,必须回到 Standby模式下在设置

7、mcu与2401的连接配置

        ce

        csn

        irq

        spi    不超过8M频率

8、2401工作参数设置

        1、判断2401是否存在

        2、配置数据通道,收发地址

        3、配置radio control参数(无线通信参数)

                A、频道频率

                B、速率带宽

                C、PA功率

                D、是否打开LNA

        4、配置工作模式

九、接受数据思路

        1、判断irq是否有中断信号

        2、判断中的是否是接受数据中断、

        3、清除中断标志,读取rx_FIFO数据

        4、flush RX_FIFO 准备下一次接受数据

十、发送数据思路

        1、切换至tx模式

        2、往tx_fifo里写入数据

        3、等待irq引脚中断信号

        4、清除发射完毕中断信号

        5、切换至rx模式

十一、主要寄存器、命令

        1、R_REGISTER      000A  AAAA      读配置寄存器

        2、W_REGISTER      001A   AAAA    写配置寄存器

        3、R_RX_PAYLOAD   0110   0001    读 RX有效数据 1-32位

        4、W_TX_PAYLOAD   1010  0000     写TX有效数据 1-32位

        5、FLUSH_TX              1110  0001    清除tx_fifo寄存器

        6、 FLUSH_RX             1110  0010    清除rx_fifo寄存器

        7、REUSE_TX_PL        1110  0011    重发上次有效数据

        8、NOP                           1111 1111     空操作,主要用来读状态寄存器

十二、寄存器

00       6位 为0  rx可屏蔽中断  ,为1不产生中断

           5位  为0 tx可屏蔽中断  ,为1不产生中断

           4      为0  当接受最大位数据时产生中断,为1不产生中断

           3         0 crc校验使能

           2         0 8位crc校验      1  16位crc校验

           1         1 上电                 0  掉电

           0         PRIM_RX  1 接受模式,0 发送模式

01寄存器   ENAA_P0 0-5位控制数据通道自动应答允许,6-7位0

02寄存器   ERX_P0接收允许寄存器 0-5位控制数据 0-5通道允许

03寄存器   SETUP_AW 设置地址宽度 1:0   00 无效  01 3字节 02  4字节 03 5字节   低2位设置

04自动重发  SETUP_RETR 7:4    0000  250+86us          0001  500+86us     1111  4000+86us

                     自动重发计数  3:0    0001自动重发1次         1111 自动重发15次   

05射频通道  RF_CH

                6:0 设置工作频率   2.40G-----2.55G  125个频率  默认000010 2.42G

06寄存器   RF_SETUP

                     4位 PLL_LOCK锁相环允许,仅用于测试模式

                     3位 RF_DR  数据传输速率   0 1M  1-2M 默认为1  2M

                     2:1 RF_PWR 发射功率  00  18dB   01  12dB      10  6dB     11  0dB

                     0 LNA_HCURR  低噪声放大增益  默认1

07寄存器      STATUS

                     6位     RX_DR    接收数据中断包后置1   写1清除中断

                     5位     TX_DR    接收数据中断包后置1   写1清除中断

                     4位     MAX_RT    重发次数溢出中断 后置1     写1清除中断

                     3:1      RX_P_NO 接收数据通道号

                     0         TX_FIFO寄存器满标志

0A 寄存器 RX_ADDR_P0  默认0xE7E7E7E7E7

0B 寄存器 RX_ADDR_P1  默认0xC2C2C2C2C2

2-5默认前面地址为通道1的前4个字节  0xC2C2C2C2C2,

0C 寄存器 RX_ADDR_P2                     0xC2C2C2C2C3 

0D 寄存器 RX_ADDR_P3                     0xC2C2C2C2C4 

0E 寄存器 RX_ADDR_P4                     0xC2C2C2C2C5

0F 寄存器 RX_ADDR_P5                     0xC2C2C2C2C6         

10 TX_ADDR  0xE7E7E7E7E7       发送地址 

11 RX_PW_P0         5:0 发送地址宽度   1-32字节

12 RX_PW_P1         5:0 发送地址宽度   1-32字节

17 FIFO_STATUS  FIFO状态寄存器

            6  TX_REUSE

            5  TX_FULL

            4  TX_EMPTY

            1 RX_FULL

            0 RX_EMPTY

三、接收模式


Rx模式初始化过程:
初始化步骤24L01相关寄存器
1) 写 Rx 节点的地址 RX_ADDR PO
2)使能 AUTO ACK EN AA
3)使能 PIPE 0 EN RXADDR
4) 选择通信频率 RF_CH
5) 选择通道0有效数据宽度Rx_Pw_PO
6) 配置发射参数(低噪放大器增益、发射功率、无线速率)RF SETUP
7) 配置 24L01的基本参数以及切换工作模式 CONFIG。

四、发射模式


Tx 模式初始化过程
1)写 Tx 节点的地址 TX_ADDR
2) 写 Rx 节点的地址(主要是为了使能Auto Ack) RX_ADDR_PO
3)使能 AUTO ACK EN_AA
4)使能 PIPE O EN RXADDR
5)配置自动重发次数 SETUP_RETR
6) 选择通信频率RF_CH
7)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP
(8)选择通道0有效数据宽度Rx_Pw_P0
(9)配置24L01的基本参数以及切换工作模式 CONFIG。


 

相关文章:

nrf 24l01使用方法

1、frequency 频率基础频率2.400G HZ RF_CH RF_CH10 CH2.4G0.01G2.41G 2、逻辑通道6个 pipe 时间片不同,占用同一个频率 发送时,只有一个pipe 接受时可以有6个pipe 3、通讯速率 air data rate rf_dr 寄存器设置 有两种速率 2M 1M RF_DR0 1M ,…...

C语言普及难度三题

先热个身&#xff0c;一个长度为10的整型数组&#xff0c;输出元素的差的max和min。 #include<stdio.h> int main() {int m[10],i0,max,min;for(i0;i<10;i){scanf("%d",&m[i]);}minm[0];maxm[0];for (i 0; i <10; i){if(min>m[i]) min m[i];i…...

10.4每日作业

C1 C2 C1 C2...

日常工作记录:服务器被攻击导致chattr: command not found

在深夜的寂静中&#xff0c;公司的服务器突然遭遇了一场突如其来的攻击。特别是nginx配置文件无法修改&#xff0c;仿佛预示着不祥的预兆&#xff0c;面对这突如其来的灾难&#xff0c;技术人员迅速响应。 这时候需要chattr&#xff0c;但是执行的chattr -i xxx的时候&#xf…...

多线程-初阶(1)

本节⽬标 • 认识多线程 • 掌握多线程程序的编写 • 掌握多线程的状态 • 掌握什么是线程不安全及解决思路 • 掌握 synchronized、volatile 关键字 1. 认识线程&#xff08;Thread&#xff09; 1.1 概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线…...

Spring Boot集成encache快速入门Demo

1.什么是encache EhCache 是一个纯 Java 的进程内缓存框架&#xff0c;具有快速、精干等特点&#xff0c;是 Hibernate 中默认的 CacheProvider。 Ehcache 特性 优点 快速、简单支持多种缓存策略&#xff1a;LRU、LFU、FIFO 淘汰算法缓存数据有两级&#xff1a;内存和磁盘&a…...

【C语言】数组练习

【C语言】数组练习 练习1&#xff1a;多个字符从两端移动&#xff0c;向中间汇聚练习2、二分查找 练习1&#xff1a;多个字符从两端移动&#xff0c;向中间汇聚 编写代码&#xff0c;演示多个字符从两端移动&#xff0c;向中间汇聚 练习2、二分查找 在⼀个升序的数组中查找指…...

微服务实战——ElasticSearch(保存)

商品上架——ElasticSearch&#xff08;保存&#xff09; 0.商城架构图 1.商品Mapping 分析&#xff1a;商品上架在 es 中是存 sku 还是 spu &#xff1f; 检索的时候输入名字&#xff0c;是需要按照 sku 的 title 进行全文检索的检索使用商品规格&#xff0c;规格是 spu 的…...

leetcode练习 路径总和II

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…...

使用Three.js库创建的简单WebGL应用程序,主要用于展示具有不同透明度和缩放比例的圆环列

上述HTML文档是一个使用Three.js库创建的简单WebGL应用程序&#xff0c;主要用于展示具有不同透明度和缩放比例的圆环列。以下是代码的详细解释&#xff1a; HTML结构: 文档类型声明为HTML5。<html>标签设置了语言属性为英语&#xff08;lang"en"&#xff09;…...

Redis: 集群架构,优缺点和数据分区方式和算法

集群 集群指的就是一组计算机作为一个整体向用户提供一组网络资源 我就举一个简单的例子&#xff0c;比如百度&#xff0c;在北京和你在上海访问的百度是同一个服务器吗&#xff1f;答案肯定是不是的&#xff0c;每一个应用可以部署在不同的地方&#xff0c;但是我们提供的服务…...

负载均衡可以在网络模型的哪一层?

一、网络模型概述 网络模型是用于描述网络通信过程和网络服务的抽象框架。最常见的网络模型有两种&#xff1a;OSI&#xff08;开放式系统互联&#xff09;模型和TCP/IP模型。 OSI模型 OSI&#xff08;Open Systems Interconnection&#xff09;模型是由国际标准化组织&…...

YOLOv11改进 | 上采样篇 | YOLOv11引入CARAFE上采样

1. DySample介绍 1.1 摘要:特征上采样是许多现代卷积网络体系结构(如特征金字塔)中的关键操作。它的设计对于密集预测任务(如对象检测和语义/实例分割)至关重要。在本文中,我们提出了一个通用、轻量级、高效的特征重组算子CARAFE来实现这一目标.CARAFE有几个吸引人的特性…...

【Linux运维】grep命令粗浅学习

文章目录 1 背景介绍1.1 为什么要学习grep&#xff1f;1.2 grep是什么&#xff1f;1.3 grep可以做什么&#xff1f; 2 grep基本语法2.1 命令格式2.2 “PATTERN”部分中的正则表达式语法学习2.3 grep命令参数学习 3 典型案例3.1 匹配非空行&#xff0c;过滤纯空行3.2 匹配IPv4地…...

【Godot4.3】匀速和匀变速直线运动粒子

概述 本篇论述&#xff0c;如何用加速度在Godot中控制粒子运动。 匀速和匀变速直线运动的统一 以下是匀变速运动的速度和位移公式&#xff1a; v t v 0 a t x t v 0 t 1 2 a t 2 v_tv_0 at \\ x_tv_0t \frac{1}{2}at^2 vt​v0​atxt​v0​t21​at2 当a 0 时&#xf…...

基于Hive和Hadoop的用电量分析系统

本项目是一个基于大数据技术的用电量分析系统&#xff0c;旨在为用户提供全面的电力消耗信息和深入的用电量分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark…...

一个简单的摄像头应用程序4

我们进一步完善了这个app01.py,我们优化了界面使其更人性化,下面介绍中包含了原有的功能及新增的功能: 创建和管理文件夹: create_folder 函数用于创建保存照片和视频的文件夹。 get_next_file_number 函数用于获取文件夹中下一个可用的文件编号。 图像处理: pil_to_cv 函…...

SpringBoot使用EasyPoi根据模板导出word or pdf

1、导出效果 1.1 wrod 1.2 pdf 2、依赖 <!--word--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.3.0</version></dependency><dependency><groupId>cn.…...

NVIDIA Hopper 架构深入

在 2022 年 NVIDIA GTC 主题演讲中,NVIDIA 首席执行官黄仁勋介绍了基于全新 NVIDIA Hopper GPU 架构的全新 NVIDIA H100 Tensor Core GPU。 文章目录 前言一、NVIDIA H100 Tensor Core GPU 简介二、NVIDIA H100 GPU 主要功能概述1. 新的流式多处理器 (SM) 具有许多性能和效率…...

AWS IoT Core for Amazon Sidewalk

目录 1 前言2 AWS IoT2.1 准备条件2.2 创建Credentials2.2.1 创建user2.2.2 配置User 2.3 本地CLI配置Credentials 3 小结 1 前言 在测试Sidewalk时&#xff0c;device发送数据&#xff0c;网关接收到&#xff0c;网关通过网络发送给NS&#xff0c;而此处用到的NS是AWS IoT&am…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...