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.

[参考译文] CC1200:配置了 RF 嗅探模式的 C1200不会接收任何数据

Guru**** 2524550 points
Other Parts Discussed in Thread: CC1200

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1070525/cc1200-c1200-when-configured-with-rf-sniff-mode-does-not-receive-any-data

部件号:CC1200
“线程: 测试”中讨论的其它部件

您好,

我正在使用以下配置在嗅探模式下配置 cc1200 (在 PQT 上使用 RX 端接的 eWOR):

 {CC1200_IOCFG3,           0x06},
 {CC1200_IOCFG2,           0x3B},
 {CC1200_IOCFG0,           0x38},
 {CC1200_SYNC3,            0xF0},
 {CC1200_SYNC2,            0xCC},
 {CC1200_SYNC1,            0xF0},
 {CC1200_SYNC0,            0xCC},
 {CC1200_SYNC_CFG1,        0xA8},
 {CC1200_SYNC_CFG0,        0x13},
 {CC1200_Deviation _M,      0x68},
 {CC1200_MODCFG_DEP_E,     0x04},
 {CC1200_DCFILT_CFG,       0x26},
 {CC1200_Preambions_CFG0,    0x8A},
 {CC1200_Preambions_CFG1,    0x28},
 {CC1200_IQIC,             0x00},
 {CC1200_CHAN_BW,          0x82},
 {CC1200_MDMCFG1,          0x42},
 {CC1200_MDMCFG0,          0x05},
 {CC1200_SYMBOL_Rate2,     0x7F},
 {CC1200_symbol_rat1,     0x75},
 {CC1200_SYMBOL_RATE0,     0x10},
 {CC1200_AGC_REF,          0x2A},
 {CC1200_AGC_CS_thr,       0x01},
 {CC1200_AGC_CFG1,         0x16},
 {CC1200_AGC_CFG0,         0x84},
 {CC1200_FIFO _CFG,         0x78},
 {CC1200_FS_CFG,           0x12},
 {CC1200_PKT_CFG2,         0x00},
 {CC1200_PKT_CFG1,         0x00},
 {CC1200_PKT_CFG0,         0x20},
 {CC1200_PA_CFG0,          0x55},
 {CC1200_PKT_LEN,          0xFF},
 {CC1200_if_mix _CFG,       0x18},
 {CC1200_TOC_CFG,          0x03},
 {CC1200_MDMCFG2,          0x00},
 {CC1200_FREQ2,            0x5B},
 {CC1200_FREQ1,            0x99},
 {CC1200_FREQ0,            0x99},
 {CC1200_IF_ADC1,          0xEE},
 {CC1200_IF_ADC0,          0x10},
 {CC1200_FS_DIG1,          0x07},
 {CC1200_FS_DIG0,          0xAB},
 {CC1200_FS_CAL1,          0x40},
 {CC1200_FS_CAL0,          0x0E},
 {CC1200_FS_DIVTWO,        0x03},
 {CC1200_FS_DSM0,          0x33},
 {CC1200_FS_DVC0,          0x17},
 {CC1200_FS_PFD,           0x00},
 {CC1200_FS_PRE,           0x6E},
 {CC1200_FS_REG_DIC_CML,   0x1C},
 {CC1200_FS_Spare,         0xAC},
 {CC1200_FS_VCO0,          0xB5},
 {CC1200_IFAMP,            0x0D},
 {CC1200_XOSC5,            0x0E},
 {CC1200_XOSC1,            0x03},
 {CC1200_PARTNEMBER,       0x20},
 {CC1200_serial_status,    0x08},
 {CC1200_WOR_CFG0,         0x20},
 {CC1200_WOR_CFG1,         0x08},
 {CC1200_WOR_EVENT0_MSB,   0x00},
 {CC1200_WOR_EVENT0_LSB,   0x67},
 {CC1200_RFEND_CFG0,       0x04},
 {CC1200_RFEND_CFG1,       0x0F},
 {CC1200_FS_VCO4,          0x13},
 {CC1200_FS_VCO2,          0x64},
 {CC1200_FS_VCO1,          0xAC}

在我们的自定义主板中使用此配置时,我无法接收任何数据包。

因此,同样的配置,我在智能射频工作室中尝试过,因此我能够接收从另一台智能射频设备传输的所有数据包。

如果我需要更改任何配置,或者有任何方法我可以检查无线电状态并确认它在超时后从嗅探模式变为 RX,请指导我。

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

    因为这是一款定制电路板:在测试嗅探模式之前,您是否已验证过电路板的传导式 RX 和 TX 性能?

    这是否意味着您可以使用 SmartRF Studio 控制定制板并使其发挥作用?

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

    您好,

    要回答您的问题,请执行以下操作:

    1.在实施嗅探模式之前,我已在我们的自定义板上成功执行了 RX 和 TX,但没有嗅探模式。

    2.不,我的意思是,当我使用智能射频工作室在评估板上使用相同的配置时,我可以在嗅探模式下接收数据包,而使用相同的配置, 在 MCUXpresso IDE 上以调试模式运行时,自定义板不工作(此处不使用智能射频在自定义板上进行射频通信)。

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

    您没有在显示的寄存器转储中设置任何嗅探模式寄存器,也没有使用 SmartRF Studio 中的任何标准数据速率等。

    这不是从 SmartRF Studio 导出的嗅探模式设置。

    发布的设置来自何处? 它们是如何产生的?

    西里

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

    注册设置由我们根据客户对我们定制板的要求生成。

    根据我的理解 ,以下是嗅探模式寄存器-  

     {CC1200_WOR_CFG0,                   0x20},
     {CC1200_WOR_CFG1,                   0x08},
     {CC1200_WOR_EVENT0_MSB,   0x00},
     {CC1200_WOR_EVENT0_LSB,    0x67},
     {CC1200_RFEND_CFG0,               0x04},
     {CC1200_RFEND_CFG1,            0x0F},

    同样的寄存器转储(在一开始就提到),我们正在导入 SmartRF 工作室以在评估板上运行,它在评估板上工作正常

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

    请提供导致这些设置的 RF 参数等,数据包格式等。 我无法手动浏览每个注册表以尝试了解您尝试配置的内容。

    您的数据速率,射频,偏差,RX 过滤器 BW,前导码长度, CS 阈值,同步字词,数据包格式等

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

    当然。 详情如下:

    数据速率- 19.2Kbps

    频率开发- 55kHz

    过滤器体重- 208.33kHz

    前导码长度- 8字节0xAA

    同步字- 0xF0 0xCC 0xF0 0xCC (32位)

    数据包格式-可变数据包长度

    CRC 检查被禁用,地址检查被禁用,数据包长度检查被禁用。

    由于我们使用的是 RF 嗅探模式,在 PQT 上使用带有 RX 端接的 eWOR,我猜 CS 阈值不是一个重要参数。

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

    对于上述射频参数,SmartRF Studio 为我提供了以下嗅探模式设置:

    // Address Config = No address check 
    // Bit Rate = 19.2 
    // Carrier Frequency = 867.999878 
    // Deviation = 54.931641 
    // Device Address = 0 
    // Manchester Enable = false 
    // Modulation Format = 2-GFSK 
    // Packet Bit Length = 0 
    // Packet Length = 255 
    // Packet Length Mode = Variable 
    // RX Filter BW = 208.333333 
    // Symbol rate = 19.2 
    // Whitening = false 
    
    static const registerSetting_t preferredSettings[]= 
    {
      {CC120X_IOCFG2,            0x13},
      {CC120X_IOCFG0,            0x06},
      {CC120X_SYNC3,             0xF0},
      {CC120X_SYNC2,             0xCC},
      {CC120X_SYNC1,             0xF0},
      {CC120X_SYNC0,             0xCC},
      {CC120X_SYNC_CFG1,         0xA9},
      {CC120X_DEVIATION_M,       0x68},
      {CC120X_MODCFG_DEV_E,      0x0C},
      {CC120X_PREAMBLE_CFG0,     0x8A},
      {CC120X_IQIC,              0x48},
      {CC120X_CHAN_BW,           0x82},
      {CC120X_MDMCFG1,           0x42},
      {CC120X_MDMCFG0,           0x05},
      {CC120X_SYMBOL_RATE2,      0x7F},
      {CC120X_SYMBOL_RATE1,      0x75},
      {CC120X_SYMBOL_RATE0,      0x10},
      {CC120X_AGC_REF,           0x2A},
      {CC120X_AGC_CS_THR,        0xF7},
      {CC120X_AGC_CFG1,          0x00},
      {CC120X_AGC_CFG0,          0x90},
      {CC120X_FIFO_CFG,          0x00},
      {CC120X_SETTLING_CFG,      0x03},
      {CC120X_FS_CFG,            0x12},
      {CC120X_WOR_CFG0,          0x20},
      {CC120X_WOR_EVENT0_LSB,    0x6D},
      {CC120X_PKT_CFG2,          0x00},
      {CC120X_PKT_CFG0,          0x20},
      {CC120X_RFEND_CFG0,        0x0C},
      {CC120X_PA_CFG0,           0x55},
      {CC120X_PKT_LEN,           0xFF},
      {CC120X_IF_MIX_CFG,        0x1C},
      {CC120X_TOC_CFG,           0x03},
      {CC120X_MDMCFG2,           0x02},
      {CC120X_FREQ2,             0x56},
      {CC120X_FREQ1,             0xCC},
      {CC120X_FREQ0,             0xCC},
      {CC120X_IF_ADC1,           0xEE},
      {CC120X_IF_ADC0,           0x10},
      {CC120X_FS_DIG1,           0x07},
      {CC120X_FS_DIG0,           0xAF},
      {CC120X_FS_CAL1,           0x40},
      {CC120X_FS_CAL0,           0x0E},
      {CC120X_FS_DIVTWO,         0x03},
      {CC120X_FS_DSM0,           0x33},
      {CC120X_FS_DVC0,           0x17},
      {CC120X_FS_PFD,            0x00},
      {CC120X_FS_PRE,            0x6E},
      {CC120X_FS_REG_DIV_CML,    0x1C},
      {CC120X_FS_SPARE,          0xAC},
      {CC120X_FS_VCO0,           0xB5},
      {CC120X_IFAMP,             0x09},
      {CC120X_XOSC5,             0x0E},
      {CC120X_XOSC1,             0x03},
      {CC120X_PARTNUMBER,        0x20},
      {CC120X_PARTVERSION,       0x11},
      {CC120X_MODEM_STATUS1,     0x10},
    };

    IOCFG 寄存器根据我的嗅探器应用程序的实现方式进行修改。

    将我的设置与您发送的设置进行比较后,我看到了一些不同之处,我不知道为什么会进行这些更改,以及这些更改对 RF 性能的影响。

    使用 swrc274中的“导出的 Studio”设置进入嗅探模式示例,我能够接收使用相同设置从 SmartRF Studio 发送的所有数据包。

    西里

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

    在上述比较寄存器设置中,这些值是根据客户端要求设置的,因为存在一些向后兼容性问题,但 Preambions_CFG1寄存器除外。Preambions_CFG1的值应为0x28,因为需要8字节的0xAA。此外, RFEND_CFG0要求为0x04,因为我们不希望天线多样性功能,PKT_CFG1要求为0x00,因为我们不希望附加任何 CRC 检查或状态字节

    主要问题如下:

    我最初所附的寄存器转储,当我们以评估板导入并以智能射频接收时,我们能够接收。 我不知道为什么注册设置不适用于我们的自定义主板。能否帮助我理解这一点? 或者你能告诉我 RX FIFO 是如何在评估板中读取的,然后我可以尝试以相同的方式读取 FIFO。

    目前正在 GPIO3的下缘读取 RX FIFO,该软件配置为 PKT_SYNC_RxTx (即数据包末尾)。 但我所观察到的是,在嗅探模式下操作时,这种中断本身甚至不会出现一次。

    此外,我们如何确认 RF 处于嗅探模式

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

    我在这里的嗅探模式示例中测试了您的设置:

    https://www.ti.com/lit/zip/swrc274

    我只修改了 GPIO 信号以适应代码中的实现,禁用了自动,因为这是在执行嗅探模式时建议的,还使用了 CRC,因为我没有任何代码来手动检查数据包是否正常。

    设置如下:

    static const registerSetting_t preferredSettings[]= 
    {
      {CC120X_IOCFG2,            0x13},// Application spesific
      {CC120X_IOCFG0,            0x06},// Application spesific
      {CC120X_SYNC3,             0xF0},
      {CC120X_SYNC2,             0xCC},
      {CC120X_SYNC1,             0xF0},
      {CC120X_SYNC0,             0xCC},
      {CC120X_SYNC_CFG1,         0xA8},
      {CC120X_SYNC_CFG0,         0x13},
      {CC120X_DEVIATION_M,       0x68},
      {CC120X_MODCFG_DEV_E,      0x04},
      {CC120X_DCFILT_CFG,        0x26},
      {CC120X_PREAMBLE_CFG0,     0x8A},
      {CC120X_IQIC,              0x00},
      {CC120X_CHAN_BW,           0x82},
      {CC120X_MDMCFG1,           0x42},
      {CC120X_MDMCFG0,           0x05},
      {CC120X_SYMBOL_RATE2,      0x7F},
      {CC120X_SYMBOL_RATE1,      0x75},
      {CC120X_SYMBOL_RATE0,      0x10},
      {CC120X_AGC_REF,           0x2A},
      {CC120X_AGC_CS_THR,        0x01},
      {CC120X_AGC_CFG1,          0x16},
      {CC120X_AGC_CFG0,          0x84},
      {CC120X_SETTLING_CFG,      0x03},// Application spesific
      {CC120X_FIFO_CFG,          0x78},
      {CC120X_FS_CFG,            0x12},
      {CC120X_WOR_CFG0,          0x20},
      {CC120X_WOR_EVENT0_LSB,    0x67},
      {CC120X_PKT_CFG2,          0x00},
      {CC120X_PKT_CFG1,          0x03},// Application spesific
      {CC120X_PKT_CFG0,          0x20},
      {CC120X_RFEND_CFG0,        0x04},
      {CC120X_PA_CFG0,           0x55},
      {CC120X_PKT_LEN,           0xFF},
      {CC120X_IF_MIX_CFG,        0x18},
      {CC120X_TOC_CFG,           0x03},
      {CC120X_MDMCFG2,           0x00},
      {CC120X_FREQ2,             0x5B},
      {CC120X_FREQ1,             0x99},
      {CC120X_FREQ0,             0x99},
      {CC120X_IF_ADC1,           0xEE},
      {CC120X_IF_ADC0,           0x10},
      {CC120X_FS_DIG1,           0x07},
      {CC120X_FS_DIG0,           0xAB},
      {CC120X_FS_CAL1,           0x40},
      {CC120X_FS_CAL0,           0x0E},
      {CC120X_FS_DIVTWO,         0x03},
      {CC120X_FS_DSM0,           0x33},
      {CC120X_FS_DVC0,           0x17},
      {CC120X_FS_PFD,            0x00},
      {CC120X_FS_PRE,            0x6E},
      {CC120X_FS_REG_DIV_CML,    0x1C},
      {CC120X_FS_SPARE,          0xAC},
      {CC120X_FS_VCO4,           0x13},
      {CC120X_FS_VCO2,           0x64},
      {CC120X_FS_VCO1,           0xAC},
      {CC120X_FS_VCO0,           0xB5},
      {CC120X_IFAMP,             0x0D},
      {CC120X_XOSC5,             0x0E},
      {CC120X_XOSC1,             0x03},
    };

    我收到了所有数据包,没有任何问题。

    我不知道您是如何实施代码的,因此我无法判断代码为什么不起作用。

    调试嗅探模式应用程序的一个好主意是在可用的 GPIO 上输出不同的信号,以验证对讲机是否按预期将模式从睡眠模式更改为 RX 模式。

    LNA_PD 可用于查看设备何时处于 RX 模式,CHICE_RDYn 可用于监控晶体是否正在运行(睡眠状态下 XOSC 关闭)。

    西里

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

    模块初始化后,我正在配置 GPIO3以结束数据包中断,我正在使用提到的值设置寄存器。然后我将执行以下操作-

      //启用射频空闲模式以校准 RC 振荡器
       TrxSpiCmdStrobe (CC1200_sidle);
       //校准40kHz RC 振荡器
       校准 RCOsc();

       While (1)(同时)
       {
          TrxSpiCmdStrobe (CC1200_SWOR);
          While (Test_irqFlag!= 1);
          test_irqFlag = 0;
          CC120xSpiReadReg (CC1200_NUM_RXBYTES,&rxBytes);
          CC120xSpiFIFO (RFBuffer,rxBytes);
          对于(字节 I = 0;I< rxBytes;I++)
          {
             printf("%x ",RFBuffer[I]);
          }
       }

    这在 GPIO3中断处理程序中设置为1。

    但是,由于这一中断本身我没有得到,我的代码被滞留在 While 循环中。

    我为定制板和评估板配置了 GPIO0作为 Event1。 下面是捕获的波形。

    波形不匹配,除了评估板接收一些数据时的部分。

    我不确定波形的含义。 请您向我解释一下。

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

    您是否在正常 RX 模式下而不是嗅探模式下尝试过设置,并验证您当时是否能够接收所有数据包?

    您是否已验证您的发射器发送了足够长的前导码(最少8字节)

    除了为您提供一个嗅探模式示例(该示例实际上与 SmartRF Studio 一起用作发射器)和您在接收器端的设置(经过我提到的修改),我无法以任何其他方式为您提供帮助。

    代码示例可在此处找到:

    https://www.ti.com/lit/zip/swrc274

    我制作了一些图解,这些图解是我在运行此代码时获得的。 我添加了以下调试信号:

    RX 端:

    IOCFG2 = 0x13:              PkT_CRC_OK (由应用程序使用)

    IOCFG0 = 0x38:              事件1

    IOCFG3 = 0x58:              LNA_PD 反相(睡眠不足,RX 高)

    TX 端:

    IOCFG3 = 0x59:              PA_PD 反相(睡眠不足,TX 高)

    IOCFG2 = 0x06:              PkT_SYNC_RxTx

     

    当使用 SmartRF Studio 传输数据包时(使用 RF 参数,同步字和前导码长度进行修改),情况如下:

    西里

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

    您好,

    我仍在处理这个问题。

    由于我无法使用自定义应用程序获得任何输出,所以我使用演示应用程序(https://www.ti.com/lit/zip/swrc274)中提供的配置以及相同的代码流。

    我也在观察射频电流是否为~30mA。 我已附加了一个电流波形,供您参考。

    请告诉我可能出现的问题,或者我可以检查哪些问题来使其发挥作用。

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

    不幸的是,我不知道如何为您提供帮助,因为我为您提供了有效的设置和代码。

    你目前的图解对我的影响不大。 在 RX 模式下,峰值 RX 电流应在19-23 mA 范围内,因此大多数时间设备的电流消耗应在0.5 uA 左右。

    如果不使用嗅探模式,您是否能够接收所有数据包?

    如果您是这样,您只是遇到了计时问题,您需要找到一种输出一些调试信号的方法,以便您可以确定代码的作用。

    西里

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

    是的,如果没有嗅探模式,我可以正确接收所有数据包

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

    然后,您需要验证对讲机是否按预期进入和退出睡眠和 RX。 如果您的硬件正常且射频 PHY 设置正常,则没有理由在发射器发射时接收器处于 RX 状态时不接收任何内容。

    西里