LoRa---她的芯片和她的几种工作模式
LoRa对应的芯片------sx1278芯片
sx1278芯片为Semtech公司推出的具有新型LoRa扩频技术的RF芯片,具有功耗低、容量大、传输距离远、抗干扰能力强的优点。我接下来在这块芯片上进行开发。
使用方法:sx1278芯片引出了SPI接口,用于对sx1278的通信和控制。同时引出了6个GPIO口。MCU通过SPI和sx1278芯片通信,对芯片进行初始化,配置通信参数,切换工作模式,收发数据。6个GPIO口在sx1278芯片 产生中断时,电平会从低电平变高电平,清除中断后,电平变回低电平。
贴出datasheet里表格:

通信频率范围:137MHZ~525MHZ, 带宽:7.8KHZ~500KHZ。
LoRa的调制解调方式:SX1276/77/78 系列产品采用了 LoRaTM扩频调制解调技术 ,还支持标准的 GFSK、 FSK、 OOK 及 GMSK 调制模式, 因而能够与现有的M-BUS 和 IEEE 802.15.4g 等系统或标准兼容 。
LoRa的几种工作模式
LoRa分为LoRa模式和FSK/OOK 模式 ,下面主要介绍LoRa模式的几种工作模式。先贴张图:

睡眠模式:在此模式下,切换回LoRa模式,sx1278芯片初始化会进行这一动作。此模式会清空FIFO内的内容,并且,FIFO的内容也只会在这种模式下清除,其他模式下都是覆盖就内容。(FIFO会在后面介绍,不清楚可以直接跳过)
待机模式:芯片通常运行在这个模式,射频和PLL被关闭,能耗很低。根据需要,切换到其他模式。另外,FIFO数据缓存只有在待机模式下才允许写入,发送时,需要在待机模式下,将数据写入到FIFO,再切换到TX模式发送。
RX单一模式:在这种模式下,调制解调器在给定的时间窗口内搜索前导码。如果在该时间窗口(由RegSymbTimeout寄存器定义 ,10位长度的时间0~0x3FF)结束时还未找到前导码,表示等待接收超时,则芯片会产生RxTimeout中断信号并切换回待机模式 。运用此模式时,需要知道对方数据什么时候到达,否则,必须一直在待机模式和单一接收模式间切换,才能收到数据。
RX连续模式:在连续接收模式下,调制解调器会持续扫描信道,以搜索前导码。每当检测到前导码时,调制解调器都会在收到数据包前对该前导码进行检测及跟踪,然后继续等待检测下一前导码。
在连续Rx模式下,当产生超时中断时,设备不会进入待机模式。这时,用户必须在设备继续等待有效前导码的同时直接清除中断信号。(关于连续RX模式的FIFO部分,将在后面详细介绍)
CAD模式:信道活动检测模式旨在以尽可能高的功耗效率检测无线信道上的LoRa前导码。在CAD模式下, SX1276/77/78快速扫描频段,以检测LoRa数据包前导码。 可用于定时扫描信道,降低能耗。
/**************************************************************************************************************************************************************************************************************************************************************************/
几种模式的简单介绍,我就写自己认为重要的。下面贴个sx1278芯片的LoRa模式下的GPIO口映射表:

/****************************************************************************************************************************************************************************************************************************/
完!
LoRa---她的芯片和她的几种工作模式的更多相关文章
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
: 12MHz 晶振 对应 405 ~ 532 MHz 处理速度; -- : 16K 指令缓存, 16K 数据缓存; -- : 32KB 指令缓存, 32KB 数据缓存; (3) 内存接口对比 : 提 ...
- 高性能以太网芯片W5500 数据手册 V1.0(一)
W5500 W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案.W5500 集成了 TCP/IP 协议栈,10/100M 以太网数据链路层(MAC) ...
- 以太网PHY 芯片之 MII/MDIO接口详解
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法. ...
- 关于RFID电动车防盗、校园答题卡(超低功耗2.4G芯片SI24R2E)
Si24R2E 是一颗工作在2.4GHz ISM 频段,专为低功耗有源RFID 应用场合设计,集成嵌入式发射基带的无线发射芯片.128 次可编程NVM 存储器以及自动发射模块.工作频率范围 ...
- Linux驱动开发概述
原文出处:http://www.cnblogs.com/jacklu/p/4722563.html Linux设备分类 设备的驱动程序也要像裸机程序那样进行一些硬件操作,不同的是驱动程序需要" ...
- STM32库函数编程、Keli/MDK、stm32f103zet6
catalogue . Cortex-M3地址空间 . 基于标准外设库的软件开发 . 基于固件库实现串口输出(发送)程序 . 红外接收实验 . 深入分析流水灯例程 . GPIO再举例之按键实验 . 串 ...
- RFID-RC522、FM1702SL、M1卡初探
catalogue . 引言 . RC522芯片(读卡器)简介 . FM1702SL芯片(读卡器)简介 . RFID M1卡简介 . 读取ID/序列号(arduino uno.MFRC522芯片 Ba ...
- SDRAM的主要参数
(1) 容量.SDRAM的容量经常用XX存储单元×X体×每个存储单元的位数来表示.例如某SDRAM芯片的容量为4M×4×8bit,表明该存储器芯片的容量为16 M字节.或128 M bit. (2) ...
- 服务器内存UDIMM与RDIMM区别
UDIMM 全称是无缓冲双信道内存模块(Unbuffered Dual In-Lne Memory Modules),它不支持服务器内存满配,就是最高容量了,因为使用UDIMM内存时最大使用每通道只能 ...
随机推荐
- 开源:Taurus.MVC 框架 (已支持.NET Core)
为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...
- WebSocket整合SSM(Spring,Struts2,Maven)
一.WebSocket与HTTP长轮询 WebSocket 属于HTML5 规范的一部分,提供的一种在单个 TCP 连接上进行全双工通讯的协议.允许服务端主动向客户端推送数据.在 WebSocket ...
- Java数据结构和算法 - 二叉树
前言 数据结构可划分为线性结构.树型结构和图型结构三大类.前面几篇讨论了数组.栈和队列.链表都是线性结构.树型结构中每个结点只允许有一个直接前驱结点,但允许有一个以上直接后驱结点.树型结构有树和二叉树 ...
- 网卡也能虚拟化?网卡虚拟化技术 macvlan 详解
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 01 macv ...
- 远程window服务器,无法复制粘贴了
1.先检查本机 2.检查服务器 win+R打开输入taskmgr 找到这个进程,结束进程 3.在win+r打开输入rdpclip确认启动,发现可以复制粘贴了.
- 简单实现springmvc框架(servlet+自定义注解)
个人水平比较菜,没有这么高的实力简单实现springmvc框架,我是看了一个老哥的博客,这老哥才是大神! 原文链接:https://www.cnblogs.com/xdp-gacl/p/4101727 ...
- Python:序列的增量赋值
增量赋值运算符有 += 和 *=.+= 背后的特殊方法是 __iadd__,如果一个类没有实现 __iadd__ 方法,Python 会退一步调用 __add__ 方法.这两个方法的区别在于,__ia ...
- 【大数据安全】Apache Kylin 安全配置(Kerberos)
1. 概述 本文首先会简单介绍Kylin的安装配置,然后介绍启用Kerberos的CDH集群中如何部署及使用Kylin. Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spa ...
- 服务器linux centos 7.4 搭建ftp服务器
此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...
- [Vue] vue中setInterval的问题
vue中使用setInterval this.chatTimer = setInterval(() => { console.log(this.chatTimer); this.chatMsg( ...