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:TX 后异常电流

Guru**** 2587365 points
Other Parts Discussed in Thread: CC1101, MSP430FR5969, ENERGYTRACE

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/865643/cc1101-post-tx-abnormal-current

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

您好!

我目前正在对 CC1101进行采样 、以便在我们的其中一个具有超低功耗目标的研发项目中使用

现在、我将测试 TX 模式以检查缓冲器传输的电流曲线。

设置看起来很简单:

  • 数据速率:76.6kbaud
  • 中心频率:868.8MHz
  • TX 功率:10dBm

主循环为:

  1. 发送10字节数据包(+ 4字节前导码 + 4字节同步字)
  2. CC1101完成后立即发送睡眠
  3. 等待100ms

我已将 CC1101 (使用分线模块)与 MSP430FR5969 Launchpad 相连

我使用 Code Composer Studio 上的 EnergyTrace 测量电流

查看(唤醒+ PLL 锁定+空时间)、我希望 TX 电流在2-3ms 之间

我看到一个具有该估算持续时间的峰值、但在该峰值之后、存在我不理解的~18ms 稳定电流(请参阅下面的屏幕截图)。

有什么想法是从哪里来的,为什么会发生呢?

提前感谢。

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

    缺少显示电流消耗的图、请重新发布图片。   

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

    您好!

    我已使用编辑了主帖子、并重新添加了屏幕截图

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

    您是否能够共享一些会重现此问题的代码?  

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

    当然、我已经从 Github (github.com/.../msp430-cc1101)获取了一个基本的 CC1101库 、以便能够评估模块的功率分布。

    我介绍了库所做的芯片配置、看起来不错。 我修改了一些部件(频率配置为433MHz、我的频率为868MHz)

    main 非常简单。

    我已附加压缩项目: e2e.ti.com/.../CC1101_5F00_Test.zip

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

    我没有您正在运行的硬件、因此我无法执行任何测试、我无法构建代码、但我已经查看了代码。

    关于 CC1101、发送数据包时、您应该消耗大约30mA 的电流2.2ms。 发送数据包后、您将发送一个 SPWD 选通、这将使 CC1101进入睡眠状态。 但是、我看到您没有采取任何措施将 MCU 置于任何断电状态、我无法解释您所指的18ms。

    此外、我想知道 y 轴上的单位是什么? 正如我说过的、CC1101在+10dBm 输出功率下消耗的电流约为30mA。

    如果您根本不使用对讲机、当前配置文件的外观如何?

    while (1){
    SpiStrobe (CC1101_SPWD);
    延迟(100);
    SpiStrobe (CC1101_sidle);
    延迟(100);
    } 

    如果您进入和退出 TX、功率分布看起来是怎样的(如果 FIFO 为空、STX 选通将使无线电发射前导码始终保持不变)

    while (1){
    SpiStrobe (CC1101_sidle);
    延迟(100);
    SpiStrobe (CC1101_STX);
    延迟(100);
    } 

    Siri

    它看起来是怎样的

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

    您好、Siri、

    感谢您花时间了解这一点。

    我现在不对 MCU (低功耗状态)执行任何操作。 MCU 现在正在等待测试处于活动状态。 我稍后将实现这一点。 当主循环为空时、MCU 功耗约为3mW。

    我不确定你的意思是"y 轴"。

    对于第一个测试(无无线电、睡眠/空闲)、功率分布显示空闲周期后的20ms 电流

    对于第二个测试(IDLE/TX)、我们可以清楚地看到功率分布中的不同模式。 但是、TX 之后有一些稳定电流(6-7ms)(见下文)

    因此,我在 TX 和睡眠之间进行了第三次测试,环路执行了:

    SpiStrobe (CC1101_Sidle);
    SpiStrobe (CC1101_SPWD);
    延迟(100);
    SpiStrobe (CC1101_STX);
    延迟(100); 

    在这里、我们再次看到电流、但持续时间更长(约20ms)(见下文)

    因此、奇怪的电流可能与 TX 无关、而是与处于休眠状态(空闲/睡眠)的入口相关、其持续时间取决于所选状态

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

    很抱歉、我无法帮助您解决此问题。 我想它必须与您正在运行的软件或硬件上的某个内容相关。

    我不是说它不是来自无线电。 如果无线电处于 TX 状态、它的电流消耗约为30mA。 退出 TX 后、无线电将进入空闲状态、消耗1.7mA 电流、然后一旦发送 SPWD 选通脉冲、无线电就会进入睡眠模式。

    唯一可以使其保持激活状态的是 RC OSC 校准、如果在激活状态下未完成校准。 但是、这只需花费大约2ms (由于您的对讲机的活动时间长于此时间、因此不应成为问题)。

    BR

    Siri

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

    您好、Siri、

    如果您认为它来自我的软件,您是否有一些简单的软件可以确保我可以运行(比如睡眠/ TX 开关)?

    此致、

    Romain

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

    您可以尝试如下所示的操作:

    • 初始化 MCU
      • (设置 SPI 接口并正确配置所有 IO、以便它们不消耗不必要的电流)
    • 使用 SmartRF Studio 中的寄存器设置初始化无线电
    • 选通 STX
      • 对讲机现在将永久发送前导码(因为 FIFO 为空)
    • 将 MSP430置于低功耗模式
      • 电流消耗现在应约为30mA + MSP430休眠电流

     

    • 初始化 MCU
      • (设置 SPI 接口并正确配置所有 IO、以便它们不消耗不必要的电流)

    • 使用 SmartRF Studio 中的寄存器设置初始化无线电
    • 选通 SPWD
      • 对讲机将进入睡眠模式
    • 将 MSP430置于低功耗模式
      • 电流消耗现在应约为200nA + MSP430休眠电流

     

    我还建议您在根本不使用访问 CC1101时查看当前配置文件。 复位后、器件应处于空闲模式(消耗大约1.7mA 电流)。 您当前的个人资料现在是什么样的?

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

    您好、Siri、

    感谢您的回答。

    我进行了您所指出的3项测试。

    对于每个测试,没有其它活动 SPI:无中断,无计时器...

    - Init SPI / IO => CONFIG CC1101 => STX => LPM3:我得到稳定的37.5mA

    - Init SPI/IO =>配置 CC1101 =>睡眠=> LPM3:我得到一个稳定的270nA

    - Init SPI/IO =>无=> LPM3:我得到一个稳定的2.0mA

    对于配置、我采用了默认的 SmartRF Studio 配置(除了将功率更改为10dBm 而不是12dBm)

    我使用 SmartRF Studio 尝试了之前的测试(STX -> IDLE -> SLEEP 100ms LOOP)、同样、在 STX 100ms 后、我获得~40ms 的电流。

    值得注意的是、电流似乎并不总是相同的值、但看起来好像有一个彭定康

    此致、

    Romain

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

    我对 TrxEB + CC1101EM 进行了一些测试。

    首次测试:

    void main (void)
    {
    uint8 marcstate、fscal1;
    
    //初始化 MCU 和外设
    initmc();
    
    //写入无线电寄存器
    registerConfig();
    
    while (1)
    {
    TrxSpiCmdStrobe (CC1101_STX);
    候补女士(10);
    trxSpiCmdStrobe (CC1101_sidle);
    候补女士(10);
    TrxSpiCmdStrobe (CC1101_SPWD);
    候补 Ms(10);
    }
    }
    

    当前配置文件如下所示:

    然后、我更改代码:

    void main (void)
    {
    uint8 marcstate、fscal1;
    
    //初始化 MCU 和外设
    initmc();
    
    //写入无线电寄存器
    registerConfig();
    
    while (1)
    {
    TrxSpiCmdStrobe (CC1101_STX);
    候补女士(10);
    trxSpiCmdStrobe (CC1101_sidle);
    TrxSpiCmdStrobe (CC1101_SPWD);
    候补 Ms(10);
    }
    }
    

    如您所见、所有电流图均如预期那样。

    BR

    Siri

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

    您好、Siri、

    感谢您的反馈和测试。

    因此:

    -来自 devboard 的 EnergyTrace 未精确记录

    -我的 CC1101板有一个导致泄漏的设计故障

    -两个通道之间的链路会产生一些泄漏(I/O)

    由于我对前两个方面做得不多、我将尝试深入研究最后一个方面。

    您能不能准确地详细描述一下您为所有连接到 CC1101EM 的 I/O 所拥有的 I/O 配置(输入、输出、拉电阻器)?

    此致、

    Romain

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

    正如我说过的、我使用的是 TrxEB + CC1101 EM。

    无线电配置:

    #define PA_TABLE{0x50、0x00、0x00、0x00、0x00、0x00、0x00、0x00}
    
    静态常量寄存器 Setting_t preferredSettings[]=
    {
    CC1101_IOCFG0、 0x2F}、
    {CC1101_IOCFG1、 0x2F}、
    {CC1101_IOCFG2、 0x2F}、
    {CC1101_FIFOTHR、 0x47}、
    {CC1101_PKTCTRL0、0x05}、
    {CC1101_FSCTRL1、 0x08}、
    {CC1101_FREQ2、 0x21}、
    {CC1101_FREQ1、 0x62}、
    {CC1101_FREQ0、 0x76}、
    {CC1101_MDMCFG4、 0xCA}、
    {CC1101_MDMCFG3、 0x83}、
    {CC1101_MDMCFG2、 0x93}、
    {CC1101_DEVIATN、 0x35}、
    {CC1101_MCSM0、 0x18}、
    {CC1101_FOCCFG、 0x16}、
    {CC1101_AGCCTRL2、0x43}、
    {CC1101_WORCTRL、 0xFB}、
    {CC1101_FSCAL3、 0xE9}、
    {CC1101_FSCAL2、 0x2A}、
    {CC1101_FSCAL1、 0x00}、
    {CC1101_FSCAL0、 0x1f}、
    {CC1101_TEST2、 0x81}、
    {CC1101_TEST1、 0x35}、
    {CC1101_TEST0、 0x09}、
    }; 

    MCU 代码取自:

    BR

    Siri