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:CCA 和 CS 在 CC1101中不工作

Guru**** 2538930 points
Other Parts Discussed in Thread: CC1101

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101

器件型号:CC1101

您好!

CCA 不工作!!!

CC1101中存在 CCA 问题。 我们有两个发送器和两个接收器位于相同频率(相同信道)但不同的地址上。 这两个器件各自工作正常、但同时传输的数据都不能正常工作、并且出现故障。 我们已根据以下内容设置 CCA 和 CS。  我在 TX 之前完成了 STX。

TX

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主无线电控制状态机配置
0x2F、//0x2C、// MCSM1主无线电控制状态机配置
0x18、// MCSM0主无线电控制状态机配置
0x16、// FOCCFG 频率偏移补偿配置
0x6C、// BSCFG 位同步配置
0x43、// AGCCTRL2 AGC 控制
0x50、// 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各种测试设置

RX

0x0E、//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
0x17、//0x13、// MDMCFG2调制解调器配置
0xA3、// MDMCFG1调制解调器配置0xA0
0xFF、// MDMCFG0调制解调器配置0xf8
0x34、// DEVIATN 调制解调器偏差设置
0x07、// MCSM2主无线电控制状态机配置
0x2C、// MCSM1主无线电控制状态机配置
0x18、// MCSM0主无线电控制状态机配置
0x16、// FOCCFG 频率偏移补偿配置
0x6C、// BSCFG 位同步配置
0x43、// AGCCTRL2 AGC 控制
0x50、// 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各种测试设置

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

    您好、耐受、

    我已将此主题分配给了一位专家。 他们会给您一些反馈。  

    此致、
    Siddanth

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

    请提供有关您使用 SmartRF Studio 的设置的信息、以便我无需浏览每个寄存器和字段即可确定您的配置。

    另外,“不工作”是什么意思? 它是如何失败的?

    我看到您使用的是 CCA_MODE = 2 (除非当前接收到数据包)。 这意味着即使另一个器件已开始发送前导码示例、您的器件也将进入 TX。 如果出现这种情况、将同时发送多个器件、并且不会接收任何数据包。

    您还应避免使用关闭模式(至少在测试时)。 通过这种方式、可以更轻松地确定器件处于什么状态以及正在发生什么情况。

    我假设您是指在 TX 之前选择 SRX、而不是 STX? 如果不是、那么 CCA 不工作也不是一个问题、因为器件必须处于 RX 模式才能判断通道是否可用。

    此外、为什么在 RX 和 TX 中使用不同的设置?

    您可以执行的一项简单测试是使用 SmartRF Studio 中的默认设置之一、然后仅启用 CCA (设置 CCA 模式= 1或3)。 将数据包写入 TX FIFO、Strobe SRX、然后写入 STX。

    使用另一台设备作为干扰设备。 然后、您可以看到、如果存在干扰、在 SRX 之后频带 STX 将导致器件保持在 RX 中、而如果通道已清除、它将转至 TX、然后处于空闲状态。

    如果您使用 CCA 模式= 2并执行相同的操作、并且有一个干扰源只是发送调制数据、即使干扰源真的很强、数据包也将被发送、因为对讲机未找到任何同步字。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3873929 #3873929"]请提供有关您使用 SmartRF Studio 的设置的信息,这样我就不需要通过每个寄存器和字段来确定您的配置。

    这是 SmartRF Studio 的设置。

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3873929 #3873929"]

    另外,“不工作”是什么意思? 它是如何失败的?

    [/报价]

    我们在同一位置有两个接收器和两个发送器。 两者都是单独工作的,但同时不工作。 两个接收器位于同一通道、但地址不同。 我们希望同时工作,但不工作。

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3873929 #3873929">我看到您使用的是 CCA_MODE = 2 (除非当前接收到数据包)。 这意味着即使另一个器件已开始发送前导码示例、您的器件也将进入 TX。 如果是这种情况、将同时发送多个器件、并且不会接收到任何数据包。

    是的、我使用 CCA_MODE = 2。 我应该使用哪种模式? 我 还在 CCA_MODE = 1和 CCA_MODE = 3时进行检查、但无法正常工作。

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3873929 #3873929">您还应避免使用关闭模式(至少在测试时)。 通过这种方式、可以更轻松地确定器件处于什么状态以及正在发生什么情况。

    现在、我将使用 idel 模式进行检查。

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3873929 #3873929">我假设您在 TX 之前选择 SRX、而不是 STX? 如果不是、则难怪 CCA 无法正常工作、因为器件必须处于 RX 状态才能判断通道是否可用。[/QUERP]

    我已经纠正了这一点,但它仍然不起作用。

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3873929 #3873929"]

    此外、为什么在 RX 和 TX 中使用不同的设置?

    [/报价]

    对于 RX I 使用载波检测、对于 TX I 使用 CCA。

    您是否有任何流程图、以便我们可以按照该流程图进行 CCA 工作。

     此致

    苛刻

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

    我知道您的应用程序不是按您希望的方式工作、但这并不意味着 CCA 不工作。

    您需要做的第一件事是分别测试 CCA 功能、以确保其正常工作。

    然后、您应根据射频参数使用 SmartRF Studio 中的建议设置、而无需执行大量数据包处理更改和其他更改(您正在修改 WOR 寄存器、地址过滤、关闭模式等) 我还注意到、您正在对寄存器进行更改、这些寄存器表示您需要使用 SmartRF Studio (例如 MDMCFG1)中的设置。 您不应这样做。

    通过 SmartRF Studio、您可以为所选的射频参数获得以下设置:

    // Address Config = No address check 
    // Base Frequency = 314.999664 
    // CRC Autoflush = false 
    // CRC Enable = true 
    // Carrier Frequency = 314.999664 
    // Channel Number = 0 
    // Channel Spacing = 338.012695 
    // Data Format = Normal mode 
    // Data Rate = 9.9926 
    // Deviation = 19.042969 
    // Device Address = 0 
    // Manchester Enable = false 
    // Modulated = true 
    // Modulation Format = GFSK 
    // PA Ramping = true 
    // Packet Length = 255 
    // Packet Length Mode = Variable packet length mode. Packet length configured by the first byte after sync word 
    // Preamble Count = 4 
    // RX Filter BW = 58.035714 
    // Sync Word Qualifier Mode = 30/32 sync word bits detected 
    // TX Power = 0 
    // Whitening = true 
    // PA table 
    #define PA_TABLE {0x00,0x12,0x0d,0x33,0x69,0x63,0x52,0x51}
    
    static const registerSetting_t preferredSettings[]= 
    {
        {CC1101_IOCFG0, 0x06},
        {CC1101_FIFOTHR, 0x47},
        {CC1101_FSCTRL1, 0x06},
        {CC1101_FREQ2, 0x0C},
        {CC1101_FREQ1, 0x1D},
        {CC1101_FREQ0, 0x89},
        {CC1101_MDMCFG4, 0xF8},
        {CC1101_MDMCFG3, 0x93},
        {CC1101_MDMCFG2, 0x13},
        {CC1101_MDMCFG1, 0x23},
        {CC1101_MDMCFG0, 0xAA},
        {CC1101_DEVIATN, 0x34},
        {CC1101_MCSM0, 0x18},
        {CC1101_FOCCFG, 0x16},
        {CC1101_AGCCTRL2, 0x43},
        {CC1101_WORCTRL, 0xFB},
        {CC1101_FREND0, 0x17},
        {CC1101_FSCAL3, 0xE9},
        {CC1101_FSCAL2, 0x2A},
        {CC1101_FSCAL1, 0x00},
        {CC1101_FSCAL0, 0x1F},
        {CC1101_TEST2, 0x81},
        {CC1101_TEST1, 0x35},
    };
    

    要测试 CCA、您不必对这些设置执行任何操作。

    • 制作一个小型测试程序、您可以在其中执行以下操作:
    • 初始化 MCU
    • 使用上述设置初始化对讲机
    • 向 TX FIFO 写入数据包
    • 选通 SRX 进入 RX 模式(您可以在此处轮询状态以确保对讲机在选通 STX 之前有时间进入 RX)
    • 选通信号 STX 发送数据包

    如果信道可用、则将发送数据包、对讲机将进入空闲状态

    如果信道处于繁忙状态、对讲机将保持在 RX 中。

    以上测试是开始测试所需的条件、可验证是否正确设置了 CS 阈值。

    一旦您验证了这种方法是否有效(甚至可以使用 SmartRF Studio 进行测试、正如我在第一篇文章中所述)、您需要开始调试您的应用程序以了解其不起作用的原因。

    为了进行调试、将 LNA 和 PA 信号输出到一些 GDO 引脚以确定器件何时处于 RX 和 TX 模式、从而更好地了解出了什么问题、这一点很有用。

    Siri

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

    非常感谢您的更新。

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3875291 #3875291"]

    要测试 CCA、您不必对这些设置执行任何操作。

    • 制作一个小型测试程序、您可以在其中执行以下操作:
    • 初始化 MCU
    • 使用上述设置初始化对讲机
    • 向 TX FIFO 写入数据包
    • 选通 SRX 进入 RX 模式(您可以在此处轮询状态以确保对讲机在选通 STX 之前有时间进入 RX)
    • 选通信号 STX 发送数据包

    如果信道可用、则将发送数据包、对讲机将进入空闲状态

    如果信道处于繁忙状态、对讲机将保持在 RX 中。

    以上测试是开始测试所需的条件、可验证是否正确设置了 CS 阈值。

    一旦您验证了这种方法是否有效(甚至可以使用 SmartRF Studio 进行测试、正如我在第一篇文章中所述)、您需要开始调试您的应用程序以了解其不起作用的原因。

    [/报价]

    我将使用  上述设置检查 Smart RF Studio (我将 CC 调试器连接到 CC1101)。 之后、我将 发布更新。

     

    [引用 userid="2957" URL"~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1046914/cc1101-cca-and-cs-not-working-in-cc1101/3875291 #3875291"]若要对此进行调试,请将 LNA 和 PA 信号输出到一些 GDO 引脚以确定器件处于 RX 和 TX 模式时的情况,以便更好地了解出了什么问题。

    为此、我使用 GDO_CFG = 0x09 (清除通道评估)或0x0E (载波侦听)

    苛刻