3.5 KiB
3.5 KiB
ZhaTianRX
说明
本项目是ZhaTianRC下的接收机子项目,使用STC8H1K08系列单片机作为主控,NRF24L01作为射频IC,具有4路PWM输出(默认50Hz,驱动舵机),一路串口,一路SBUS(与串口共用TX),一路CRSF/Crossfire输出。
操作说明
- 使用内置eeprom保存数据,如果eeprom内没有数据则自动进入对频模式。
- LED状态:1Hz慢闪未连接/断开连接,3Hz快闪对频模式,常亮连接正常,双闪nrf24l01连接异常
- 默认工作模式:PWM输出
- 默认回传频率:2Hz
回传功能
接收机支持通过NRF24L01向发射机回传遥测数据:
| 回传数据 | 说明 |
|---|---|
| 电池电压 | 通过 BAT_ADC(P3.3) 采样,12位ADC原始值 |
| RSSI | 信号强度估计 (0-100),基于NRF RPD载波检测 |
| 丢包率 | 滑动窗口估算 (0-100%) |
回传频率可通过串口命令 TELEM(N) 设置为 1~10Hz。
不同输出模式下的回传行为
| 输出模式 | 回传通道 | 说明 |
|---|---|---|
| PWM (默认) | NRF24L01 | 通过NRF回传电压、RSSI、丢包率 |
| SBUS | NRF24L01 | 同上 |
| CRFS | CRSF UART + NRF | 通过CRSF遥测帧回传电压/RSSI/丢包,同时将飞控发来的CRSF帧通过NRF转发给发射机 |
引脚分配
功能引脚
| 功能 | 引脚 | 说明 |
|---|---|---|
| CH1 | P3.7 | 舵机 PWM 输出 1 (50Hz) |
| CH2 | P3.6 | 舵机 PWM 输出 2 |
| CH3 | P3.5 | 舵机 PWM 输出 3 |
| CH4 | P3.4 | 舵机 PWM 输出 4 |
| BAT_ADC | P3.3/ADC11 | 电池电压分压输入 |
| LED | P3.2 | 状态指示灯 |
| TX | P3.1 | UART1 TX / SBUS 输出 (经板上三极管反相) |
| RX | P3.0 | UART1 RX / 命令输入 |
NRF24L01连接引脚
NRF24L01基于STC8系列的一路硬件SPI进行开发。由于IRQ连接到了不具备中断的引脚上,可以通过主函数轮询的方法检测引脚状态 | SCK | P1.5 | | CE | P1.6 | | IRQ | P1.7 | | CSN | P5.4 | | MISO | P1.3 | | MOSI | P1.4 |
串口命令
通过 P3.0 (RX) 输入,115200 8N1,回车或换行结束命令。串口模式时也持续监听是否从串口接收到以下命令,未监听到不影响串口和飞控通信:
| 命令 | 作用 |
|---|---|
MODEL(SBUS) |
切换到 SBUS 反向 UART 输出 (100kbps 8N2) |
MODEL(PWM) |
切换到 4 路舵机 PWM 输出 (50Hz) |
MODEL(UART) |
切换到 UART 输出 (115200 8N1) |
MODEL(CRFS) |
切换到 CRSF/Crossfire 输出 (420kbps 8N1) |
ADDR(0xHH HH HH HH HH) |
切换 NRF24L01 地址 (5 字节十六进制) |
PHRASE(xxxxxx) |
设置对频短语,1~6位,支持大小写字母和数字 |
TUN(N) |
切换 RF 频道 (0..125 十进制) |
DEL(BIND) |
清除EEPROM内的对频信息 |
TELEM(N) |
设置回传频率 (1~10Hz, 默认2Hz) |
每次命令有效都会应答:
OK\r\n- 成功ERR\r\n- 命令格式错ERR_ADDR\r\n- 地址参数错ERR_RANGE\r\n- 范围错UNK\r\n- 未知命令