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.

[参考译文] CC1120:低于1GHz 论坛

Guru**** 1472385 points
Other Parts Discussed in Thread: CC1120, BOOSTXL-CC1120-90
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1214239/cc1120-sub-1-ghz-forum

器件型号:CC1120

您好的体验。

我是一个 在如下图所示的环境中试用 CC1120的人。

CC1120模块充当 RX 并包含一个 MCU 和一个 CC1120芯片、该 CC1120芯片由 MCU 控制。

CC1120模块是制造的、不是商用产品。

BOOSTXL-CC1120-90用作 TX、是 TI 的商用产品。

BOOSTXL-CC1120-90具有 Smart RF 的互锁功能、并可通过 PC 中 SMART RF 的数据包 TX 以设置的载波频率发送数据包。

下面链接中的问题中有一些我想进一步询问的问题。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1208620/cc1120-it-looks-like-there-is-no-byte-in-rxfifo/4568273#4568273

在上面的链路应答中、我了解到从 CC1120接收数据时 GPIO2引脚为高电平、然后在接收数据时下降至低电平。

实际上、由于使用两个 BOOSTXL-CC1120-90进行了通信、当在接收端接收数据时、已确认 GPIO 2号下降。

因此、我编码 RXFIFO、以便在下降沿中断发生时读取、正如在 GPIO2引脚下降时通知我的那样。

但没有发生中断。

因此、检查 GPIO 引脚2的结果确认它仍处于低电平状态。

BOOSTXL-CC1120-90在检查 GPIO2引脚时保持高电平状态、然后在接收到数据时变为低电平状态、然后返回高电平状态。

我认为 CC1120模块的硬件存在问题。

很抱歉、我附上了电路图( 下图和附件)、如果电路图中有任何错误、如果您告诉我、我将不胜感激。

我测试了以下图片的两个版本、但 GPIO2仍为低电平。

-第1版-

    

-第2版。 -

     

     

GPIO 0引脚在 CC1120模块(高电平)和 BOOSTXL-CC1120-90 (低电平)中的状态不同。

您还能告诉我 GPIO0引脚的功能是什么吗?

在最后一个问题中给出较长答案的原因是、首次在代码中反映下降沿中断花费了很长时间

一如既往地表示感谢、非常感谢您的任何帮助。

                                                   -由 Kim 提供-

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

    让我看看我是否理解正确。

    如果您使用两个 BOOSTXL-CC1120-90进行测试、一切都正常、但如果您使用 BOOSTXL-CC1120-90作为 TX、并使用自己的 HW 作为您未收到的接收器、那么是正确的吗?

    发送器使用我们的板和设置(SmartRF Studio)、因此可以。

    如果接收器没有接收、可能由以下两个原因引起:

    1)设置错误

    2) 2)硬件不良

    如果您对接收器使用与对发送器相同的设置、则您知道这些设置是可以的、那么我们就只能在 RX 端使用不良的硬件。

    如果设置 IOCFG2 = 0x06、则当在 TX 中发送同步字并在 RX 中接收时、该信号应生效、当在 TX 中发送数据包并在 RX 中接收数据包时、该信号应失效。

    如果您在发送器和接收器上测量此信号、它们应该几乎同时变为高电平和低电平。

    如果接收器上的 GDO2信号始终为低电平、即使您正在传输数据、也意味着您无法接收。 我们知道设置是可以的(与 TX 设置相同)、这意味着您的硬件出现了问题。

    在设计您的硬件时、您是否遵循了我们的参考设计? 这不仅意味着您应该使用相同的组件等、而且您电路板的布局需要严格遵循我们的设计。

    HOE GDO0的行为取决于您将 GDO0信号编程为什么(IOCFG0 =???)

    Siri.

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

    感谢你的评分

    您完全理解我想问的问题。

    我理解我设计的硬件可能会出现问题。

    此外、我还有两个问题。

    1.  GPIO2的低电平状态是否与 TX 数据包无关?

    例如、如果 TX 端发送的数据包的前导码、SYNC 和 CRC 与​​RX 端的设定值不同、我想知道 GPIO 2引脚是否仍然处于低电平状态。

    或者、我想知道当存在接收时、即使前导码、SYNC 和 CRC 不同、GPIO 2引脚的状态是否也会发生变化。

    2. 最后一行答案"Hoe GDO0的行为取决于您设定的 GDO0信号的行为(IOCFG0 =???)"  
      意味着 GPIO0引脚的状态根据 IOCFG0的寄存器值发生变化?

    如果我正确理解上述问题、则当前 BOOSTXL-CC1120-90和制造的 CC1120模块中的 IOCFG0寄存器值相同。

    但是、GPIO0引脚的状态测量不同。

    如果是、我们可以看到 H/W 有问题吗?

    很抱歉再次询问。

    非常感谢您的帮助。

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

    有关 GPIO 信号的工作原理、请参阅用户指南中的第3.4.1.1节。  

    如前所述、当 IOCFG2 = 0x06时、这意味着 GPIO2 输出 PKT_SYNC_RxTx 信号。

    在用户指南中:

    "RX":当接收到同步字时生效、在数据包结束时失效。 当可选的地址和/或长度检查失败或 RX FIFO 溢出/下溢时、将取消置位。

    TX:当同步字已发送时生效、在数据包结束时失效。 如果 TX FIFO 下溢/溢出、则将取消置位"

    这意味着在 RX 中、它必须找到正确的同步字才能变为高电平。 如果同步字之前没有前导码、则根本无法检测同步字。

    即使数据包中存在 CRC 错误、该信号也会生效、它只会关注同步字。

    即使已将同步字编程为与发送的同步字相同、不良的射频设计也可能会导致无线电性能不佳、并且即使所有内容都已正确编程、也无法接收同步字。 这就是为什么我问您在进行自己的设计时是否仔细遵循了我们的参考设计。

    您还应检查从 MCU 到 CC1120的 SPI 通信是否符合规格。 您是否检查了可以从已配置的寄存器中读回正确的寄存器值?

    同样、当我不知道您向 IOCFG0写入的值时、我无法判断 GPIO0的行为。

    如果使用默认的 Studio 设置、则此 GPIO0 = RXFIFO_THR:

    相关联的 RX FIFO。 当 RX FIFO 填充至高于 FIFO_CFG.FIFO_THR 时生效。 当 RX FIFO 消耗到(或等于)同一阈值以下时失效。 此信号在 MODEM_STATUS1寄存器中也可用

    Studio 还设置了 IOCFG0.GPIO0_INV = 1、这意味着信号被反转。

    如您所见、这是一个 RX 信号、在 TX 中根本没有置位。

    Siri.

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

    我目前正在进行硬件验证、因为我认为硬件有问题。

    然后,一个想法来到我的脑海里,我继续与它。

    它用于控制 CC1120模块中的 CC1120、该模块是由 BOOSTXL-CC1120-90的 MCU 制成的硬件。

    由于 BOOSTXL-CC1120-90的 MCU 通过智能射频工作、我认为如果 CC1120模块的硬件正常工作、则会收到该信号。

    如下图所示、连接了 BOOSTXL-CC1120-90和 CC1120模块的电路。

    由于电路执行、与以前不同、CC1120模块的 GPIO2引脚正常工作、我发送的数据通常从 SmartRF 输出。

    此外、实验期间、BOOSTXL-CC1120-90的电源和时钟被禁用。

    我也尝试了相反的情况。 (该电路被配置为 CC1120模块的 MCU 控制 BOOSTXL-CC1120-90的 CC1120。)

    在上述情况下、GPIO2引脚没有运行、但发生了下降沿中断。 (在 x 之前发生)但是、没有接收到数据。

    我认为我正在编写的代码有问题。

    很抱歉打扰您、但我会写另一篇文章、您能上次回顾一下代码吗?

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

    如果我理解正确、您可以说如果您从 SmartRF Studio 控制硬件、则您的硬件可以正常工作并能够接收数据包、但如果您运行自己的代码来控制硬件、则同一硬件不起作用、是这样吗?

    我不理解您的陈述:

    "GPIO2 引脚没有运行、但发生了下降沿中断"

    如果 GPIO2引脚上没有发生任何操作、如何获得中断?

    不确定您希望我查看哪些代码。 我已经为您提供了工作代码、您只需尝试按照以下代码示例进行操作、操作方法尽可能接近。

    您还应使用逻辑分析仪验证 SPI 通信是否正常、并且应使用示波器验证 SPI 是否符合规格。

    如果硬件运行正常、但 SPI 通信正常、则代码要使 GPIO2切换一次、唯一需要做的事情是:

    重置对讲机

    写入 SmartRF Studio 给出的所有配置寄存器

    频闪灯 SRx

    完成这些步骤后、您应该会在接收到数据包时看到 GPIO2变为高电平、然后变为低电平。

    请注意、如果您没有在再次进入 RX 之前读取 FIFO 或清除 FIFO、则可能在接收到下一个数据包时发生溢出、因此上述测试只能用于验证您接收到1个数据包。 一旦这个值被确认、你可以执行 FIFO 等的读取。。

    Siri.

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

    您完全理解我所说的。

    "GPIO2引脚没有运行、但发生了下降沿中断"

    如果 GPIO2引脚上没有发生任何操作、如何获得中断?

    我也不理解这部分。 所以我想我编写的代码可能有误。

    如果您有时间、我非常感激您能对其进行评论、因为我将最晚附上完整代码。

     

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

    : 重置无线电和写入 SmartRF Studio 提供的所有配置寄存器(已验证 SPI 通信。 由于太长,我只附加其中的一部分。)

    ManualCalibration 函数按原样使用示例代码中的内容。

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

    : 每当发生 GPIO2下降沿中断时,此函数都会读取 RXFIFO。

    : 当 GPIO2引脚上发生下降沿中断时,此代码会将 GPIO_flag 变量更改为1。

    我知道这是一个不合理的要求、但如果您能评论一次、我真的很感激。

                                                                                -由 Kim 提供-

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

    我想我再也不会锁定您的代码了、因为我多次为您提供了所需的代码(伪代码)、而且我不知道您正在使用的 MCU。

    • 初始化 MCU
    • 重置对讲机
    • 将配置寄存器写入无线电
    • 频闪灯 SRx
    • 等待 GPIO2上的中断
    • 如果 FIFO 中有内容、则读取 FIFO。

    您说硬件可以正常工作、这意味着您应该认为问题与软件有关。

    我说过、如果您可以为我提供 SPI 的逻辑分析仪图、我可以验证您是否真正按照您想象的方式写入寄存器。 由于我还没有看到这些图表、可能只是您的 SPI 设置出现了问题、但我无法从查看您的代码中告诉您这一点。

    现在、我只能以您的方式信任它

    EXTEND_Resgister_write (0x00、0x2F、0x25、0x00)、您可以将 VCO CAP_ARRAY 设置为0x00、但我无法实际验证这一点、除非看到实际上在 SPI 上发送的通信。

    中断也是如此。 如果您认为您已在 GPIO2上配置了下降沿中断、并且您说获得中断但 GPIO2上没有发生任何情况、那么您设置中断的方式或 GPIO2与 MCU 的连接方式显然存在问题。

    此外、我不知道您的 MCU 以及如何在该 MCU 上配置下降沿中断、所以我不能告诉您为什么这样不起作用。

    调试时、您应该简单地通过一个到您用于中断的引脚的测试信号输入来测试中断代码、然后验证每次测试信号变成低电平时、您都跳转到 ISR。

    当您处理该任务时、您可以将输入连接到 CC1120的 GPIO2。

    Siri.

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

    下图展示了将0xB0写入 IOCFG3寄存器(地址:0x00)时逻辑分析仪的图片。

     

    通过放大上图、我们获得的结果与下图相同、以字节为单位。

     

    从上图可以看出、SPI 通信没有问题。

    关于代码,我认为我别无选择,只能做更多的研究。

    在您的帮助下、我能够安全地解决数据传输问题。

    如果对正在开发的 CC1120芯片有任何疑问、我会发布。

    非常感谢。

                      -由 Kim 提供