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:同一通道的地址不同问题

Guru**** 2539500 points
Other Parts Discussed in Thread: CC1101, CC1100

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1021256/cc1101-same-channel-different-address-issue

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

您好!

我们已将 CC1101用于无线遥控器。 我们有两个接收器和两个发送器。 当在同一通道(0x03、0x03)但同时在不同地址(0x01、0x02)上传输数据时、我们在通信中遇到问题。 一旦我们同时从两个发送器传输数据、两个通道上的接收器就会停止工作。 因此、请帮助我如何解决这个问题。

下面是我们的配置。

基本 FEQ:315Mhz

调制:GFSK

数据速率:10kBaud

偏差:19Khz

频道间隔:405Khz

RX 过滤器带宽:58Khz

TX 功率:10dBm

地址检测打开。

此致、

苛刻

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

    如果同时从多个节点发送内容、则无法接收任何内容。  

    如果您画出空气中的这种情况、就会看到这种情况。 信号将相互重叠、您将无法识别任何信号。

    如果在给定时间有多个器件处于 TX 中的风险、则应使用"通话前监听"或类似模式。   

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

    您好!

    非常感谢您的快速回答。 但是、只有当地址与发送器匹配时、是否有可能对数据进行解码。  我们在 NRF905上运行相同的系统、没有问题。

    谢谢  

    苛刻

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

    这不是有关地址滤波的问题、如果两个信号彼此相邻、则产生的信号将失真、并且无法解调。 在 NF905上、 您是否使用了"载波检测"功能?  

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

    是的、在 NRF905中、我们使用 载波检测功能。

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

    在 CC1101上、您应该使用"清除通道评估"来获得相同的功能。  

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

    非常感谢、我将检查并发布更新。

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

    我已经检查了 CCA、但仍然存在问题。  

    地址、通道和 ISM 频带 I 通过另一个函数编程、因此在此配置中忽略。

    发送器配置。  

    0x09、// IOCFG2 GDO2输出引脚配置
    0x2E、// IOCFG1 GDO1输出引脚配置
    0x80、// IOCFG0 GDO0输出引脚配置
    0x07、// FIFOHR RX FIFO 和 TX FIFO 阈值
    0x57、// SYNC1同步字、高字节
    0x43、// SYNC0同步字、低字节
    0x3E、// PKTLEN 数据包长度
    0x0E、// PKTCTRL1数据包自动化控制
    0x45、// PKTCTRL0数据包自动化控制
    0xFF、// ADDR 设备地址
    0x00、// CHANNR 通道编号
    0x06、// FSCTRL1频率合成器控制
    0x00、// FSCTRL0频率合成器控制
    0x21、// FREQ2频率控制字、高字节
    0x65、// FREQ1频率控制字、中间字节
    0x6A、// FREQ0频率控制字、低字节
    0xf8、// MDMCFG4调制解调器配置0xCA 0xC8-100kHz
    0x93、// MDMCFG3调制解调器配置0x83 10KB-0x93
    0x13、// MDMCFG2调制解调器配置
    0xA3、// MDMCFG1调制解调器配置0xA0
    0xFF、// MDMCFG0调制解调器配置0xf8
    0x34、// DEVIATN 调制解调器偏差设置
    0x07、// MCSM2主无线电控制状态机配置
    0x1C、// MCSM1主无线电控制状态机配置
    0x18、// MCSM0主无线电控制状态机配置
    0x16、// FOCCFG 频率偏移补偿配置
    0x6C、// BSCFG 位同步配置
    0x43、// AGCCTRL2 AGC 控制
    0x40、// AGCCTRL1 AGC 控制
    0x91、// AGCCTRL0 AGC 控制
    0x02、// WOREVT1高字节 Event0超时
    0x26、// WOREVT0低字节 Event0超时
    0x09、//对讲机控制上的 WORCTRL 唤醒
    0x56、// FREND1前端 RX 配置
    0x17、// FREND0前端 TX 配置
    0xA9、// FSCAL3频率合成器校准
    0x0A、// FSCAL2频率合成器校准
    0x00、// FSCAL1频率合成器校准
    0x11、// FSCAL0频率合成器校准
    0x41、// RCCTRL1 RC 振荡器配置
    0x00、// RCCTRL0 RC 振荡器配置
    0x59、// FSTEST 频率合成器校准控制、
    0x7f、// ptest 生产测试
    0x3F、// AGCTEST AGC 测试
    0x81、// TEST2各种测试设置
    0x3F、// TEST1各种测试设置
    0x0B // TEST0各种测试设置

    接收器配置。

    0x09、// IOCFG2 GDO2输出引脚配置0x07
    0x2E、// IOCFG1 GDO1输出引脚配置
    0x80、// IOCFG0 GDO0输出引脚配置
    0x07、// FIFOHR RX FIFO 和 TX FIFO 阈值
    0x57、// SYNC1同步字、高字节
    0x43、// SYNC0同步字、低字节
    0x3E、// PKTLEN 数据包长度
    0x0E、// PKTCTRL1数据包自动化控制
    0x45、// PKTCTRL0数据包自动化控制
    0xFF、// ADDR 设备地址
    0x00、// CHANNR 通道编号
    0x06、// FSCTRL1频率合成器控制
    0x00、// FSCTRL0频率合成器控制
    0x21、// FREQ2频率控制字、高字节
    0x65、// FREQ1频率控制字、中间字节
    0x6A、// FREQ0频率控制字、低字节
    0xf8、// MDMCFG4调制解调器配置0xCA
    0x93、// MDMCFG3调制解调器配置0x83 10KB-0x93
    0x13、// MDMCFG2调制解调器配置
    0xA3、// MDMCFG1调制解调器配置0xA0
    0xFF、// MDMCFG0调制解调器配置0xf8
    0x34、// DEVIATN 调制解调器偏差设置
    0x07、// MCSM2主无线电控制状态机配置
    0x1C、// MCSM1主无线电控制状态机配置
    0x18、// MCSM0主无线电控制状态机配置
    0x16、// FOCCFG 频率偏移补偿配置
    0x6C、// BSCFG 位同步配置
    0x43、// AGCCTRL2 AGC 控制
    0x40、// AGCCTRL1 AGC 控制
    0x91、// AGCCTRL0 AGC 控制
    0x02、// WOREVT1高字节 Event0超时
    0x26、// WOREVT0低字节 Event0超时
    0x09、//对讲机控制上的 WORCTRL 唤醒
    0x56、// FREND1前端 RX 配置
    0x17、// FREND0前端 TX 配置
    0xA9、// FSCAL3频率合成器校准
    0x0A、// FSCAL2频率合成器校准
    0x00、// FSCAL1频率合成器校准
    0x11、// FSCAL0频率合成器校准
    0x41、// RCCTRL1 RC 振荡器配置
    0x00、// RCCTRL0 RC 振荡器配置
    0x59、// FSTEST 频率合成器校准控制、
    0x7f、// ptest 生产测试
    0x3F、// AGCTEST AGC 测试
    0x81、// TEST2各种测试设置
    0x3F、// TEST1各种测试设置
    0x0B // TEST0各种测试设置

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

    请确认您在循环 STX 时处于 RX 中:

    '当在 CC1101处于 RX 状态时发出 STX 或 SFSTXON 命令选通、只有满足清零通道要求时才会进入 TX 或 FSTXON 状态。 否则、芯片将保持在 RX 中。 如果通道变为可用、则在 SPI 接口上发送新的选通命令之前、无线电将不会进入 TX 或 FSTXON 状态"

    此外、您是否已验证阈值是否设置正确?  

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

    "当 strobing STX 时、请确认您是否处于 RX 中" 我在每次传输之前执行此操作、但在初始化 CC1101时执行此操作。

    我还将 CARER_SENSE_REL_THR 设置为 RSSI 值增加6dB。 仍然存在问题。

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

    您好、之三

    解决方案是什么?  

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

    我还注意到、在40到50cm 的短距离内、它的工作原理是这样的。 但在2到3米的远距离、它停止工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="465596" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1021256/cc1101-same-channel-different-address-issue/3774596 #3774596"]我在每次传输之前都执行此操作,但在初始化 CC1101[/引用]时执行此操作。

    不确定这里是什么意思。 如用户指南中所述、要使用此功能、您必须首先选择 SRx (如果不选择、则无法检查 RSSI)、然后选择 STX。

    如果您的距离接近1m (  请参阅 www.ti.com/.../swra147作为参考)、CC1101通常会进入饱和状态、因此您报告的内容听起来很奇怪。  

    我将仅从一个 TX 节点开始、并检查您是否获得预期的通信/范围。 然后添加干扰源、增大振幅以检查载波侦听阈值。  

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

    这里是传输前我有 STROBE SRX (CC1101_Receive ())的代码。

    [引用 userid="66607" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1021256/cc1101-same-channel-different-address-issue/3774772 #3774772">不确定此处的含义。 如《用户指南》中所述、要使用此功能、您必须首先选择 SRx (如果不选择、则无法检查 RSSI)、然后选择 STX。[/引述]

    uint8_t CC1101_transmit (void)

    uint8_t marcstate;

    CC1101_sidle ();//首先设置为空闲。
    CC1101_Receive ();
    while (GDO2_GetValue()==1);
    CC1101_SPI_WRITE_STROBE (STX);//通过无线方式发送数据

    marcstate = 0xFF;//设置未知/虚拟状态值

    while (marcstate!= 0x01)//0x01 = ILDE 发送数据后

    marcstate =(CC1101_SPI_READ_register (MARCSTATE)& 0x1F);//读取 CC1100的状态以确保空闲且 TX 完成



    CC1101_Receive ();
    _DELAY_us (100);
    返回 true;

    [引用 userid="66607" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1021256/cc1101-same-channel-different-address-issue/3774772 #3774772"]CC1101通常会在距离1米(  请参阅 www.ti.com/.../swra147作为参考)时进入饱和状态、因此您报告的内容听起来很奇怪。  [/报价]

    但它的工作没有问题。

    [引用 userid="66607" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1021256/cc1101-same-channel-different-address-issue/3774772 #3774772">我将仅从一个 TX 节点开始、并检查您是否获得了预期的通信/范围。 然后添加干扰源、增大振幅以检查载波侦听阈值。  [/报价]

    它与一个发送器和一个接收器完美配合、工作距离高达150m 至180m。 但是,一旦我从具有相同信道的另一个发送器传输数据,它将停止工作的地址就会不同:(。

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

    我想就此征求一位同事的意见。 她本周正在度假、但我想在下周开始时与她联系。   

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

    我认为阈值设置不正确。 看起来使用的是相对 CS 阈值、此处应使用绝对 CS 阈值。   

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

    是的、我使用了相对阈值。 必须对 CCA 使用绝对 CS 阈值?

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

    不确定相对阈值是否合理。 如果您选择 SRX、当您在无线网络中具有强信号时、只要您在器件处于 RX 状态时没有相对变化、CS 就永远不会被设置。

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

    我需要使用 绝对 CS 阈值对其进行检查吗?

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

    是的