总结:
我正在尝试使用 CC1101接收来自多家制造商的各种不同发送器传输的数据。 我无法控制正在传输的数据。 传输的数据不包含前导码、但包含2字节同步字。 使用下面的射频设置、我将定期接收有效/完整的数据包、但在大多数情况下、接收到的数据包是无效的。 出于测试目的、我使用器件传输上述数据(FFFEAABBCCDD7FD0)。
高级射频设置:
频率:345MHz
数据速率:7.518kbaud
ASK/OOK
曼彻斯特编码
靠近接待处
正在传输的数据:
0xFF 0xFE 0xAA 0xBB 0xCC 0xDD 0x7F 0xD0
SmartRF 设置(RX 不一致):
#define SmartRF_setting_IOCFG2 0x0B #define SmartRF_setting_IOCFG1 0x2E #define SmartRF_setting_IOCFG0 0x06 #define SmartRF_setting_FIFOTHR 0x67 //设计手册 DN022 #define SmartRF_setting_SYNC1 0xFF #define SmartRF_setting_SYNC0 0xFE #define SmartRF_setting_PKTLEN 0x06 #define SmartRF_setting_PKTCTRL1 0x00 #define SmartRF_setting_PKTCTRL0 0x00 #define SmartRF_setting_ADDR 0x00 #define SmartRF_setting_CHANNR 0x00 #define SmartRF_setting_FSCTRL1 0x06 #define SmartRF_setting_FSCTRL0 0x00 #define SmartRF_setting_FREQ2 0x0D #define SmartRF_setting_FREQ1 0x44 #define SmartRF_setting_FREQ0 0xEC #define SmartRF_setting_MDMCFG4 0x88 //似乎最接近#define SmartRF_setting_MDMCFG3 0x2E //时序似乎小于0x2F #define SmartRF_setting_MDMCFG2 0x3A #define SmartRF_setting_MDMCFG1 0x02 #define SmartRF_setting_MDMCFG0 0xf8 #define SmartRF_setting_DEVIATN 0x34 //在 OOK/ASK #define SmartRF_setting_MCSM2中对 TX 或 RX 没有影响 0x07 #define SmartRF_setting_MCSM1 0x30 #define SmartRF_setting_MCSM0 0x18 #define SmartRF_setting_FOCCFG 0x16 #define SmartRF_setting_BSCFG 0x6C #define SmartRF_setting_AGCCTRL2 0x07 //设计手册 DN022,应介于0x03和0x07 #define SmartRF_setting_AGCCTRL1之间 0x00 //设计手册 DN022,请勿更改 #define SmartRF_setting_AGCCTRL0 0x91 //设计说明 DN022,应介于0x91和0x92 #define SmartRF_setting_WOREVT1之间 0x87 #define SmartRF_setting_WOREVT0 0x6B #define SmartRF_setting_WORCTRL 0xFB #define SmartRF_setting_FREND1 0x56 //设计手册 DN022,请勿更改 #define SmartRF_setting_FREND0 0x11 //到 PA 的 TX LO 缓冲器输入、要使用的 PA 索引(对 OOK/ASK 使用1) #define SmartRF_setting_FSCAL3 0xE9 #define SmartRF_setting_FSCAL2 0x2A #define SmartRF_setting_FSCAL1 0x00 #define SmartRF_setting_FSCAL0 0x1f #define SmartRF_setting_RCCTRL1 0x41 #define SmartRF_setting_RCCTRL0 0x00 #define SmartRF_setting_FSTEST 0x59 //不要写入该寄存器 #define SmartRF_setting_ptest 0x7f #define SmartRF_setting_AGCTEST 0x3F //不要写入该寄存 器#define SmartRF_setting_TEST2 0x81 //设计手册 DN022 #define SmartRF_setting_TEST1 0x35 //设计手册 DN022 #define SmartRF_setting_TEST0 0x09
我创建了一个测试程序、用于打印数据包信息和 CC1101 RXFIFO 的内容
dataSize = 6
FBFFFFF9FFFF
dataSize = 6
接收到有效数据包:AABBCCDD7FD0
dataSize = 6
7B977AA10F7D
dataSize = 6
AA886645005F
dataSize = 6
FFF7FFFFC7FF
dataSize = 6
AA886645005F
我尝试禁用曼彻斯特解码、将 SmartRF_setting_MDMCFG3更改为0x2D、将数据包长度加倍、并将同步字更改为0x55 0x56 (0xFE 曼彻斯特编码)。 通过这些更改、我成功且始终如一地接收到预期(曼彻斯特)编码数据:6665655A5A59599559AA。 启用曼彻斯特解码时、是否有人可以告诉我上述设置可能有什么问题? 发送器件是否仅发送 FFFE 同步字? 是否有一个可独立打开/关闭前导码和同步字的类似收发器?
提前感谢您。