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:16/16同步字检测问题

Guru**** 2540720 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/934777/cc1101-16-16-sync-word-detection-issue

器件型号:CC1101

我尝试在设置中使用16/16同步字位检测选项(MDM4FG2寄存器中为0x02)、但如果选择了该选项、则无法接收。

如果我使用30/32同步字位选项(MDMCFG2寄存器中的0x03)、那么我能够成功接收。

 此外、我还有一个 CC1101 SmartRF 评估板、当我将所有寄存器设置为与我的设置相同时、它能够通过16/16选项进行接收。

以下是我的寄存器设置作为参考:

SpiWriteReg (CC1101_IOCFG0、0x06);//GDO0输出引脚配置
SpiWriteReg (CC1101_PKTCTRL1、0x05);//数据包自动化控制
SpiWriteReg (CC1101_FSCTRL1、0x0C);//频率合成器控制
SpiWriteReg (CC1101_FREQ2、0x21);//频率控制字、高字节
SpiWriteReg (CC1101_FREQ1、0xD8);//频率控制字、中间字节
SpiWriteReg (CC1101_FREQ0、0x9D);//频率控制字、低字节
SpiWriteReg (CC1101_MDMCFG4、0x2D);//调制解调器配置
SpiWriteReg (CC1101_MDMCFG3、0x3B);//调制解调器配置
SpiWriteReg (CC1101_MDMCFG1、0x62);//调制解调器配置
SpiWriteReg (CC1101_DEVIATN、0x62);//调制解调器偏差设置
SpiWriteReg (CC1101_MCSM0、0x14);//主无线电控制状态机配置
SpiWriteReg (CC1101_FOCCFG、0x76);//频率偏移补偿配置
SpiWriteReg (CC1101_BSCFG、0x1C);//位同步配置
SpiWriteReg (CC1101_AGCCTRL0、0xB0);//AGC 控制
SpiWriteReg (CC1101_FSCAL3、0xEA);//频率合成器校准
SpiWriteReg (CC1101_FSCAL2、0x2A);//频率合成器校准
SpiWriteReg (CC1101_FSCAL1、0x00);//频率合成器校准
SpiWriteReg (CC1101_FSCAL0、0x1F);//频率合成器校准
SpiWriteReg (CC1101_TEST0、0x09);//各种测试设置
SpiWriteReg (CC1101_LQI、0x00);//解调器链路质量估算(0x7F)
SpiWriteReg (CC1101_RSSI、0x80);//接收信号强度指示
SpiWriteReg (CC1101_MARCSTATE、0x01);//主无线电控制状态机状态
SpiWriteReg (CC1101_VCO_VC_DAC、0x94);//来自 PLL 校准模块的电流设置

SpiWriteReg (CC1101_MDMCFG2、0x02);//调制解调器配置

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

    你(们)好

    总之:您的寄存器设置适用于我们的硬件、适用于16位和32位同步字、但在您自己的硬件上、仅32位设置有效。 是这样吗?

    1) 1)您要测试的硬件是什么? 您是否根据我们的参考文献制作了电路板 设计? 哪一个?

    2) 2)您是否使用 SmartRF Studio 的推荐设置进行了测试? 我看到您对我们的建议设置进行了多项更改。 为什么要进行这些更改、如果使用我们建议的设置、结果是什么:

    //地址配置=无地址检查
    //基本频率= 879.999390
    // CRC 自动刷新= false
    // CRC 使能= true
    //载波频率= 879.999390
    //通道数= 0
    //通道间距= 199.951172
    //数据格式=正常模式
    //数据速率= 249.939
    //偏差 = 126.953125
    //器件地址= 0
    //曼彻斯特使能= false
    //调制
    = true //调制格式= GFSK
    // PA 斜升= false
    //数据包长度= 255
    //数据包长度模式=可变数据包长度模式。 同步字后由第一个字节配置的数据包长度
    //前导码计数= 4
    // RX 滤波器带宽= 541.66667
    //同步字限定器模式= 30/32检测到同步字位
    // TX 功率= 0
    // Whitening = false
    // PA 表
    #define PA_table{0x50、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00
    
    preferredSettings[]=
    {
    CC1101_IOCFG0、 0x06}、
    {CC1101_PKTCTRL0、0x05}、
    {CC1101_FSCTRL1、 0x0C}、
    {CC1101_FREQ2、 0x21}、
    {CC1101_FREQ1、 0xD8}、
    {CC1101_FREQ0、 0x9C}、
    {CC1101_MDMCFG4、 0x2D}、
    {CC1101_MDMCFG3、 0x3B}、
    {CC1101_MDMCFG2、 0x13}、
    {CC1101_DEVIATN、 0x62}、
    {CC1101_MCSM0、 0x18}、
    {CC1101_FOCCFG、 0x1D}、
    {CC1101_BSCFG、 0x1C}、
    {CC1101_AGCCTRL2、0xC7}、
    {CC1101_AGCCTRL1、0x00}、
    {CC1101_AGCCTRL0、0xB0}、
    {CC1101_WORCTRL、 0xFB}、
    {CC1101_FREND1、 0xB6}、
    {CC1101_FSCAL3、 0xEA}、
    {CC1101_FSCAL2、 0x2A}、
    {CC1101_FSCAL1、 0x00}、
    {CC1101_FSCAL0、 0x1f}、
    {CC1101_TEST0、 0x09}、
    }; 

    当您说您无法接收时、您是指您从未检测到同步字、还是您接收到的数据中存在错误?

    Siri

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

    您好、Siri、

    是的、在我的硬件上、只能使用30/32同步字设置。 当我说它无法接收时、我的意思是它永远不会检测到同步字、因此我不会接收任何内容。

    1) 1)我有一个 CC1101打开的定制 PCB、并由 SAMV71Q21RT 微控制器控制。 CC1101布局基于 CC1101EM 868–915MHz 参考设计。

    2) 2)我刚刚尝试了您的建议设置、但无法使用这些参数接收到。 但是、SmartRF 板仍然可以接收这些数据。 我需要使用上面显示的寄存器设置、因此我必须使16/16工作。

    此外、当我首次开始对 CC1101进行编程并使其正常工作时、我使用了以下参数、这些参数也起作用:

    SpiWriteReg (CC1101_IOCFG0、0x06);//GDO0输出引脚配置
    SpiWriteReg (CC1101_PKTLEN、0x3D);//数据包长度
    SpiWriteReg (CC1101_PKTCTRL0、0x05);//数据包自动化控制
    SpiWriteReg (CC1101_FSCTRL1、0x06);//频率合成器控制
    SpiWriteReg (CC1101_FREQ2、0x10);//频率控制字、高字节
    SpiWriteReg (CC1101_FREQ1、0xA7);//频率控制字、中间字节
    SpiWriteReg (CC1101_FREQ0、0x62);//频率控制字、低字节
    SpiWriteReg (CC1101_MDMCFG4、0x5B);//调制解调器配置
    SpiWriteReg (CC1101_MDMCFG3、0xF8);//调制解调器配置
    SpiWriteReg (CC1101_MDMCFG2、0x03);//调制解调器配置
    SpiWriteReg (CC1101_MCSM0、0x18);//主无线电控制状态机配置
    SpiWriteReg (CC1101_FOCCFG、0x1D);//频率偏移补偿配置
    SpiWriteReg (CC1101_BSCFG、0x1C);//位同步配置
    SpiWriteReg (CC1101_AGCCTRL2、0xC7);//AGC 控制
    SpiWriteReg (CC1101_AGCCTRL1、0x00);//AGC 控制
    SpiWriteReg (CC1101_AGCCTRL0、0xB2);//AGC 控制
    SpiWriteReg (CC1101_WORCTRL、0xFB);//无线电控制唤醒
    SpiWriteReg (CC1101_FREND1、0xB6);//前端 RX 配置
    SpiWriteReg (CC1101_FSCAL3、0xEA);//频率合成器校准
    SpiWriteReg (CC1101_FSCAL2、0x2A);//频率合成器校准
    SpiWriteReg (CC1101_FSCAL1、0x00);//频率合成器校准
    SpiWriteReg (CC1101_FSCAL0、0x1F);//频率合成器校准
    SpiWriteReg (CC1101_TEST0、0x09);//各种测试设置
    SpiWriteReg (CC1101_LQI、0x7F);//解调器估算链路质量
    SpiWriteReg (CC1101_RSSI、0x80);//接收信号强度指示
    SpiWriteReg (CC1101_MARCSTATE、0x01);//主无线电控制状态机状态
    SpiWriteReg (CC1101_VCO_VC_DAC、0x94);//来自 PLL 校准模块的电流设置

    不过、即使使用这些设置、从30/32更改为16/16仍会使其变为不接收。

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

    好的。 我知道您需要使用16位同步字、而不是32位同步字。 我想知道为什么您必须更改射频相关设置、例如 IF 频率等

    但是、我认为、您可以使用32位同步字进行接收是没有意义的、 但不是16。16位匹配比匹配32位更容易、因此、如果有任何匹配、我会假设对于16位同步字、您将收到更多的错误同步字。

    不知道您在代码中执行的操作以及如何处理 RX、但您是否使用示波器检查了 GDO0在使用16位同步字时从未变为高电平? 您是否会遇到这样的情况:您实际上正在收到错误的同步字、并且您的代码未正确处理此字、从而导致您最终处于某种错误状态?

    当您说 TX 中的所有内容都能在电路板上正常工作时、您是在该电路板上运行相同的代码(代码)、还是在运行 SmartRF Studio?

    在测试时、您能否尝试将评估板用作发送器并将其连接到 SmartRF Studio。 使用其中一个默认设置(例如38.4kbps)发送数据包。 使用代码导出中的设置、并在接收器上实施、确保能够正确接收所有数据包。 将 RX 和 TX 从32位更改为16位同步。 在这种情况下、您能否确认 GDO0线路从未有效?

    Siri

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

    您好、Siri、

    我根据 TI 示例库重新编写了 CC1101函数和库、现在可以使用了。 我对接收有另一个问题、但我将为此新设一个职位。

    谢谢、

    Andrew