This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1101:使用 CC1101+CC1190的连续收发器

Guru**** 2535150 points
Other Parts Discussed in Thread: CC1101, CC1190

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/749689/cc1101-continuous-transreceiver-using-cc1101-cc1190

器件型号:CC1101
主题中讨论的其他器件: CC1190

尊敬的 TI 团队:

我将 CC1101+CC1190 (用于扩展范围)用于节点之间的射频通信。 我的应用具有一个主器件和大约16个从器件。 从器件形成星形拓扑、主器件作为中心器件。
我已经为每个从器件分配了一个唯一的8位地址、并为主器件固定了唯一的地址。
为了使所有器件之间的通信同步、主器件向每个单独的从器件 ping 包含从属器件地址的约18字节数据。 一旦从器件接收到数据、它将与其地址进行比较
如果它找到了匹配的地址、那么只有它将返回主器件、否则它将保持在 RX 模式并等待地址匹配数据。

我在从器件返回的主器件侧提供了大约90ms 的窗口。 如果在该时间内没有从从器件听到任何内容、则会声明它有超时并继续 ping 下一个从器件。

我的应用程序在这种方法上运行良好、但我面临数据包丢失问题。 我发现大约60%的数据包被丢弃。

您能给我提供任何示例代码和寄存器设置来处理此应用中的数据包丢失问题吗? 为供参考 、我将粘贴在我正在使用的寄存器设置下。

静态常量结构 sCC1101 gCC1101设置={
   0x2E、 // IOCFG2             GDO2输出引脚配置
   0x2E、 // IOCFG1             GDO1输出引脚配置
   0x06、 // IOCFG0             GDO0输出引脚配置
   0x47、 // FIFOTHR            RX FIFO 和 TX FIFO 阈值
   0xD3、 // SYNC1              同步字、高字节
   0x91、 // SYNC0              同步字、低字节
   0x20、 // PKTLEN             数据包长度
   0x04、 // PKTCTRL1           数据包自动化控制
   0x05、 // PKTCTRL0           数据包自动化控制
   0x00、 // ADDR               设备地址
   0x00、 // CHANNR             通道编号
   0x06、 // FSCTRL1            频率合成器控制
   0x00、 // FSCTRL0            频率合成器控制
   0x21、 // FREQ2              频率控制字、高字节
   0x62、 // FREQ1              频率控制字、中间字节
   0x76、 // FREQ0              频率控制字、低字节
   0xCA、 // MDMCFG4            调制解调器配置
   0xf8、 // MDMCFG3            调制解调器配置
   0x47、 // MDMCFG2            调制解调器配置
   0x22、 // MDMCFG1            调制解调器配置
   0xf8、 // MDMCFG0            调制解调器配置
   0x40、 // DEVIATN            调制解调器偏差设置
   0x07、 // MCSM2              主无线电控制状态机配置
   0x3C、 // MCSM1              主无线电控制状态机配置
   0x18、 // MCSM0              主无线电控制状态机配置
   0x16、 // FOCCFG             频率偏移补偿配置
   0x6C、 // BSCFG              位同步配置
   0x43、 // AGCCTRL2           AGC 控制
   0x49、 // AGCCTRL1           AGC 控制
   0x91、 // AGCCTRL0           AGC 控制
   0x87、 // WOREVT1            高字节 Event0超时
   0x6B、 // WOREVT0            低字节 Event0超时
   0xFB、 //            对讲机控制上的 WORCTRL 唤醒
   0x56、 // FREND1             前端 RX 配置
   0x10、 // FREND0             前端 TX 配置
   0xE9、 // FSCAL3             频率合成器校准
   0x2A、 // FSCAL2             频率合成器校准
   0x00、 // FSCAL1             频率合成器校准
   0x1f、 // FSCAL0             频率合成器校准
   0x41、 // RCCTRL1            RC 振荡器配置
   0x00、 // RCCTRL0            RC 振荡器配置
   0x59、 // FSTEST             频率合成器校准控制
   0x7f、 // ptest              生产测试
   0x3F、 // AGCTEST            AGC 测试
   0x81、 // TEST2              各种测试设置
   0x35、 // TEST1              各种测试设置
   0x09、 // TEST0              各种测试设置
};


谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将详细了解您的设置、但首先:
    -无论主从设备之间通信的 RSSI 水平如何、您是否会得到数据包丢失?
    -您是否通过仅使用 PER to per communication (仅在 TX 和 Rx 上)测试了链路/设置的质量、以验证不良 PER 是否受设置而不受网络时序的限制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    非常感谢您的回复。 以下是我的意见。
    -无论主从设备之间通信的 RSSI 水平如何、您是否会得到数据包丢失?
    是的、我已经验证了信号质量、这对于通信来说很好。 我已将主器件和从器件保持在5米范围内。
    -您是否通过仅使用 PER to per communication (仅在 TX 和 Rx 上)测试了链路/设置的质量、以验证不良 PER 是否受设置而不受网络时序的限制。
    是的、目前我仅使用主器件和单从器件进行测试。 从主机发送到从机的任何数据包都能成功接收、不会丢失。 但从器件到主器件发送的数据包具有大约60%的数据包丢失率。 我尝试互换主从器件的 RF (CC1101 + CC1190)模块、以检查是否有任何模块存在传输或接收问题、但仍然发现相同的结果。 射频信号质量对于两个射频模块都很好。
    上述帖子中提到的 CC1101设置对于主器件和从器件是相同的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RSSI @5米是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我获得的 RSSI 约为-50dBm。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我在 SmartRF Studio 中键入了正确的设置、则表示您使用50ksps、25kHz 偏差和4-FSK。
    -要检查这是否与设置相关,请使用 Studio 中的38.4kbps 设置作为一个示例。
    -尝试增加 RX BW。 您是否测量了该调制的空值 OBW?
    考虑到使用4-FSK、可能会使用太低的偏差、从而为内部符号提供低调制指数。