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

    文章

    4420

    浏览量

    93922
收藏 人收藏

    评论

    相关推荐

    安科瑞AF-GSM500-4G系列无线通讯模块 工业数据采集数据传输

    汇总后,实时上传主站系统,完成遥信、遥测等能源数据采集功能。 AF-GSM 无线通讯模块支持 HJ212 协议、安全用电协议、透传、MQTT 等无线通讯协议,并支持其他协议的定制与开发。通过 4G、以太网、
    的头像 发表于 04-10 14:32 86次阅读
    安科瑞AF-GSM500-4G系列<b class='flag-5'>无线通讯</b>模块 工业数据采集数据传输

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

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

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

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

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

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

    安科瑞AWT100-Lora无线通讯网关 lora中继器透传

    ,就可以完成对 MODBUS 设 备的数据采集;同时 AWT100 系列无线通讯终端采用了功能强大的微处理芯片,配合内置看门狗
    的头像 发表于 11-14 12:58 492次阅读
    安科瑞AWT100-<b class='flag-5'>Lora</b><b class='flag-5'>无线通讯</b>网关 <b class='flag-5'>lora</b>中继器透传

    PLC无线通讯模块_GRM110系列

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

    基于STM32的USB程序开发笔记

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

    如何选择米尔基于STM32MP1系列核心板和开发

    如何挑选合适的核心板进行设计呢?我们可以通过以下几点进行对比: 1.处理器性能不同 MYC-YA15XC-T核心板基于STM32MP151处理器,这个CPU是一种单Cortex-A7+单Cortex-M4
    发表于 09-28 16:54

    米尔基于瑞萨RZ/G2L开发板在工控领域的应用-基于SOEM的EtherCAT主站

    本文介绍【米尔MYD-YG2LX开发板】在工控领域的应用,实现基于SOEM的EtherCAT主站。开发环境基于WSL2。
    的头像 发表于 08-24 18:57 533次阅读
    <b class='flag-5'>米尔</b>基于瑞萨RZ/G2L<b class='flag-5'>开发</b>板在工控领域的应用-基于SOEM的EtherCAT主站

    PLC与变频器之间无线通讯

    在工业现场由PLC远程控制变频器的应用非常常见,如果挖沟布线不便或者变频器在移动设备上,那么采用无线通讯就是最佳方案。 这里我们选用最常用的三菱 FX2N PLC和三菱变频器为例,并结合日系plc
    的头像 发表于 08-22 09:25 894次阅读
    PLC与变频器之间<b class='flag-5'>无线通讯</b>

    #硬声创作季 电子知识 无线通讯模块

    无线通讯
    Mr_haohao
    发布于 :2023年07月25日 08:23:33

    Lora无线通讯的优点

    你知道Lora无线通讯吗?LoRa就是远距离无线电(Long Range Radio)的缩写。它是全球领先的模拟和混合信号美国半导体公司Semtech
    的头像 发表于 07-05 11:02 744次阅读

    米尔MYD-YG2开发板触摸屏测试

    米尔MYD-YG2开发板测试米尔触摸屏
    的头像 发表于 05-24 13:12 29.4w次阅读

    米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】九、QTDome大全

    ,并查看编译结果是否成功和编译后的输出路径。 最后将编译后的文件,复制到IMX8MMA7开发板上,然后运行其代码操作方法如下: 实际运行效果: 二、米尔开发板内例程 米尔科技
    发表于 05-23 09:21

    触摸屏与三菱PLC之间无线MODBUS通讯实例

    问题。 一、方案概述 本方案是威纶通触摸屏与三菱FX5U PLC基于MODBUS协议下的无线通信实现方法。此方案中威纶通触摸屏作为主站,三菱FX5U PLC作为从站,并采用日系PLC无线通讯终端DTD435MC,作为实现无线通讯
    的头像 发表于 05-11 09:16 2262次阅读
    触摸屏与三菱PLC之间<b class='flag-5'>无线</b>MODBUS<b class='flag-5'>通讯实例</b>