主题中讨论的其他器件: 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 各种测试设置
};
谢谢!