# 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` - 未知命令