OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4484|回复: 2

疯壳AI开源无人机SPI(2.4G双机通信)

[复制链接]

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
发表于 2020-4-15 15:02:45 | 显示全部楼层 |阅读模式
一、NRF24L011.1 NRF24L01简介
NRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHzISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。
NRF24L01的输出功率频道选择和协议的设置均可以通过SPI 接口进行设置,因此,其具有极高的兼容性,几乎可以连接到各种单片机芯片,并完成无线数据传送工作。除此之外,NRF24L01的功耗也非常的低,当工作在发射模式下发射功率为0dBm 时电流消耗仅为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。所以NRF24L01可以广泛地应用在无线键鼠、无线门禁、无线电台、智能工业设备、玩具等场合。
如下表所示列举了NRF24L01的特性参数。
参数名称
参数特性
小体积
QFN20 4x4mm封装
宽电压工作范围
1.9V~3.6V,输入引脚可承受5V电压输入
工作温度范围
-40℃~+80
工作频率范围
2.400GHz2.525GHz
发射功率
可选择为0dBm-6dBm-12dBm-18dBm
数据传输速率
支持1Mbps2Mbps
低功耗设计
接收时工作电流12.3mA0dBm功率发射时11.3mA,掉电模式时仅为900nA
多通道设计
126个通讯通道,6个数据通道,满足多点通讯和调频需要
多模式
支持增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制
单次数据传输
数据包每次可传输132Byte的数据
接口
4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单
中断
MCU可通过IRQ引脚块判断是否完成数据接收和数据发送
如下图所示为NRF24L01芯片实物图
图片1.jpg
二、2.4G双机通信2.1 NRF24L01使用方法
NRF24L01是以包的形式进行发送的,具体的包格式如下表所示。
前导码
地址
包控制字
负载数据
CRC
NRF24L01在通信前需要进行一系列的参数配置,而在配置其参数时,NRF24L01必须工作待机模式,即CE脚拉低。在发送模式下的配置流程如下表所示。
1
写入发送地址和接受应答通道地址
2
使能应答通道
3
使能接收地址
4
设置自动重发时间和重发次数
5
设置通信频道
6
设置参数(功率、增益等)
7
设置模式(发送、接收)
配置为接收模式的流程如下表所示。
1
配置接收通道地址
2
设置接收通道有效数据宽度
3
使能通道自动应答
4
使能接受通道地址
5
设置通信频道
6
设置参数(功率、增益等)
7
设置模式(发送、接收)
配置完后就是发送和接收的处理了,发送的流程如下表所示。
1
向FIFO中写入数据,等待IRQ发送完成中断
2
读取状态寄存器中的值
3
将读取到的状态寄存器中的值写入状态寄存器
4
判断之前读取到的状态寄存器中的值判断是发送完成还是发送失败
5
清空fifo寄存器
接收流程如下表所示。
1
读取状态寄存器中的值
2
将读取到的状态寄存器中的值写入状态寄存器
3
判断状态寄存器中得值,是否接受成功
(成功就读取fifo中的数据,并且清空fifo
三、2.4G双机通信实验
2.4G双机通信实验涉及到遥控器端和飞控端,两者的2.4G通道均设置为110。首先配置遥控器端的左摇杆的按键为外部中断模式,一旦按下做摇杆按键,就发送“Remoter”这个字符串到飞控上,飞控接收到后,把LED航情灯进行闪烁,然后再向遥控器回发“Airplane”这个字符串,遥控收到后,闪烁电源指示灯。无论是遥控器还是飞控使用NRF24L01均使用到了STM32的硬件SPI,不同的是遥控器使用的是SPI2,而飞控使用的是SPI1STM32SPI配置方法可以参考飞控开发基础《SPI(六轴传感器数据获取)》。
3.1遥控器端
本次实验中遥控器端触发无线数据的发送是通过外部中断实现的,具体的外部中断配置可以参考《遥控器开发实战-中断》。在该中断中向飞控发送“Remoter”字符串,具体代码如下图所示。
图片2.jpg
遥控器端的NRF24L01的初始化代码如下图所示。
图片3.jpg
遥控器端的接收处理是在主循环中轮询实现的,收到飞控发来的信息后,电源指示灯闪烁,具体代码如下图所示。
图片4.jpg
3.2飞控端
飞控端的无线数据接收在主循环中实现,接收到遥控器发送的信息后,电源指示灯闪烁,且向遥控端回发Airplane”,具体代码如下图所示。
图片5.jpg
飞控端的NRF24L01的初始化代码如下。
图片6.jpg
3.3实验现象
把遥控器端代码下载到遥控器内、飞控端代码下载到飞控内。上电,此时按下遥控器的左摇杆按键,可见飞控四个电机底部的LED航情灯闪烁,然后遥控的电源指示灯也闪烁。这就意味着飞控收到了来自遥控器端的信息并且回发了信息给遥控器,且遥控器也收到了来自飞控端的回发信息。如下图所示为飞控航情灯以及遥控左按键及电源指示灯。
图片7.jpg

3.遥控器开发基础-【5】SPI(2.4G双机通信).pdf

792.66 KB, 下载次数: 14

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-4-16
在线时间
4 小时
发表于 2020-4-16 17:39:42 | 显示全部楼层
你这个系统可以2次开发吗?
回复 支持 反对

使用道具 举报

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
 楼主| 发表于 2020-4-24 11:26:58 | 显示全部楼层
zdy805058634 发表于 2020-4-16 17:39
你这个系统可以2次开发吗?

欢迎加群交流学习哦!
疯壳无人机团队
官网:https://www.fengke.club
电话:0755-86654359
QQ群:457586268
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-10 17:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表