打印
[STM32L1]

STM32L151+LoRa开发板笔记

[复制链接]
460|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LEDyyds|  楼主 | 2023-3-29 11:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1、支持 LoRaWAN 协议
2、可接插锂电池、板载 USB 转串口

1、介绍
LoRa_Kit_151 的射频部分是基于 Semtech SX127x 芯片的模块,主控芯片采用 STM32L151CBU6。是一款低功耗、高性价比的LoRaWAN 方案评估板。

1.2、产品特性
板载 CP2102 USB 转串口芯片(被连到 151 的 USART1),方便调试和烧写程
序(驱动程序);

2 个 LED 指示灯:橙色:电源指示(闪烁 – 通电; 长明 – 充电; 熄灭 – 充电完成),白色:连接到 PB8,高电平点亮;

RTC 时钟采用 32.768KHz 外部晶振;

板载锂电池充放电管理芯片,可直接对锂电池充电或使用锂电池供电;

工作频段:433MHz ~ 510MHz;

发射功率:18dBm ± 1dBm,发射电流:≈100mA;

接收灵敏度:-139dBm(SF12、带宽 125KHz);

完整的 STM32L151 特性:SPI、USART、IIC、GPIO、ADC……

提供支持 LoRaWAN Class A/C 协议的 SDK 开发包;

系统资源:FLASH – 128K, RAM – 16K, EEPROM – 4K;

用户可用资源:FLASH – 64K, RAM – 8K, EEPROM – 4K。

2、SDK开发包指南
2.1、开发包简介

开发环境:MDK-ARM μVision5.23.0.0

完全符合 LoRaWAN 1.0.1 和 1.0.2 协议标准

支持 Class A 和 Class C 协议

支持 ABP 和 OTAA 激活

支持上下行双向通信

基础的低功耗设计

2.2、开发包使用方法

V5.23 版本或高于此版本的 MDK-ARM 是可以对该开发包直接打开并编译的。

例程中包含 868MHz、915 MHz 等国际常用频段的定义,默认是使用 470-510 频段的,注意确认其中的宏定义部分(参照图 2-1)。若需要使用 868 MHz、915 MHz等频段,按需自行修改宏定义即可。

2.2.1、 头文件“Comissioning.h”中的一些参数

2.2.2、 头文件“LoRaMac-definitions.h”及信道

该头文件定义了 LoRaWAN 的基础通信配置的参数,,其中根据不同频段参数有所不同。我们默认的例程使用的是 470~510MHz 频段。

#define LORA_MAX_NB_CHANNELS 96

1
通过上面的宏定义,可知该频段总共支持 96 个上行信道,具体的信道配置如
下图红框内的代码:

由以上代码可知:从 470.3MHz 开始,信道之间间隔 200KHz,489.3MHz 结束。

与 96 上行信道对应的下行信道只有 48 个,从 500.3MHz 开始,通信间隔200KHz,509.7MHz 结束:

#define LORAMAC_FIRST_RX1_CHANNEL ( (uint32_t) 500.3e6 )

#define LORAMAC_LAST_RX1_CHANNEL ( (uint32_t) 509.7e6 )

通过如下函数与上行信道对应:

RxWindowSetup( LORAMAC_FIRST_RX1_CHANNEL + ( Channel % 48 ) * LORAMAC_STEPWIDTH_RX1
_CHANNEL, RxWindowsParams[0].Datarate, RxWindowsParams[0].Bandwidth, RxWindowsParam
s[0].RxWindowTimeout, false );

其中利用(channel % 48)将上行信道分为 0~47 和 48~95,分别与下行信道的 0~47对应,另外还有一个固定的下行 RX2 信道:

#define RX_WND_2_CHANNEL { 505300000, DR_0 }

实际上,单SX1301的网关只有 8个上行信道,所以需要设置SDK的信道掩码,
只开启需要的信道即可:

LoRaMacParamsDefaults.ChannelsMask[0] = 0x00FF;
LoRaMacParamsDefaults.ChannelsMask[1] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[2] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[3] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[4] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[5] = 0x0000;

上面代码中,LoRaMacParamsDefaults.ChannelsMask 数组元素为 uint16_t 型,
其中每 1bit 代表一个信道,所以该 6 个长度的数组,总共可代表 16*6=96 个信
道,并且每一个元素都是 LSB,即:

0x00FF; //bit 15~0
0x0000; //bit 31~16
0x0000; //bit 47~32
0x0000; //bit 63~48
0x0000; //bit 79~64
0x0000; //bit 95~80

所以在本例程中,LoRaMacParamsDefaults.ChannelsMask[0] = 0x00FF;表示只使

用 0~7 信道。


2.2.3 关于发送周期


LoRaWAN 的优势在于长距离通信,适合数据统计、自动化仪表周期性抄报等实时性要求不高的场景,不能够用于短时间内多次发送数据的场合。本例程发送数据的周期为 1 分钟,最快可以缩短到 10 秒钟一次,但需要节点很少,距离较近且干扰较小的情况才行。



使用特权

评论回复
沙发
Uriah| | 2024-1-27 07:31 | 只看该作者

环氧树脂由于硬度的原因不能用于应力敏感和含有贴片元件的模块灌封,在模块电源中基本被淘汰

使用特权

评论回复
板凳
Clyde011| | 2024-1-27 17:31 | 只看该作者

大于1的定义为极高导热的性能,而对于模块电源此水平的导热系数是无法达到其散热功能的需求

使用特权

评论回复
地板
万图| | 2024-1-27 19:27 | 只看该作者

在电路中有部分电子元器件比较“脆弱”

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

867

帖子

1

粉丝