0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用开发笔记 | 米尔MYD-YA15XC-T LoRa无线通讯实例

米尔电子 2021-08-06 15:12 次阅读

​1.概述

本文主要基于LoRa调制功能的无线串口模块的树莓派扩展板,讲述在M4核LoRa的调试过程。

2.硬件资源

ØTypec Debug线1根

ØMicro usb线1根

ØMYD-15XC-T开发板

Ø树莓派接口SX1262 868M LoRa HAT模块2个

3.软件资源

ØLinux 5.4.31

ØSTM32CubeIDE 1.5.0

ØLInux虚拟机

Ø米尔提供的SDK

4.环境准备

预先安装好CubeIDE等开发软件并搭建好Linux虚拟机环境,具体环境搭建请参考米尔的软件开发手册《MYD-YA15XC-T_Linux软件开发指南》。

5.操作步骤

5.1.硬件介绍与设置

1)硬件介绍

关于树莓派接口SX1262 868M LoRa HAT模块的硬件介绍与设置请参考微雪官网:

https://www.waveshare.net/wiki/SX1262_868M_LoRa_HAT

2)接线与设置

需要两个LoRa模块,一个LoRa模块通过Micro USB连接至PC,跳帽置于A,M1和M0连接GND,打开SSCOM串口软件连接LoRa模块。另外一个LoRa模块跳帽连接B,M0、M1跳帽移除改用MYD-YA15XC-T开发板的GPIO使用,如下图所示:

poYBAGEM3zSAeoEfAArC5pDF_LY175.png

图5-1. 连接与配置

5.2.CubeMX配置

设置时钟为209M,如下图只需要在红色框输入209M,按“Enter”,会自动设置时钟参数:

poYBAGEM30GAFAm5AAClo0QsK90560.png

图 5-1.时钟设置

由于该模块通讯接口使用的是串口,所以还需要设置usart外设,并使能中断:

pYYBAGEM31iAf1wPAAFojqVaL2Q756.png

图 5-2.串口设置

接着勾选串口中断,通过中断收发:

pYYBAGEM32mAHZ7GAAEBrHHDY1Y795.png

图5-3.串口中断

5.3.软件设计

由5.2节生成代码之后,在工程目录新建“LoRa”目录,用来存放LoRa的配置代码(微雪官网有该模块设置源码,用户可以直接移植):

pYYBAGEM33WAA8tpAADNY7ApY_s838.png

设置寄存器配置模式,这里首先需要设置模式2进行寄存器配置:

void cfg_sx126x_io(uint8_t status)

{

if(CFG_REGISTER == status){

M0_RESET();

M1_SET();

HAL_Delay(5);

}else if(NORMAL_STATUS == status){

M0_RESET();

M1_RESET();

HAL_Delay(5);

}else if(WOR_STATUS == status){

M0_SET();

M1_RESET();

HAL_Delay(5);

}else if(SLEEP_STATUS == status){

M0_SET();

M1_SET();

HAL_Delay(5);

}

}

配置寄存器,设置波特率9600,广播监听地址:

/******************************************************************************

sx126x mode :broadcast & monitor mode

parameter:

address_high:0xff

address_low:0xff

net_id: 0x00

serial:0x62

power: 0x00

channel: 0x12

transmission_mode: 0x03

crypt_high: 0x00

crypt_low: 0x00

******************************************************************************/

lora_para_t transparent_mode = {

.address_high = BROADCAST_ADDH_VALUE,

.address_low = BROADCAST_ADDL_VALUE,

.net_id = BROADCAST_NETID_VALUE,

.serial = BROADCAST_SERIAL_VALUE,

.power = BROADCAST_POWER_VALUE,

.channel = BROADCAST_CHANNEL_VALUE,

.transmission_mode = BROADCAST_TRANSIMISSION_VALUE,

.crypt_high = BROADCAST_CRYPTH_VALUE,

.crypt_low = BROADCAST_CRYPTL_VALUE

};

设置寄存器:

uint8_t sx126x_write_register(lora_para_t para)

{

int8_t i;

buffer[0] = CFG_HEADER;

buffer[1] = REG_START;

buffer[2] = REG_NUMBER;

for(i=3;i<12;i++){

buffer[i] = *(¶.address_high + i - 3);

}

HAL_UART_Transmit_IT(&huart3,(uint8_t *)buffer,12);

HAL_UART_Receive_IT(&huart3,(uint8_t *)buffer,12);

HAL_Delay(500);

if(CFG_RETURN == buffer[0]){

buffer[0] = 0;

init_cplt_flag = SUCCESS;

return SUCCESS;

}

return ERROR;

}

定义发送的信息

/* USER CODE BEGIN 1 */

uint8_t transparent_string[] = "Helloworld";//"This is a transparent message\r\n";

uint32_t delay;

/* USER CODE END 1 */

主函数里,使用串口中断进行发送和接收处理:

/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1)

{

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

if(delay++>18000000){

HAL_UART_Transmit_IT(&huart3,transparent_string,strlen((const char *)transparent_string));

delay = 0;

}

if(SUCCESS == over_flag){

HAL_UART_Transmit_IT(&huart3,buffer,strlen((const char *)buffer));

over_flag = ERROR;

rece_count = 0;

HAL_UART_Receive_IT(&huart3,(uint8_t *)&rece_buff,1);

}

}

5.4.测试

1)量产模式启动m4固件

启动开发板,并启动m4固件,如下:

root@myir-ya151c-t-4e512d:~# cp LoRa_CM4.elf /lib/firmware/

root@myir-ya151c-t-4e512d:~# echo LoRa_CM4.elf > /sys/class/remoteproc/remotepro

c0/firmware

root@myir-ya151c-t-4e512d:~# echo start > /sys/class/remoteproc/remoteproc0/stat

e

[ 82.845983] remoteproc remoteproc0: powering up m4

[ 82.859219] remoteproc remoteproc0: Booting fw image LoRa_CM4.elf, size 2532532

[ 82.865319] remoteproc remoteproc0: header-less resource table

[ 82.870883] remoteproc remoteproc0: no resource table found for this firmware

[ 82.884297] remoteproc remoteproc0: header-less resource table

[ 82.888689] remoteproc remoteproc0: remote processor m4 is now up

2)信息接收

打开sscom,可以看到usb控制的LoRa模块能接收到数据,如下图所示:

poYBAGEM35aALJ4uAAGKmoVxTcM661.png

图 5-2.数据接收

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    4793

    浏览量

    96434
收藏 人收藏

    评论

    相关推荐

    Openharmony软件评估指南-米尔瑞芯微RK3568开发

    的快速入门指南 《MYD-LR3568 量产指导文档》 量产指导文档 应用笔记 案例开发笔记(暂无) 原厂资料 MYD-image-OpenHarmony4.img 全功能
    发表于 09-06 20:06

    基于LORA无线通讯技术的XKCON祥控多点温度监测系统支持用户根据实际监测需求,进行灵活布置

    中的必要指标,针对多点温度监测,济南祥控自动化设备有限公司开发了基于LORA无线通讯技术的多点温度监测系统,该系统主要由多点温度检测仪、无线通讯网关与监管软件组成,与传统的有线监测系统
    的头像 发表于 07-18 17:45 230次阅读
    基于<b class='flag-5'>LORA</b><b class='flag-5'>无线通讯</b>技术的XKCON祥控多点温度监测系统支持用户根据实际监测需求,进行灵活布置

    国产PLC能否使用无线通讯终端来实现无线通讯?让我们一探究竟

    PLC无线通讯设备来解决该问题。本方案以汇川H5U PLC为例,验证测试两台汇川PLC之间在ModbusTCP/IP通讯协议下,快速实现自组网无线通讯的解决方案。在本方案中采用了达泰日系PLC
    的头像 发表于 07-09 17:37 1310次阅读
    国产PLC能否使用<b class='flag-5'>无线通讯</b>终端来实现<b class='flag-5'>无线通讯</b>?让我们一探究竟

    米尔基于NXP iMX.93开发板的M33处理器应用开发笔记

    资源MYD-LMX9X开发板(米尔基于NXPiMX.93开发板)3.软件资源Windows7及以上版本软件:IAREmbeddedWorkbench4.板载固件调试
    的头像 发表于 06-29 08:01 1073次阅读
    <b class='flag-5'>米尔</b>基于NXP iMX.93<b class='flag-5'>开发</b>板的M33处理器应用<b class='flag-5'>开发笔记</b>

    米尔T527系列加推工控板和工控机,更多工业场景DEMO

    更灵活地开发各种创新应用。米尔为满足不同的客户需求,推出基于全志T527的全系列的产品:米粉派T527、MYD-LT527-SX商显板等等。
    发表于 06-21 17:54

    米尔T527系列加推工控板和工控机,更多工业场景DEMO

    更灵活地开发各种创新应用。米尔为满足不同的客户需求,推出基于全志T527的全系列的产品:米粉派T527、MYD-LT527-SX商显板等等。
    的头像 发表于 06-21 08:01 288次阅读
    <b class='flag-5'>米尔</b><b class='flag-5'>T</b>527系列加推工控板和工控机,更多工业场景DEMO

    PLC无线通讯模块在触摸屏与台达PLC之间的应用教程

    本方案可以作为信捷触摸屏与台达PLC之间在台达专用协议下将有线通讯改为无线通讯的应用实例。此方案中信捷TG765触摸屏作为主站,台达DVP-32EH PLC作为从站,采用西安达泰电子日系PLC
    的头像 发表于 05-27 09:57 979次阅读
    PLC<b class='flag-5'>无线通讯</b>模块在触摸屏与台达PLC之间的应用教程

    plc无线通讯模块怎么用 PLC编程的注意事项

    的应用场景和需求,选择适合的无线通信技术,例如Wi-Fi、蓝牙、LoRa、Zigbee等。每种无线通信技术都有其自身的特点和适用范围,需要根据实际情况进行选择。 熟悉PLC无线通讯模块
    的头像 发表于 02-19 15:36 984次阅读

    plc无线通讯模块怎么用 plc无线通讯模块怎么编程

    PLC无线通讯模块是一种可以将PLC与其他设备无线连接的模块,使得PLC可以与其他设备进行数据交流和控制。本文将介绍PLC无线通讯模块的基本原理、使用方法以及编程开发的步骤。 一、PL
    的头像 发表于 01-25 16:15 1631次阅读

    安科瑞数据中心AMB智能小母线监控解决方案 RS485有线或LORA无线通讯

    安科瑞数据中心AMB智能小母线监控解决方案 RS485有线或LORA无线通讯
    的头像 发表于 01-17 08:59 437次阅读
    安科瑞数据中心AMB智能小母线监控解决方案 RS485有线或<b class='flag-5'>LORA</b><b class='flag-5'>无线通讯</b>

    无线通讯干扰源分析及解决办法

    无线通讯设备稳定不稳定?”这个问题若是被工厂的技术人员提出的话,99%的人都希望得到一个关于无线产品可靠性的答案。如果单从技术层面来说明,由实验室出具的产品可靠性数据分析报告就可回答这个问题。但
    的头像 发表于 12-27 09:07 547次阅读
    <b class='flag-5'>无线通讯</b>干扰源分析及解决办法

    基于RS232的无线通讯终端系统设计

    电子发烧友网站提供《基于RS232的无线通讯终端系统设计.pdf》资料免费下载
    发表于 11-08 15:03 0次下载
    基于RS232的<b class='flag-5'>无线通讯</b>终端系统设计

    PLC无线通讯模块_GRM110系列

    GRM110 系列PLC无线通讯模块由广州巨控科技开发。它采用 LORA 无线通讯方式,相对传统的数传电台,距 离增加 2 倍以上。能适应点对点、点对多点的
    的头像 发表于 10-30 09:30 835次阅读
    PLC<b class='flag-5'>无线通讯</b>模块_GRM110系列

    触摸屏与施耐德PLC之间MODBUS无线通讯

    触摸屏与施耐德PLC之间MODBUS无线通讯
    的头像 发表于 10-25 09:03 1278次阅读
    触摸屏与施耐德PLC之间MODBUS<b class='flag-5'>无线通讯</b>

    基于STM32的USB程序开发笔记

    基于STM32的USB程序开发笔记STM32 USB 源代码及笔记下载.rar
    发表于 10-09 06:05