# chirplan-gateway_subcard
**Repository Path**: lausi/chirplan-gateway_subcard
## Basic Information
- **Project Name**: chirplan-gateway_subcard
- **Description**: ChirpLAN网关子卡(PAN3028)源码
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-06-27
- **Last Updated**: 2026-03-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ChirpLAN网关子卡模块
ChirpLAN网关子卡支持用户通过AT指令控制Chirp模块进行数据收发,Chirp模块接收到数据后,会通过串口将数据透传到用户。
ChirpLAN网关子卡支持用户配置为发射/接收/待机状态,不支持低功耗休眠。
## 一、开发环境
- 开发环境编译器:Keil5
- pack包:HC32L136.1.0.0.pack
- Device:HC32L136J8TA
- Flash:HC32L136_64K
## 二、模块引脚说明

ChirpLAN网络模块引脚示意图
| 引脚名称 | IO 类型 | 引脚描述 |
| -------- | ------- | ------------------------------------------------------------ |
| VCC | 电源 | 供电引脚 |
| GND | 电源 | 参考地 |
| ANT | 模拟 | 射频信号输入/输出端口, ANT 端口预留匹配电路,
走线使用 50 Ω 阻抗匹配, 铺地并在周围加过孔 |
| AUX | / |
| UART-RX | 输入 | TTL 串口接收引脚 |
| UART-TX | 输出 | TTL 串口发送引脚 |
| SETA | / | |
| SETB | / | |
## 三、工作流程
下图为网关子卡工作流程图,模块上电后根据默认系统配置参数进入接收,用户可以通过指令修改收发参数配置、下发数据发送任务,模块在接收到数据后会将结果通过串口通知用户。用户每次指令操作后需要等到模块回复指令结果后,才可继续操作下一条指令。
注意,模块参数掉电不保存,重新上电后需要根据需求重新配置参数。

Chirplan网关子卡工作流程图
## 四、AT指令
### 4.1AT指令语法
AT指令采用基于ASCII码的命令行,命令格式如下:
```
AT+[OP][para-1,para-2,....para-n]<\r\n>
```
AT指令格式
| 域 | 说明 |
| ------------------------ | ------------------------------------------------------------ |
| AT+ | 命令消息前缀 |
| CMD | 命令字符 |
| OP | 指令操作符。可以是以下内容:“=”:表示参数设置“?”:表示查询参数的当前值“”:表示执行命令“=?”:表示查询设置指令的参数 |
| para-1,para-2,....para-n | 表示设置的参数值 |
| \r\n | 回车换行结束符,ASCII码为0x0D 0x0A |
注:
<>:表示必须包含的内容。
[]:表示可选的内容。
\r:回车结束符,ASCII码为0x0D。
\n:换行符,ASCII码为0x0A。
指令设置完成后,可以通过查询指令查看当前参数值,串口波特率115200。
下文中为了便于阅读,将\r\n隐藏。
### 4.2AT指令总览
通用指令集
| 命令 | 描述 |
| -------- | ------------------------- |
| AT+PREAM | 设置读取模块的前导码时间 |
| AT+FREQ | 设置读取模块的频点 |
| AT+MODE | 设置读取模块射频参数 |
| AT+RX | 设置模块进入/退出发射状态 |
| AT+TX | 设置模块发送数据 |
| AT+KEY | 设置模块加密密钥 |
### 4.3设置前导码时间
设置读取前导码时间
| 命令类型 | 命令格式 | 响应 |
| -------- | ------------------------------------------------------------ | -------------------------------------- |
| 测试命令 | AT+PREAM=? | +PREAM:"preamble:0-4294967 ms"
OK |
| 查询命令 | AT+PREAM? | +PREAM:8
OK |
| 执行命令 | AT+PREAM=`` | OK
或者
+CME ERROR:`` |
| 参数说明 | ``:模组前导码时间,支持范围0-4294967,单位为毫秒。
超过范围,或者设0,都会将前导码长度设置为8 | |
| 示例 | AT+PREAM=500
表示设置模组的前导码时间为500ms | |
### 4.4设置接收频点
设置读取接收频点
| 命令类型 | 命令格式 | 响应 |
| -------- | ------------------------------------------------------- | ------------------------------------------------------------ |
| 测试命令 | AT+FREQ=? | +FREQ:"freq : 370000000 - 600000000,740000000 - 1200000000"
OK |
| 查询命令 | AT+FREQ? | +FREQ:471900000
OK |
| 执行命令 | AT+FREQ=`` | OK
或者
+CME ERROR:`` |
| 参数说明 | ``:模组频率值,单位Hz | |
| 示例 | AT+FREQ=461100000
表示设置模组的接收频点为461.1MHz | |
### 4.5设置射频参数
设置读取射频参数
| 命令类型 | 命令格式 | 响应 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 测试命令 | AT+MODE=? | +MODE:"BW(1:6-9),SF(2:07-12),CR(1:1-4),LDR(1:0-1),CRC(1:0-1),PWR(2:00-29)"
OK |
| 查询命令 | AT+MODE? | +MODE:60740122
OK |
| 执行命令 | AT+MODE=`` | OK
或者
+CME ERROR:`` |
| 参数说明 | ``:模组射频参数,共8字节,依次为BW(1),SF(2),CR(1),LDR(1),CRC(1),PWR(2) | |
| 示例 | AT+MODE=60740122
表示设置模组参数为:BW为62.5K,SF为7,CR为4,LDR为0,CRC为1,PWR功率为22
注意这里这是的PWR是挡位,而不是实际输出功率值 | |
### 4.6设置接收模式
设置接收模式
| 命令类型 | 命令格式 | 响应 |
| -------- | ------------------------------------------------------------ | ------------------------------------ |
| 测试命令 | AT+RX=? | +RX:"enter rx:0-1"
OK |
| 查询命令 | / | / |
| 执行命令 | AT+RX=`` | OK
或者
+CME ERROR:`` |
| 参数说明 | ``:设置接收模式,共1字节 | |
| 示例 | AT+RX=1
表示设置模组进入接收模式
AT+RX=0
表示设置模组退出接收模式(模组将保持待机STB3模式) | |
### 4.7设置发送数据
设置发送数据
| 命令类型 | 命令格式 | 响应 |
| -------- | ------------------------------------------------------------ | ------------------------------------ |
| 测试命令 | AT+TX=? | +TX:"transmit"
OK |
| 查询命令 | / | / |
| 执行命令 | AT+TX=`` | OK
或者
+CME ERROR:`` |
| 参数说明 | ``:数据 | |
| 示例 | AT+TX=fe2441fc4d
表示设置发送数据:0xfe 0x24 0x41 0xfc 0x4d | |
### 4.8设置加密密钥
设置加密密钥
| 命令类型 | 命令格式 | 响应 |
| -------- | ------------------------------------------------------------ | --------------------------------------------- |
| 测试命令 | AT+KEY=? | +KEY:"AES KEY"
OK |
| 查询命令 | AT+KEY? | +KEY:000102030405060708090a0b0c0d0e0f
OK |
| 执行命令 | AT+KEY=`` | OK
或者
+CME ERROR:`` |
| 参数说明 | ``:密钥内容(密钥长度为16字节) | |
| 示例 | AT+KEY=000102030405060708090a0b0c0d0e0f
表示16字节密钥为:{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F} | |