前言

  • 安信可 2.4G模组 NF-02-PA/PE 特性参数介绍
  • Si24R1芯片与NRF24L01芯片对比
  • 安信可 2.4G模组 NF-02-PA/PE 工作模式
  • 安信可 2.4G模组 NF-02-PA/PE 驱动代码
  • 联系我们

安信可 2.4G模组 NF-02-PA/PE 特性参数介绍

主要特性:

  • 工作在 2.4GHz ISM 频段
  • 调制方式:GFSK/FSK
  • 数据速率:2Mbps/1Mbps/250Kbps
  • 超低关断功耗:<0.7uA
  • 超低待机功耗:<15uA
  • 快速启动时间: <130uS
  • 内部集成高 PSRR LDO
  • 宽电源电压范围:1.9-3.6V
  • 数字 IO 电压: 3.3V/5V
  • 低成本晶振:16MHz±60ppm
  • 接收灵敏度:<-83dBm @2MHz
  • 最高发射功率:7dBm
  • 接收电流(2Mbps):<15mA
  • 发射电流(2Mbps):<12mA(0dBm)
  • 10MHz 四线 SPI 模块
  • 内部集成智能 ARQ 基带协议引擎
  • 收发数据硬件中断输出
  • 支持 1bit RSSI 输出
  • 极少外围器件,降低系统应用成本
  • QFN20 封装或 COB 封装

Si24R1芯片与NRF24L01芯片对比

  • 两个芯片的技术资料基本一样
    Si24R1芯片就是NRF24L01芯片,同样的程序可以驱动这两个模块。而且,实现的功能也一样,也就是说,这两个芯片的寄存器地址、内容、操作命令等基本一样。
  • 发射功率对比
    Si24r1号称最高能达到7dB的发射功率,描述中称寄存器地址为0X06的RF_SETUP最低位(bit0)和NRF24L01的不一样,NRF24L01没有用到此位,而Si24R1若将此位置调到1的话,发射功率就能达到7dB。同时,寄存器地址为0X06的RF_SETUP的最低位(bit0)功能是“SetupLNAgain”,中文翻译是“设置低噪声放大器增益”;也就是说,NRF24L01的寄存器RF_SETUP的bit0并不是没有用到,而是和LNA增益放大器配合使用了,而此位在Si24r1里却成为了“设置成7dB的发射功率”的一个bit了。 Si24R1的发射功率标称和NRF24L01的基本一样,“-18dB、-12dB、-6dB、0dB”可选,只是,Si24R1多了个“7dB”的最大发射功率。
  • 功耗对比
    一个芯片的功耗大与不大,这得看选择多大的发射功率,小编只测试过MSPA驱动NRF24L01的整体功耗电流,MSPA令NRF24L01进入sleepmode 之后,自己再进入LMP4(low power mode 4),此时,用万用表测出的电流时:7uA ,即一颗200mAh的纽扣电池供电的话,理论上能待机3年多;Si24R1的功耗,据说相对NRF24L01来说,稍微大了一点,但是得以实际的测量为准;但是,Si24R1号称能达到7dB的发射功率的话,此时的功耗肯定不小,给它供电的稳压芯片必须够功率,而且,必须得滤波(建议使用10uF的胆电容加个104的贴片电容)。

安信可 2.4G模组 NF-02-PA/PE 工作模式

Si24R1 芯片内部有状态机,控制着芯片在不同工作模式之间的转换。Si24R1 可配置为 Shutdown、Standby、Idle-TX、TX 和 RX 五种工作模式。

  • Shutdown 工作模式
    在 Shutdown 工作模式下,Si24R1 所有收发功能模块关闭,芯片停止工作,消耗电流最小,但所有内部寄存器值和 FIFO 值保持不变,仍可通过 SPI 实现对寄存器的读写。设置 CONFIG 寄存器的 PWR_UP 位的值为 0,芯片立即返回到Shutdown 工作模式。
  • Standby 工作模式。
    在 Standby 工作模式,只有晶体振荡器电路工作,保证了芯片在消耗较少电流的同时能够快速启动。设置 CONFIG 寄存器下的 PWR_UP 位的值为 1,芯片待时钟稳定后进入 Standby 模式。芯片的时钟稳定时间一般为 1.5~2ms,与晶振的性能有关。当引脚 CE=1 时,芯片将由 Standby 模式进入到 Idle-TX 或 RX 模
    式,当 CE=0 时,芯片将由 Idle-TX、TX 或 RX 模式返回到 Standby 模式。
  • Idle-TX 工作模式
    在 Idle-TX 工作模式下,晶体振荡器电路及时钟电路工作。相比于 Standby模式,芯片消耗更多的电流。当发送端 TX FIFO 寄存器为空,并且引脚 CE=1时,芯片进入到 Idle-TX 模式。在该模式下,如果有新的数据包被送到 TX FIFO中,芯片内部的电路将立即启动,切换到 TX 模式将数据包发送。在 Standby 和 Idle-TX 工作模式下,所有内部寄存器值和 FIFO 值保持不变,仍可通过 SPI 实现对寄存器的读写。
  • TX 工作模式
    当需要发送数据时,需要切换到 TX 工作模式。芯片进入到 TX 工作模式的条件为:TX FIFO 中有数据, CONFIG 寄存器的 PWR_UP 位的值为 1,PRIM_RX位的值为 0,同时要求引脚 CE 上有一个至少持续 10us 的高脉冲。芯片不会直接由 Standby 模式直接切换到 TX 模式,而是先立即切换到 Idle-TX 模式,再由Idle-TX 模式自动切换到 TX 模式。Idle-TX 模式切换到 TX 模式的时间为120us~130us 之间,但不会超过 130us。单包数据发送完成后,如果 CE=1, 则由TX FIFO 的状态来决定芯片所处的工作模式,当 TX FIFO 还有数据,芯片继续保持在TX工作模式,并发送下一包数据;当TX FIFO没有数据,芯片返回Idle-TX模式;如果 CE=0,立即返回 Standby 模式。数据发射完成后,芯片产生数据发射完成中断。
  • RX 工作模式
    当需要接收数据时,需要切换到 RX 工作模式。芯片进入到 RX 工作模式的条件为:设置寄存器 CONFIG 的 PWR_UP 位的值为 1,PRIM_RX 位的值为 1,并且引脚 CE=1。芯片由 Standby 模式切换到 RX 模式的时间为 120~130us。当接 Preliminary Si24R1收到数据包的地址与芯片的地址相同,并且 CRC 检查正确时,数据会自动存入RX FIFO,并产生数据接收中断。芯片最多可以同时存三个有效数据包,当 FIFO已满,接收到的数据包被自动丢掉。在接收模式下,可通过 RSSI 寄存器检测接收信号功率。当接收到的信号强度大于-60dBm 时,RSSI 寄存器的 RSSI 位的值将被设置为 1。否则,RSSI=0。。RSSI 寄存器的更新方法有两种:当接收到有效的数据包后,RSSI 会自动更新,此外,将芯片从 RX 模式换到 Standby 模式时 RSSI 也会自动更新。RSSI 的值会随温度的变化而变化,范围在±5dBm 以内

安信可 2.4G模组 NF-02-PA/PE 驱动代码

  • 函数功能:发送模式初始化
  • 入口参数: 无
  • 返回值: 无
void SI24R1_TX_Mode(void)
{CE = 0;SI24R1_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);      // 写入发送地址SI24R1_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 为了应答接收设备,接收通道0地址和发送地址相同SI24R1_Write_Reg(WRITE_REG + EN_AA, 0x01);                          // 使能接收通道0自动应答SI24R1_Write_Reg(WRITE_REG + EN_RXADDR, 0x01);                       // 使能接收通道0SI24R1_Write_Reg(WRITE_REG + SETUP_RETR, 0x0a);                      // 自动重发延时等待250us+86us,自动重发10次SI24R1_Write_Reg(WRITE_REG + RF_CH, 40);                              // 选择射频通道0x40SI24R1_Write_Reg(WRITE_REG + RF_SETUP, 0x0f);                        //  数据传输率2Mbps,发射功率7dBm                 SI24R1_Write_Reg(WRITE_REG + CONFIG, 0x0e);                        //  CRC使能,16位CRC校验,上电//CE = 1;
}
  • 函数功能:接收模式初始化
  • 入口参数: 无
  • 返回值: 无
void SI24R1_RX_Mode(void)
{CE = 0;SI24R1_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);   // 接收设备接收通道0使用和发送设备相同的发送地址SI24R1_Write_Reg(WRITE_REG + EN_AA, 0x01);                           // 使能接收通道0自动应答SI24R1_Write_Reg(WRITE_REG + EN_RXADDR, 0x01);                       // 使能接收通道0SI24R1_Write_Reg(WRITE_REG + RF_CH, 40);                             // 选择射频通道0x40SI24R1_Write_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);           // 接收通道0选择和发送通道相同有效数据带宽SI24R1_Write_Reg(WRITE_REG + RF_SETUP, 0x0f);                       // 数据传输速率2Mbps,发射功率7dBmSI24R1_Write_Reg(WRITE_REG + CONFIG, 0x0f);                         // CRC使能,16位CRC校验,上电,接收模式SI24R1_Write_Reg(WRITE_REG + STATUS, 0xff);                          //清除所有的中断标志位CE = 1;                                                                // 拉高CE启动接收设备
}
  • 函数功能:发送一个数据包
  • 入口参数: txbuf:要发送的数据
  • 返回值:
  • 0x10:达到最大重发次数,发送失败
  • 0x20:发送成功
  • 0xff: 发送失败
u8 SI24R1_TxPacket(u8 *txbuf)
{u8 state;CE=0;                                                      //CE拉低,使能SI24R1配置SI24R1_Write_Buf(WR_TX_PLOAD, txbuf, TX_PLOAD_WIDTH);     //写数据到TX FIFO,32个字节CE=1;                                                 // CE置高,使能发送while(IRQ == 1);                                   //等待发送完成state = SI24R1_Read_Reg(STATUS);                      //读取状态寄存器的值SI24R1_Write_Reg(WRITE_REG+STATUS, state);             //清除TX_DS或MAX_RT中断标志if(state&MAX_RT)                                    //达到最大重发次数{SI24R1_Write_Reg(FLUSH_TX,0xff);          //清除TX FIFO寄存器return MAX_RT; }if(state&TX_DS)                                  //发送完成{return TX_DS;}return 0XFF;                               //发送失败
}
  • 函数功能:读取接收数据
  • 入口参数: rxbuf:接收数据存放首地址
  • 返回值:
  • 0:接收到数据
  • 1:没有接收到数据
u8 SI24R1_RxPacket(u8 *rxbuf)
{u8 state;state = SI24R1_Read_Reg(STATUS);                              //读取状态寄存器的值SI24R1_Write_Reg(WRITE_REG+STATUS,state);               //清除RX_DS中断标志if(state & RX_DR)                                                        //接收到数据{SI24R1_Read_Buf(RD_RX_PLOAD,rxbuf,TX_PLOAD_WIDTH);     //读取数据SI24R1_Write_Reg(FLUSH_RX,0xff);                                  //清除RX FIFO寄存器return 0; }    return 1;                                                   //没收到任何数据
}

联系我们

以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,以上提供的驱动源码联系我们可以免费提供

官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
商务合作:sales@aithinker.com
技术支持:support@aithinker.com
公司地址: 深圳市宝安区西乡固戍华丰智慧创新港C栋410
联系电话:0755-29162996

安信可 NF-02-PA/PE 2.4模组(Si24R1芯片)驱动代码详细介绍,完美替换 NRF24L01系列。相关推荐

  1. 安信可PB-01/02蓝牙模组实现远程OTA无线升级功能介绍,剖析整个实现原理和代码介绍。

    文章目录 一.安信可PB-01/02蓝牙模组 OTA简介 二.安信可PB-01/02蓝牙模组 FOTA实现流程 三.通过手机APP 完成安信可PB-01/02蓝牙模组的OTA演示 联系我们 一.安信可 ...

  2. 【安信可PB-01/02模组专题③】ESP32-G WIFI蓝牙网关与PB02模组开发进行组网通讯

    文章目录 前言 工具 ESP32-G 网关介绍 (1)产品概述 (2)产品接口及 LED 指示灯说明 ESP32-G 网关蓝牙模式使用 (1) 恢复出厂设置 (2) 点击网关中的蓝牙选项 (3) 点击 ...

  3. 【安信可NB-IoT开发板EC-01F的应用】通过STM32F103C8T6单片机驱动入网阿里云或OneNET云平台

    这里写自定义目录标题 简介 1.硬件准备以及接线 1.1.硬件准备 1.2.硬件接线 2.阿里云生活物联网平台准备工作 2.1.注册用户并登录 2.2.创建项目 2.3.创建产品 2.4.创建设备 3 ...

  4. 微信小程序控制硬件第17篇 : 腾讯连连小程序通过LLSync蓝牙协议控制安信可PB-02模组,无需网络实现蓝牙本地通讯。(附带源码)

    文章目录 前言 一.注册腾讯物联开发平台设备 新建项目 新建产品 创建数据模板 选择设备开发方式 交互开发配置 新建设备 二.设备端操作 硬件简介与连接 准备软件环境 工程目录 烧录步骤 三.腾讯连连 ...

  5. 安信证券王环:安信证券数据中台建设历程

     2020 年 10 月 13 日,在以"数字化 正当潮"为主题的「神策 2020 数据驱动用户大会」现场,安信证券信息技术中心数据平台团队负责人王环发表了<安信证券数据中台 ...

  6. 网络安全公司奇安信集团是如何基于 Flink 构建 CEP 引擎实时检测网络攻击【未来不可忽视的网络安全】

    摘要: 奇安信集团作为一家网络安全公司是如何基于 Flink 构建 CEP 引擎实时检测网络攻击?其中面临的挑战以及宝贵的实践经验有哪些?本文主要内容分为以下四个方面: 背景及现状 技术架构 产品及运 ...

  7. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...

  8. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...

  9. 安信可ESP-07S_12F_12S 腾讯云固件使用文档

    此教程针对腾讯云的AT固件进行使用(以下指令所使用的的固件 AT 版本为 2.0.0.0,SDK 版本为3.2.0 进行测试, 如有新版本的改动请及时更新新版本的固件,所使用的硬件为nodemcu-1 ...

  10. 【AT指令使用】安信可ESP-12S/ESP32S模组AT固件应用之微信小程序热点配网OTA升级

    目录 前言 一.Web 服务配网 二.操作过程 1.烧录带有Web服务功能的AT固件 2.Web服务配网过程 2.1 ESP-12S/ESP32-S搭建Web服务器 2.2 微信小程序部分的操作 3. ...

最新文章

  1. 使用sed快速批量替换文件夹内的文件中的某个字段
  2. 数据库系统概论:第九章 关系查询和关系优化
  3. JZOJ 5393. 【NOIP2017提高A组模拟10.5】Snake vs Block
  4. Android之机端安装apk出现INSTALL_FAILED_INSUFFICIENT_STORAGE错误的解决方法
  5. 批处理 设置电脑最佳性能_批处理最佳做法
  6. unity 草 可以一棵棵种吗?_这种野草人称“瓜子金”,1斤能卖50多,拔1棵少棵很珍贵...
  7. service XXX does not support chkconfig(service报错)
  8. 从Ubuntu 14 04 LTS版升级到Ubuntu 16 04 LTS
  9. 设置相机的距离_数码相机的曝光判断标准是什么
  10. python命令行模式和交互模式区别_对命令行模式与python交互模式介绍
  11. 吴恩达《机器学习》第十七章:大规模机器学习
  12. jquery 提交数据
  13. 自我监督学习和无监督学习_弱和自我监督的学习-第3部分
  14. 大漠插件dm7.2149
  15. LDO分压电阻计算小工具
  16. Silvaco TCAD仿真基础2
  17. 写给新的一年(2015)
  18. Pytorch之Dataloader参数collate_fn研究
  19. ASCII、Unicode、UTF-8
  20. java 十六进制负数_Java 十六进制转十进制正负数

热门文章

  1. 经纬度坐标和投影坐标的转换
  2. Java中Object转化为int类型
  3. 控制萤石云摄像头转头
  4. 照片放大模糊怎么变清晰,图片无损放大
  5. 【面试题】2021最新Vue面试题汇总
  6. MySQL基础(DML,DQL,增删改查)
  7. excel从只有省市县的地址中分别提取省、市、县
  8. qtcpsocket断开_关于使用QTcpSocket的一些总结
  9. QTcpSocket目录文件传输
  10. 2021-视频监控中的多目标跟踪综述