EO7-M1010D发射信号时CMT2220LS接收器无法接收的问题求助
无线遥控系统信号捕获故障排查
我搭建了一套无线遥控系统:
- 发射器:Raspberry Pi 5,通过SPI连接EO7-M1010D收发模块,使用
cc1101-python库发送二进制信号 - 接收器:Raspberry Pi PICO,搭载CMT2220LS接收器(工作在433MHz频段)
目前接收器完全无法捕获信号,尝试增加信号发送数量也未解决问题,以下是两端代码,恳请帮忙排查原因。
Raspberry Pi 5 发射器代码
import time import cc1101 with cc1101.CC1101() as transceiver: transceiver.set_base_frequency_hertz(433.92e6) print(transceiver) binary_message = b'\x01' * 10 while True: try: transceiver.transmit(binary_message) time.sleep(1) except KeyboardInterrupt: pass
Raspberry Pi PICO 接收器代码
from machine import Pin import utime class SignalReceiver: def __init__(self, pin_number): self.sig_pin = Pin(pin_number, Pin.IN) self.sig_pin.irq(trigger=Pin.IRQ_RISING | Pin.IRQ_FALLING, handler=self.signal_callback) self.last_value = -1 def signal_callback(self, pin): current_value = pin.value() if current_value != self.last_value: print(f"Current signal value: {current_value}") self.last_value = current_value def main(): receiver = SignalReceiver(28) while True: utime.sleep(1) if __name__ == "__main__": try: main() except KeyboardInterrupt: pass
可能的故障排查方向
- 射频参数不匹配:
- EO7-M1010D基于CC1101,要确认RPI5端
cc1101库是否配置了调制方式、波特率、频偏、信道带宽等关键参数,CMT2220LS必须和发射器参数完全一致才能解调。当前代码仅设置了频率,缺少这些核心配置。 - 检查CMT2220LS的硬件配置(外接阻容、引脚连接)是否符合数据手册要求,确保工作模式(如OOK/FSK)与发射器匹配(CC1101默认可能为FSK,若CMT2220LS设为OOK则无法接收)。
- EO7-M1010D基于CC1101,要确认RPI5端
- 硬件连接问题:
- 确认RPI5与EO7-M1010D的SPI连接:SCK、MOSI、MISO、CS、GND、电源引脚是否对应,电源电压是否符合模块要求(一般为3.3V)。
- 确认PICO与CMT2220LS的连接:数据输出引脚是否正确接到GPIO28,电源、GND是否接稳,天线是否适配433MHz(如1/4波长导线)。
- 接收器代码逻辑问题:
- CMT2220LS输出的是解调后的串行数据,不是原始射频电平。当前代码仅检测GPIO电平变化,无法正确解析模块输出的有效数据。需确认CMT2220LS的输出模式(如UART输出或SPI读取),调整代码对应解析。
- 可先用示波器/逻辑分析仪查看CMT2220LS输出引脚是否有信号变化,排除硬件接收故障。
- 发射器代码验证:
- 确认
cc1101库是否正确初始化模块,建议增加初始化后的参数打印(如调制方式、波特率),验证配置是否生效。 - 尝试发送交替的0/1测试信号(如
b'\x01\x00\x01\x00'*5),便于接收器识别信号。
- 确认
内容的提问来源于stack exchange,提问作者homostultus39
相关产品推荐
相关产品推荐

