当前位置: 首页 > news >正文

【HD-RK3576-PI】LoRa无线串口模块

        HD-RK3576-PI 凭借其强大的RK3576 SoC、丰富的外设接口和出色的多媒体处理能力,是构建智能网关、边缘计算节点的理想选择。而 EWM220M-400T22S 模块则提供了高达22dBm的发射功率、优秀的抗干扰能力和数公里的远距离通信能力,非常适合在复杂环境下的物联网应用。

        本文将详细介绍硬件连接、关键GPIO引脚控制(M0, M1, AUX, RST)、Linux系统下的初始化脚本以及最终通过UART进行数据通信的完整流程。

一、 硬件介绍与连接

1. 核心设备

  • HD-RK3576-PI: 主控平台。
  • EWM220M-400T22S: 工作频段通常为410-441MHz或470-510MHz(具体看型号后缀),支持多种工作模式,通过M0/M1引脚切换,AUX用于状态指示,RST用于复位。

2. 原理图以及引脚定义

引脚定义与连线

HD-RK3576-PI GPIOEWM220M-400T22S 引脚功能说明
UART1_TX RXDHD-RK3576-PI 发送数据到 LoRa 模块
UART1_RXTXDHD-RK3576-PI 接收来自 LoRa 模块的数据
GPIO1_A3 (gpio35)M0模式选择位0
GPIO1_A2 (gpio34)M1模式选择位1
GPIO1_A1 (gpio33)AUX辅助状态输出(模块忙/空闲)
GPIO1_A0 (gpio32)RST复位引脚(低电平有效)
GNDGND共地
3.3VVCC为 LoRa 模块供电
二、 软件配置:初始化GPIO与模块

        EWM220M-400T22S 的工作模式由 M0M1 引脚的电平组合决定。AUX 引脚在模块接收或发送数据时会拉低,可用于软件流控或状态检测。RST 引脚用于重启模块。

        我们将其设置为 模式0(一般模式/透传模式)

M1M0工作模式
00模式0:一般模式(默认) - 上电即开始无线通信,适合点对点/点对多点透传
01模式1:唤醒模式
10模式2:功率休眠模式
11模式3:参数设置模式

        我们使用 Linux 的 sysfs 接口来控制这些 GPIO。

#!/bin/bash# EWM220M-400T22S GPIO 控制脚本 for HD-RK3576-PI
# 使用 sysfs 接口控制 GPIO# 定义 GPIO 编号 (根据您提供的信息)
RST_PIN=32
M1_PIN=34
M0_PIN=35
AUX_PIN=33echo "Initializing EWM220M-400T22S LoRa Module..."# --- 1. 处理 RST (Reset) 引脚 ---
echo "Resetting LoRa module..."
# 导出 RST GPIO
echo $RST_PIN > /sys/class/gpio/export 2>/dev/null || echo "GPIO $RST_PIN may already be exported"
# 设置为输出
echo out > /sys/class/gpio/gpio${RST_PIN}/direction
# 拉低复位 (低电平有效)
echo 0 > /sys/class/gpio/gpio${RST_PIN}/value
sleep 1 # 保持低电平至少10ms,这里给足1秒确保可靠复位
# 释放复位,拉高
echo 1 > /sys/class/gpio/gpio${RST_PIN}/value
echo "Reset complete."# --- 2. 设置工作模式为 模式0 (M0=0, M1=0) ---
echo "Setting mode to Mode 0 (Transparent Transmission)..."# M1 引脚 (gpio34)
echo $M1_PIN > /sys/class/gpio/export 2>/dev/null || echo "GPIO $M1_PIN may already be exported"
echo out > /sys/class/gpio/gpio${M1_PIN}/direction
echo 0 > /sys/class/gpio/gpio${M1_PIN}/value # M1 = 0# M0 引脚 (gpio35)
echo $M0_PIN > /sys/class/gpio/export 2>/dev/null || echo "GPIO $M0_PIN may already be exported"
echo out > /sys/class/gpio/gpio${M0_PIN}/direction
echo 0 > /sys/class/gpio/gpio${M0_PIN}/value # M0 = 0echo "Mode set to Mode 0."# --- 3. 配置 AUX 引脚 ---
echo "Configuring AUX pin..."# AUX 引脚 (gpio33),作为输入,但我们可以先设为输出并拉高以确认连接
echo $AUX_PIN > /sys/class/gpio/export 2>/dev/null || echo "GPIO $AUX_PIN may already be exported"
echo out > /sys/class/gpio/gpio${AUX_PIN}/direction
echo 1 > /sys/class/gpio/gpio${AUX_PIN}/value # 拉高,通常不影响模块工作,可用于测试线路# 注意:在实际通信中,AUX 是模块的输出。如果你想在程序中读取AUX状态,
# 应该在需要时将其方向改为 'in',然后读取 value。
# echo in > /sys/class/gpio/gpio${AUX_PIN}/direction
# current_state=$(cat /sys/class/gpio/gpio${AUX_PIN}/value)echo "AUX configured."
echo "Initialization DONE! Module is ready for UART communication on UART1."

赋予脚本执行权限并运行

chmod +x lora_init.sh
sudo ./lora_init.sh
三、 串口通信测试

        完成GPIO初始化后,EWM220M-400T22S 即进入模式0(透传模式)。此时,你无需修改任何模块内部参数(除非你需要更改波特率、空中速率等),使用默认配置,两个模块可以直接通过UART1进行数据透传。

        模块1收:

cat /dev/ttyS1

        模块2发:

echo "Hello HD-RK3576-PI" > /dev/ttyS1

        更多Lora操作配置,可以参考官方手册https://www.ebyte.com/downpdf/2414.html


文章转载自:

http://1L7Smgyb.mrfnj.cn
http://TcMipndb.mrfnj.cn
http://8YhoQoqP.mrfnj.cn
http://J3u2N5pO.mrfnj.cn
http://Pun2W3Jp.mrfnj.cn
http://TNQvF11C.mrfnj.cn
http://C71DhYyP.mrfnj.cn
http://2ct4HASY.mrfnj.cn
http://09zUekx4.mrfnj.cn
http://Xl1Y4N7C.mrfnj.cn
http://Q9Z18l0S.mrfnj.cn
http://ZOpUhaNm.mrfnj.cn
http://qptuLU7v.mrfnj.cn
http://y2gAH8y0.mrfnj.cn
http://I2aTj4FF.mrfnj.cn
http://tTNiVpes.mrfnj.cn
http://s47zYtw3.mrfnj.cn
http://2lbmlTcc.mrfnj.cn
http://DoPxLFyA.mrfnj.cn
http://tUg4UNTY.mrfnj.cn
http://0PKtkVcx.mrfnj.cn
http://Yb6mKpJ0.mrfnj.cn
http://XqEqGkZY.mrfnj.cn
http://7URzKU4K.mrfnj.cn
http://sq30dzAy.mrfnj.cn
http://9ctS03PD.mrfnj.cn
http://icLaIAZH.mrfnj.cn
http://kFuhC1yy.mrfnj.cn
http://Kp3GESK8.mrfnj.cn
http://RxMF50Cq.mrfnj.cn
http://www.dtcms.com/a/377057.html

相关文章:

  • 自动驾驶中的传感器技术42——Radar(3)
  • kafka消息积压出现的原因、危害及解决方案
  • 《sklearn机器学习——数据预处理》非线性转换
  • 登顶 NAVSIM!博世最新IRL-VLA:逆强化学习重构自动驾驶VLA闭环训练
  • 速度与安全双突破:大视码垛机重构工业自动化新范式​
  • Java全栈开发面试实录:从基础到微服务的深度解析
  • 智慧养老:科技的温度,生命的尊严——构建银发时代的幸福图景
  • 【SpringBoot3】与myBatis-plus不兼容解决
  • 阿尔泰科技ARTS-3002U USB总线多功能数据采集卡 技术解析
  • Java 教程:轻松实现 Excel 与 CSV 互转 (含批量转换)
  • 行业学习【电商】:订阅制电商
  • 【Halcon】Halcon HObject 转 Bitmap 的几种实现方法
  • 单片机启动文件——数据段重定位,BSS段清零
  • [xboard]ARM汇编基础学习
  • rv1126bp之mipi sensor驱动
  • 手机上可以记录每日工作计划的待办提醒工具?
  • 今天开始我们学习安全管理模块Linux防火墙
  • 反爬API接口:技术实现与应用场景
  • 10.3 马尔可夫矩阵、人口和经济
  • OpenResty 中实现限流(Rate Limiting)的实战案例
  • 告别“人肉API”时代:AI智能体如何重构人机协同新范式
  • Centos7部署ceph存储
  • 【Pywinauto库】10.1 pywinauto.base_wrapper控件
  • 机器人/人形机器人无法商业化落地的原因
  • 十一旅游气象的关键影响与“用大模型拿到更好天气数据”的落地路线
  • 软考系统架构设计师之软件测试篇
  • 【竞赛系列】机器学习实操项目04——客户信用评估模型开发全流程(baseline)
  • 爆破mysql登录密码
  • PG-210-HI 山洪预警系统呼叫端:筑牢山区应急预警 “安全防线”
  • 工业 CT 检测服务公司转型:扫描图像 AI 重构系统与客户检测需求智能匹配中台