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**** 2392185 points
Other Parts Discussed in Thread: SIMPLICITI, CC1101

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/806263/cc1101-not-transmitting-but-receiving-after-sleep-state

器件型号:CC1101
主题中讨论的其他器件: SimpliciTI

你(们)好

我使用使用使用 SimpliciTI 堆栈(IAR 版本1.2.0修订版 e)。 该堆栈经过轻微修改、以匹配 PIC SPI

使用函数 SMPL_Init(...)正确初始化 CC11。

使用以下函数将无线电发送到 RX 时、接收正常:SMPL_ioctl (IOCTL_obj_radio、IOCTL_ACT_RADIO_RXON、0);

使用以下函数传输正常:SMPL_Send (...)

到目前为止还不错、但如果我使用以下命令将 CC11置于睡眠状态、则会出现问题:SMPL_ioctl (IOCTL_OBJ_RADIO、IOCTL_ACT_RADIO_SLEEP、0);

进入睡眠模式后、IDLE 和 RXON 模式、CC1101能够正确接收、但无法响应。

更准确地说、由于 CCA 过程、多次尝试后、函数 MRFI_Transmit 失败。 我发现传输时不会发生 GDO0中断。

我可以确认、由于 CC1101评估板"监听"无线电、不会发出任何信号。

我已经检查了相关帖子中的所有内容。

当从睡眠状态中唤醒时、MISO 线路由 SimpliciTI 堆栈处理。

我仅使用 PA_TABLE [0]。

是否有人看到问题在哪里?

非常感谢

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

    遗憾的是、我没有任何硬件可以使用 CC1101运行测试、但我可以为您提供一些调试提示。

    如果不使用 CCA、您是否能够在睡眠后传输? (使用 txType = MRFI_TX_TYPE_强制、而不是 MRFI_TX_TYPE_CCA)。 如果这起作用、问题与 TX 无关、而是与 CCA 算法有关。

    在将器件从睡眠模式唤醒时、最好监控所有 SPI 线路和 GDO 线路、以尝试计算正在进行的操作。

    问题是否与您使用的 MCU 相关、而不与无线电相关? 根据您在 CC1101上使用的 GDO 信号以及它们配置的信号、进入睡眠状态时可能会改变状态。 是否会发生这种情况、MCU 在将 CC1101置于睡眠模式之前未禁用断路器、这是否会给您带来问题?

    很抱歉、我现在再也没有任何帮助了。

    BR

    Siri

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

    我尝试将 MRFI_TX_TYPE_CCA 替换为 MRFI_TX_TYPE_强制、传输似乎正常! 感谢您的提示 Siri。

    不过、我不知道睡眠模式如何影响 CCA 算法。 睡眠期间是否可能复位与 CCA 相关的(未记录的)寄存器?

    出于明显的原因、我想解决这个问题、而不是修补 SimpliciTI 来解决这个问题。 但我没有太多时间深入研究这个主题

    我会再运行几个测试、看看会出现什么情况、同时、如果有人了解正在发生的情况...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题似乎来自 GDO0引脚配置、当使用 CCA 时、系统在将 GDO0设置为0x1B 后等待 GDO0上的中断。

    在数据表中、我找到了有关此配置的以下信息:
    PA_PD。 注意:在睡眠和 TX 状态下、PA_PD 具有相同的信号电平。 用于控制中的外部 PA 或 RX/TX 开关
    使用睡眠状态的应用、建议改用 GDOx_CFGx = 0x2F。

    即使我使用睡眠模式、当 GDO0被重新配置时、系统处于空闲或 RX 状态、因此这并不重要。 无论如何、我尝试用0x2F 替换0x1B、但它不能解决问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您需要使用控制外部 PA 的信号(如果您有的话)、建议将 IOCFG0替换为0x2F、这不是 CCA 实现的解决方案。 对于 CCA 实现、该信号用于在进入 TX 模式时发出信号、表明器件已进入 TX 模式(信号将从1变为0 (下降沿))。
    进入睡眠状态时、信号也将从1变为0 (因此、数据表中的注释说明了该信号如何在进入睡眠状态的应用中产生问题)。
    进入睡眠模式时、您是否在该引脚上获得了中断、或者忘记在睡眠后清除中断、从而导致您错过从进入 TX 模式生成的中断?
    我还知道、hte PA_PD 信号用于确定无线电是否已进入 RX 模式、而且该信号在睡眠中的电平与在 RX 中的电平相同。
    与 MSP430 MCU 上相比、在您使用的 PIC 控制器上必须以不同的方式处理这些中断信号、因此移植代码时会遇到问题。

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

    线程因不活动而关闭

    Siri