sx1268 中文_SX1268驱动程序设计
SX1268驱动程序设计
一、STDBY模式JN9
W:X.
芯片上电、复位和从睡眠模式唤醒,都会从Startup模式自动进入到STDBY模式。STDBY模式又称为待机模式或者旁路模式。1NP(3yt%
N8GLX~'>GZB
在待机模式下,主机应在进入RX或TX模式之前配置芯片。默认情况下,系统选择13MHZ的RC振荡器,以降低功耗。除睡眠模式外,其它模式XTAL时钟处于打开状态。然而,只有在应用程序对时钟要求严格,我们才需要打开XOSX模块,并让它始终处于打开状态。ews4qP
Ab]`*h\USnMHk3(\
待机模式下的XOSC或RC13M选择由命令SetStandby(…)中的模式参数决定。只使用RC13M的模式称为STDBY_RC,打开XOSC的模式称为STDBY_XOSC。$)L=MEdx
O23dtH^%^~:
如果要使用DC-DC,则应在电路处于STDBY_RC模式时使用SetRegulatorMode(…)命令进行选择,当进入STDBY_XOSC模式时,DCDC会自动打开。DCDC使用RC13M时钟,当目标电压比DC-DC低50 mV时,LDO将保持活跃状态。~*Fbs!;,
|
二、SetStandby函数2#sJ`pdQ
The command SetStandby(...) is used to set the device in a configuration mode which is at an intermediate level of consumption. In this mode, the chip is placed in halt mode waiting for instructions via SPI. This mode is dedicated to chip configuration using high level commands such as SetPacketType(...).(SetStandby函数使得芯片进入一个配置模式,这个模式消耗中等水平的能量。在这个模式下,芯片处于停滞状态,以等待SPI指令。这个模式专门用于使用高级命令对芯片进行配置,例如SetPacketType)Cf-R?gn]
6K/j,e>Ly4aW8J#
By default, after battery insertion or reset operation (pin NRESET goes low), the chip will enter in STDBY_RC mode running with a 13 MHz RC clock.(在缺省方式下,上电或硬复位后,芯片处于STDBY_RC模式,使用内部13M RC时钟)vJX3fE}F
相关驱动程序如下:9-
HG(J+ocnail%#E8
typedef enumg~5$X{
{99'e)[\
STDBY_RC = 0x00,hpftVEB
STDBY_XOSC = 0x01,/V66P@[>
}RadioStandbyModes_t;a$f$CjQ
void CSX1268::SX126xSetStandby(RadioStandbyModes_t standbyConfig)
{P4{8pO]B
SX126xWriteCommand(RADIO_SET_STANDBY, (uint8_t*)&standbyConfig, 1);p[E}:kak_-
if(standbyConfig == STDBY_RC)f'hrS}e
{`QH-VR\_
OperatingMode = MODE_STDBY_RC;.OLm{
}icq!^5BzL
elsePZVh)6f"c
{oyI8}s:
OperatingMode = MODE_STDBY_XOSC;>t-9yO1XQq
}_7j-y 9V
}t'msgC6=>u
3I87|5V,ZMfJ;":]O!
程序调用SX126xWriteCommand函数写入相关命令,然后根据相关参数,设置相应的模式。改进后的SX126xWriteCommand函数程序如下:Zt3"4d4
;pK/t=$jf_xm=n
void CSX1268::SX126xWriteCommand(RadioCommands_t command, uint8_t *buffer, uint16_t size)![=C`O6K
{+!dWQ=W
SX126xCheckDeviceReady( );?:D#\4=US
ZT*RD2,
Target.DisableInterrupt();Eiqx1ZM
this->Select();K`|%-k+D
this->WriteByte((uint8_t)command);(*{Y#XD{
for(uint16_t i = 0; i < size; i++)#r\,oXTm
{[,A*nU$
this->WriteByte(buffer);"bI'XaSv
}11%
this->Deselect();OEz'&))J
Target.EnableInterrupt();pLB~{5u>;-
wc&%icF*cr
if( command != RADIO_SET_SLEEP ):~Kc"Pg
{}m!L2iK4qk
SX126xWaitOnBusy( );y|sU-O2}Dl
}~RlsgtX"
}`zQ2i}Uju
程序首先调用SX126xCheckDeviceReady函数,判断芯片的当前状态,然后关闭全局中断(进入临界区),通过SPI总线向芯片发送命令,命令发送完毕后打开全局中断(离开临界区)。最后判断,如果不是进入SLEEP模式,就等待芯片的BUSY引脚为低。YNEPu:5J
ZCdlTdYL9,;zkgo
接下来,我们再看SX126xCheckDeviceReady函数,程序如下:r_m*$r~f
@FC|1=+&NvvaqJ
void CSX1268::SX126xCheckDeviceReady(void)z[zURj-*]
{;+d2qbGd
if((this->OperatingMode == MODE_SLEEP) || (this->OperatingMode == MODE_RX_DC))in>Os@e#
{*z,] mi%
SX126xWakeup();P0R8
f
SX126xAntSwOn();/Y NV
}Dt)O60X3>
SX126xWaitOnBusy();Ancka
}SSoD}N
\^l273:Z(w,
程序判断当前工作模式是否是SLEEP或RX_DC,如果是则调用唤醒函数,并打开天线开关。对于上电或应复位,我们只需在程序起始时,设置模式为SLEEP,就可以使该函数生效。程序最后,判断BUSY引脚是否为低,以确认芯片是否可以接收SPI指令。??X3teO{
sx1268 中文_SX1268驱动程序设计相关推荐
- sx1268 中文_SX1268原理图_SX1268芯片datasheet_SX1268数据手册_SX1268无线收发器模块_SX1268用户手册_一牛网...
今天这个篇幅我们继续来探讨下LoRa领域的相关芯片,Semtech公司推出的SX1261/62/68系列的芯片,不知道各位朋友有没有了解过这系列芯片,一开始推出市场,就是打着特殊的LoRa调制方式.低 ...
- 简单说说驱动程序设计的入门
简单说说驱动程序设计的入门,其实初级驱动设计中也能使用C++,也能使用类,但和用户程序中的用法有一些区别,一些特殊的地方需要特别注意.从笔者的经验来看,WDK给出的AVStream小端口驱动示例工程, ...
- JAVA中文注解驱动,解决api接口返回的json里面出现中文乱码的问题
在src/main/resources/springmvc-servlet.xml中加入 <!-- 中文注解驱动 --> <mvc:annotation-driven>< ...
- 基于μC/OS—III的CC1120驱动程序设计
基于μC/OS-III的CC1120驱动程序设计 时间:2014-01-21 来源:电子设计工程 作者:张绍游,张贻雄,石江宏 关键字:CC1120 嵌入式操作系统 STM32F103ZE ...
- 2018-2019-1 20165318 20165322 20165326 实验四 外设驱动程序设计
实验四 外设驱动程序设计 实验内容 任务一 任务二 问题及解决方法 参考链接 实验内容 任务一 学习资源中全课中的"hqyj.嵌入式Linux应用程序开发标准教程.pdf"中的第十 ...
- 信息安全系统设计基础 实验四:外社驱动程序设计 20135327郭皓 20135329 李海空...
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全设计基础 班级:1353 姓名:郭皓 李海空 学号:20135327 ...
- 2017-2018-1 20155327 实验四 外设驱动程序设计
2017-2018-1 20155327 实验四 外设驱动程序设计 题目一 学习资源中全课中的"hqyj.嵌入式Linux应用程序开发标准教程.pdf"中的第十一章 提交康奈尔笔记 ...
- 信息安全系统设计基础实验四:外设驱动程序设计 20145222黄亚奇 20145213祁玮
北京电子科技学院(BESTI) 实 验 报 告 封 面 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号: 20145222 20145213 成绩: 指导教师:娄嘉鹏 实验日期 ...
- 2018-2019-1 20165211 实验四 外设驱动程序设计
2018-2019-1 20165211 实验四 外设驱动程序设计 任务一 1.实验要求 学习资源中全课中的"hqyj.嵌入式Linux应用程序开发标准教程.pdf"中的第十一章 ...
- Linux USB驱动程序设计
Linux USB驱动程序设计 1. USB发展史 USB(Universal Serial Bus ),通用串行总线,是一种外部总线标准,用于规范电脑与外部设备的连接和通讯. USB是在1994年底 ...
最新文章
- 【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
- CONVERT_DATE_INPUT
- 64 源码_【ClickHouse内核】源码阅读策略
- 你可能对position和z-index有一些误解
- 微信小程序服务器登入dome,小程序登录Demo
- py thon 多线程(转一篇好文章)
- 《『若水新闻』客户端开发教程》——04.设计新闻分类UI(2)
- 【COCOS2D-HTML5 开发之三】演示样例项目附源代码及执行的GIF效果图
- seay代码审计工具_渗透测试 网站代码审计等基础方法篇
- OAI搭建——eNB搭建
- 【图像识别】基于计算机视觉实现自动报靶系统(重弹孔)含Matlab源码
- 地图比例尺与空间分辨率之间的关系_百度、google、高德 地图比例尺功能实现(算法地图分辨率和zoomlevel之间的关系)...
- 教妹学 Java:晦涩难懂的泛型
- 数据分析师基本技能——SQL
- arduino红外遥控控制小灯
- vscode中好用的git相关的插件
- Linux 驱动简介
- 装载M1芯片的Mac安装“AE”时,出现错误代码“501”怎么办?
- 荣耀30s鸿蒙5g,荣耀赵明曝光荣耀30S包装盒 5G依旧是卖点
- sublime_text 3安装Emmet时出现PyV8警告