# LR2021_AT **Repository Path**: esd-robot/LR2021_AT ## Basic Information - **Project Name**: LR2021_AT - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LR2021 AT Command Firmware 基于 XIAO nRF54L15 开发板和 LR2021 LoRa 收发器控制固件,通过 AT 命令进行射频配置和收发操作。 **版本: v1.1** ## 硬件连接 XIAO nRF54L15 引脚分配如下: ``` LR2021 模组 XIAO nRF54L15 SCK (P2.01) <--> SPI0 SCK MISO (P2.04) <--> SPI0 MISO MOSI (P2.02) <--> SPI0 MOSI CS (P1.07) <--> GPIO (手动控制) RESET (P1.06) <--> GPIO BUSY (P1.05) <--> GPIO INT (P1.04) <--> GPIO LED (P2.00) <--> GPIO (active-low, 亮=错误, 灭=正常) USB <--> USB (AT命令输入/输出) ``` > **注**: LR2021 模组无外部 RF 开关,Sub-G 和 2.4G 天线直连芯片引脚。 > **注**: LR2021 使用外部 32MHz TCXO,VTCXO 配置为 3.3V 输出 (启动延时 ~15ms)。 > **注**: TX/RX 模式通过 DIO8 (P1.04) 硬件中断驱动,无需 SPI 轮询,响应更快。 ## 软件环境依赖 | 工具 | 版本 | |------|------| | nRF Connect SDK | v3.3.0 | | Zephyr OS | v4.3.99 (随 nCS v3.3.0 附带) | | Python | 3.x | | west | nCS 内置 | | 编译工具链 | nCS 提供的 GCC ARM | | 串口工具 | 任意 (用于 AT 命令交互) | ## 项目结构 ``` LR2021_AT/ ├── CMakeLists.txt # 构建配置 ├── prj.conf # Zephyr 项目配置 ├── xiao_nrf54l15.overlay # 设备树覆盖 (SPI/GPIO) ├── README.md # 本文件 ├── include/ │ ├── at_cmd.h # AT 命令头文件 │ └── lr20xx_hal.h # HAL 硬件抽象层 (自定义覆盖) ├── src/ │ ├── main.c # 主程序 (初始化/检测/radio_init) │ ├── lr20xx_hal.c # HAL 实现 (硬件 SPI/GPIO) │ └── at_cmd.c # AT 命令处理器 └── lr20xx_driver/ # LR20xx 底层驱动 (Semtech USP SDK 官方源码) ├── inc/ # 头文件 └── src/ # 源码 (system, radio, fifo, regmem) ``` ## 构建 ```bash # 设置 nCS 环境 # Windows: C:\ncs\v3.3.0\toolchains\936afb6332\opt\bin\ncs-toolchain-v3.3.0-win-x86_64.exe # 构建并烧录 west build -b xiao_nrf54l15/nrf54l15/cpuapp west flash ``` ## AT 命令列表 ### 基础命令 | 命令 | 说明 | |------|------| | `AT` | 测试通信 | | `AT+STATUS` | 查询芯片状态 (模式/IRQ/电压/温度) | | `AT+HELP` | 显示帮助和当前射频配置 | | `AT+RESET` | 复位 LR2021 并重新初始化射频 | | `AT+SLEEP=0/1` | 进入低功耗睡眠 (0=cold, 1=warm) | | `AT+DO5..11=0/1` | DIO GPIO 输出 (例如 `AT+DO6=1` 拉高, `AT+DO11=0` 拉低) | | `AT+DIO=5,6,7\|0,1,1` | 批量设置 DIO (`\|` 左边编号, 右边电平, 最多7个) | ### 射频参数设置 | 命令 | 说明 | 范围 | |------|------|------| | `AT+FREQ[=hz]` | 射频频率 | 100000000~2500000000 Hz | | `AT+POWER[=dbm]` | 发射功率 | -17~22 dBm | | `AT+SF[=5..12]` | 扩频因子 | 5~12 | | `AT+BW[=khz]` | 带宽 | 31,41,62,83,101,125,203,250,406,500,812,1000 | | `AT+CR[=0..7]` | 编码率 | 0=NoCR, 1=4/5, 2=4/6, 3=4/7, 4=4/8, 5=LI4/5, 6=LI4/6, 7=LI4/8 | | `AT+RXBOOST[=0/1]` | RX Boost 模式 | 0=关, 1=开 (默认开) | | `AT+RXGAIN[=0..13]` | RX 增益档位 | 0=AUTO(AGC,默认), 1~13=G1~G13 手动增益 | | `AT+NBFRAME[=n]` | TX 帧数 | 1~65535 | ### PA 配置 | 命令 | 说明 | 范围 | |------|------|------| | `AT+PA_SEL[=1/2]` | PA 选择 | 1=LF(Sub-GHz), 2=HF(2.4GHz) | | `AT+PA_DUTY_CYCLE[=n]` | PA 占空比 (自动选择 LF/HF) | LF:0~7, HF:0~31 | | `AT+HP_PA_SEL[=0..7]` | LF PA 切片数 (等同于 PA_LF_SLICES) | 0~7 | | `AT+PA_LF_DC[=0..7]` | LF PA 占空比 | 0~7 | | `AT+PA_LF_SLICES[=0..7]` | LF PA 切片数 | 0~7 | | `AT+PA_HF_DC[=0..31]` | HF PA 占空比 | 0~31 | ### 操作命令 | 命令 | 说明 | |------|------| | `AT+TRSW[=0/1]` | 0=发射, 1=接收 | | `AT+CWSW[=0/1]` | 连续波模式 0=关, 1=开 | | `AT+START` | 应用配置并启动收发 (运行中仅允许 `AT+HELP`, `AT+STATUS`, `AT+RESET`) | ## 工作模式 ### 1. CW 连续波模式 #### Sub-GHz (868MHz) ``` AT+PA_SEL=1 # LF PA (Sub-GHz) AT+PA_LF_DC=6 # 占空比 AT+PA_LF_SLICES=7 # 全部切片 AT+POWER=14 # 14 dBm AT+FREQ=868000000 # 868 MHz AT+CWSW=1 # 开启 CW 模式 AT+START ``` #### 2.4GHz CW ``` AT+PA_SEL=2 # HF PA (2.4GHz) AT+PA_HF_DC=16 # HF 占空比 AT+POWER=10 # 10 dBm (HF PA 最大约 12dBm) AT+FREQ=2400000000 # 2.4 GHz AT+CWSW=1 # 开启 CW 模式 AT+START ``` ### 2. Sub-GHz TX (868MHz LoRa 发射) ``` AT+FREQ=868000000 AT+SF=7 AT+BW=125 AT+CR=1 AT+POWER=14 AT+PA_SEL=1 # LF PA AT+TRSW=0 # TX 模式 AT+CWSW=0 # 关闭 CW AT+START ``` ### 3. Sub-GHz RX (868MHz LoRa 接收) ``` AT+FREQ=868000000 AT+SF=7 AT+BW=125 AT+CR=1 AT+RXBOOST=1 AT+TRSW=1 # RX 模式 AT+CWSW=0 AT+START ``` ### 4. 2.4GHz TX (LoRa 发射) ``` AT+FREQ=2400000000 AT+SF=7 AT+BW=812 # 2.4GHz 建议 BW≥812kHz AT+CR=1 AT+POWER=10 AT+PA_SEL=2 # HF PA (2.4GHz) AT+TRSW=0 # TX 模式 AT+CWSW=0 AT+START ``` ### 5. 2.4GHz RX (LoRa 接收) ``` AT+FREQ=2400000000 AT+SF=7 AT+BW=812 AT+CR=1 AT+PA_SEL=2 # HF PA AT+RXBOOST=1 AT+TRSW=1 # RX 模式 AT+CWSW=0 AT+START ``` ## 默认配置 (上电) | 参数 | 默认值 | |------|--------| | FREQ | 868 MHz | | POWER | 22 dBm | | SF | 7 | | BW | 125 kHz | | CR | 1 (4/5) | | PA | LF (1) | | PA_LF_DC | 6 | | PA_LF_SLICES | 7 | | PA_HF_DC | 16 | | TRSW | RX (1) | | CWSW | ON | | NBFRAME | 20 | | RXBOOST | ON | | RXGAIN | AUTO (0) | | DIO5~DIO11 | HIGH (默认全高) |