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**** 2338860 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/1508009/cc1101-continous-interrupt-after-power-on

部件号:CC1101

工具/软件:

在 MCU 端对 CC1101无线电收发器进行初始配置后、在中发现了问题 中断引脚 以非常高的频率开始产生中断、大约为 135kHz 。 这种行为在 CC1101设置后立即发生、并且似乎偶尔触发。 连续的中断流有效地超出了 MCU 的中断处理能力 阻止其他关键任务的执行 。 因此、系统 看门狗计时器馈送失败 ,导致一个强迫 MCU 复位 。 但是、复位后问题仍然存在:重新启动后、CC1101继续发出高频中断、导致电路板进入 A Bootloop 状态 。 在执行手动干预或 CC1101模块硬复位之前、这会使系统无法正常工作。  此问题不会一直出现、但有时会在上电后出现。 根本原因可能是什么?

下面是此引脚上发生的情况的示波器图:

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

    CC1101没有任何中断引脚。

    CC1101上有3个可配置的 GDO 信号。 如果您阅读数据表、您将看到 GDO0默认编程为输出 CLK_XOSC/192 (26 MHz / 192 = 135kHz)。

    如果您将 GDO0连接到 MCU 上的输入、则在将 CC1101编程为在该 GDO 引脚上输出对您的应用有用的内容之前、不应在此输入上启用中断。

    数据表列出了可以输出3GDO 信号的所有可能信号。

    BR

    Siri

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

    我是 CC1101的 GDO2引脚

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

    GDO2默认编程为 CHP_RDYn、并且在您所指的初始设置期间(不提供您使用哪些寄存器值来配置器件)、除非您对其进行编程以执行此操作(IOCFG2 = 0x3F)、否则不会发出135kHz 时钟。

    对于所有3个 GDO 信号、同样适用。

    如果将它们连接到 MCU 上的输入、则在对 CC1101进行编程、以便在这些引脚上提供对您的应用有用的信号之前、无法在这些引脚上启用任何中断。

    您希望在 GDO0和 GDO2上显示哪些信号?

    Siri

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

    这发生在任何寄存器设置之前、只需在 MCU 上配置 GPIO 并为 CC1101加电、然后它会自动开始。

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

    您是否制作了自己的硬件? 如果 满足、是否已确保满足上电复位要求?

    如果没有、您需要按照数据表的第19.1.2节所述进行手动复位。

    请执行手动复位、并提供所有 SPI 线路以及 GDO0和 GDO2的图、以便我们可以看到发生了什么。

    下图显示了它应如何显示。

    在我的电路板上、我知道上电复位已经执行 、因此我已经在 GDO0上输出了 CLK_XOSC/192、在 GDO2上输出了 CHIP_RDYn。

    在按照数据表中所述执行手动复位后、您将看到 CHIP_RDYn 被拉至高电平(复位期间芯片未就绪、GDO0上的时钟信号停止)、然后当芯片 Becode 就绪(CHIP_RDYn 被拉至低电平)时、时钟再次启动。

    请从测试设置中提供类似的图。

    Siri

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

    下面是我们采用 CC1101的原理图:

    我们将绘制硬件上的内容。  

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

    还提供有关复制的参考设计的信息。

    Siri

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

    大家好、我们遵循了 CC1101EM 868– 915 MHz 参考设计(swrr045.zip)

    这是手动电源复位后的示波器图。  反相预分频时钟信号立即出现在 GDO0和 GDO2 引脚上。

    此外、在连接示波器探头的情况下、我们无法重现启动时的问题。 我们尝试了具有低寄生电容(例如<3.8pF)的探头、这没有任何区别。 断开探头后、器件再次更有可能陷入由 GDO2引脚上的时钟信号引起的重新启动循环中。

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

    我不理解您的评论:"器件再次更有可能陷入由 GDO2引脚上的时钟信号引起的重新启动循环中"

    正如我之前多次提到的、您需要禁用连接到 GDO0和 GDO2的 MCU 上输入引脚上的中断。

    这样、这些引脚上的内容无关紧要、它们不会对您的应用执行任何操作。

    看一下信号是不同的(彼此异相)、所以我不认为这是来自 CC1101的信号(如果是 CLK_XOSC/192)

    您是否在多个器件上对此进行了测试?

    将 IOCFG0和 IOCFG2编程为其他值之后会发生什么情况? 这会发生什么变化吗?

    您还应该从 MCU 上物理断开 CC1101上的 GDO 引脚。 当这些引脚未连接到任何东西时、您如何测量它们?

    Siri

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

    "器件再次更有可能陷入由 GDO2引脚上的时钟信号引起的重启循环中"- 出现此问题的原因是启用了 GDO2的 MCU 侧中断 解决方案 CC1101初始化。 因此、引脚触发的高优先级中断会阻止系统、从而妨碍 CC1101的正确配置。

    作为权变措施、我们启用 GDO2中断推迟之后 CC1101初始化。 更改解决了问题。  但是、我们仍在调查通电后 GDO2上立即出现信号的根本原因。 行为不一致-不会每次都发生会干扰系统启动。 在数据表中、没有关于 GDO2的信息、我们预计在上电后也会收到时钟信号。 行为是否正常?

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

     上电 复位后 GDO2上出现除 CHIP_RDYn 以外的任何内容都是不正常的行为、因此器件被损坏(ESD 损坏等)或信号由 MCU 驱动。

    我没有得到对其余问题的任何回答。

    "

    您是否在多个器件上对此进行了测试?

    将 IOCFG0和 IOCFG2编程为其他值之后会发生什么情况? 这会发生什么变化吗?

    您还应该从 MCU 上物理断开 CC1101上的 GDO 引脚。 当这些引脚未连接到任何东西时、您如何测量它们?

    "

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

    信号当然不是由 MCU 驱动的。
    1)是的、我们在几个器件上观察到了这一点。
    2)是的、我们可以更改该寄存器
    3)我们没有测试。