大家好、
我对 CC1101非常陌生、有大约2周的经验。 我最初购买它是为了完成一个特定的项目、在这两周内、我已经取得了很大进展。
我的项目是获得 Arduino (实际上是 Tensy)来与某些 TPMS 外部阀传感器进行通信。 它们不会用作 TPMS 传感器、但传感器本身完全符合我的目的。 我将传感器作为套件(带有接收器)使用 SDR 软件狗来解码数据。 下一步是从传感器读取数据,这正是 CC1101的用武之地。
传感器发送433.920Mhz FSK 曼彻斯特编码数据、该数据本质上是一个7字节前导码(10 10 10 10 10等)、一个同步字和9字节数据。 这是在曼彻斯特解码之后。 遗憾的是,由于传感器不发送曼彻斯特编码的前导码,CC1101无法处理,因此我不得不读取未编码的数据并在软件中解码曼彻斯特解码。
上述操作已成功完成、我可以在 tensy 上读取数据包。
然后、我遇到了一个问题。 这在第一个传感器上都可以正常工作、但在 CC1101上我根本无法读取其他3个传感器。 我在 SmartRF 中播放设置几个小时、但无法从其他3个传感器获得任何信息、即使我可以在连续 RX (手持式)上看到它们 并在频谱分析仪上看到它们、从 SDR 读取它们、它们都发送相同的数据格式、它们附带的接收器可以将它们全部取回。
再玩几下后、我终于找到了原因。 第一个传感器以19.2k 的数据速率发送数据、但从其他3个传感器中、2个传感器以18.1k 的数据速率发送数据、第四个传感器以18.4k 的数据速率发送数据。 这些是便宜的传感器、因此我猜射频发送器或晶体的容差不是那么精确。 但是、即使数据速率略有不同、附带它的接收器也可以拾取全部4个向上的值。
无论如何、我可以让 CC1101解调信号并将原始的1和0发送给我、我必须在软件中将其组合在一起。 我想我的意思是忽略数据速率和数据包处理、只提供二进制数据。 如果是、我如何将其连接到 Arduino 或 Tensy 等设备、并在 CC1101上进行设置? 或者、是否有方法可以通过 CC1101来实现这一点?
提前非常感谢您为我提供的任何帮助或建议。