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.

[参考译文] CC1312R:无法进入/激活睡眠模式

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1057610/cc1312r-can-not-enter-active-sleep-mode

器件型号:CC1312R

大家好、

我想问您一个有关睡眠模式和电源控制的问题。 我想在我的软件中激活睡眠模式。 目标值约为5-8 uA。 我正在编写一个演示程序、我可以使用睡眠 功能。 但演示程序根本不起作用。 您可以看到下面的基本演示程序。 ı 我认为如果我看到状态位为2、那么程序进入睡眠模式。  但状态位始终为1、这是激活模式。

如何进入睡眠模式?  

对于睡眠设置:

/*
 *  =============================== Power ===============================
 */
#include <stddef.h>
#include <stdint.h>
#include <ti/drivers/pin/PINCC26XX.h>
#include <ti/drivers/power/PowerCC26X2.h>

const PowerCC26X2_Config PowerCC26X2_config = {
    .enablePolicy             = true,
    .policyInitFxn            = NULL,
    .policyFxn                = PowerCC26XX_standbyPolicy,
    .calibrateFxn             = PowerCC26XX_calibrate,//PowerCC26XX_noCalibrate,//
    .calibrateRCOSC_LF        = true,//false,//
    .calibrateRCOSC_HF        = true,//false,//
    .enableTCXOFxn            = NULL
};

主:

int main(void)
{

    // Import Power Driver definitions
    #include <ti/drivers/Power.h>
    uint32_t totalLatency, resumeLatency;
    int16_t status;
     // One-time initialization of Power manager
    Power_init();

    switch (status)
    {
        case Power_ACTIVE:
        // No transitions in progress
            break;
        case Power_ENTERING_SLEEP:
        // Transition to sleep in progress
            break;
        case Power_EXITING_SLEEP:
        // Transition from sleep in progress
            break;
        case Power_CHANGING_PERF_LEVEL:
        // Performance level change in progress
            break;
    }
}

谢谢你

BR、

Bekir

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

    BTW、例如当我使用睡眠功能作为睡眠(5)时。 运行该命令时、功率成分约为40mV、对于5 Ω、等于8mA。我需要将该电流降低至约5uA。 因此、我似乎无法正确激活睡眠模式。 我该怎么做? 您对此问题有什么想法或建议吗?

    谢谢你

    Bekir

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

    器件型号:CC1312R

    大家好、

    我正在使用待机演示程序。  我 有基于 cc1312r 的定制板。 通常、通过使用此待机功能、数据表中的电流消耗约为5uA。 但我看到组合电流现在为1.2mA、这太高了。 如何降低电流?如果您有任何想法,请告诉我

    /*
     * Copyright (c) 2016-2019, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ======== pinStandby.c ========
     */
    #include <unistd.h>
    
    /* Driver Header files */
    #include <ti/drivers/PIN.h>
    
    /* TI-Drivers Configuration */
    #include "ti_drivers_config.h"
    
    /* Led pin table */
    PIN_Config LedPinTable[] =
    {
         0x00000011   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL  | PIN_DRVSTR_MIN,
         PIN_TERMINATE                                                                      /* Terminate list */
    };
    
    /*
     *  ======== mainThread ========
     */
    void *mainThread(void *arg0)
    {
    
        PIN_State   pinState;
        PIN_Handle  hPin;
        uint32_t    currentOutputVal;
        uint32_t    standbyDuration = 5;
    
        int16_t status;
    
        /* Allocate LED pins */
        hPin = PIN_open(&pinState, LedPinTable);
    
        /*
         * Repeatedly sleeps for a duration, to allow repeated entry/exit
         * from standby. The LED states are toggled on each iteration
         */
        while(1) {
    
    //        status = Power_getTransitionState();
            /* Sleep, to let the power policy transition the device to standby */
            sleep(standbyDuration);
    
            /* Read current output value for all pins */
            currentOutputVal =  PIN_getPortOutputValue(hPin);
    
            /* Toggle the LEDs, configuring all LEDs at once */
            PIN_setPortOutputValue(hPin, ~currentOutputVal);
        }
    }
    

    谢谢你

    BR、

    Bekir

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

    您好、Bekir、

    1) 1)您的应用是否基于 SDK 中的示例? 哪一个?

    2) 2)您是否正在使用 TI RTOS?

    3) 3) SDK 中的大多数示例都已预先配置为在不发生任何情况时使用待机模式(例如,在 SLEE()期间)。 我建议您从空驱动程序项目等开始。  

    谢谢、

    玛丽·H.

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

    您好、Marie、

    感谢您的回答  

    1-CC13x2 26x2 SDK 5.20-0.52

    是-是-我是 usıng ti-RTOS

    3-我还在使用 Resource Explorer 中的 pin_Standby 项目。

    没有任何变化。 因此、我想它不需要为此项目使用空驱动程序

    谢谢、

    Bekir

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

    您好 、ebukir、

    1) 1)您能否详细说明如何测量功耗? 是使用 CCS Energytrace 还是使用外部功率分析仪?

    2) 2)由于您有定制板、您能否阅读此 应用手册 以验证您是否正确地考虑了所有内容?  

    3) 3) 关于测量功耗:这里有一个非常有用的应用手册 、展示了我们如何正确测量功耗状态、还有一些重要的注意 事项-例如 、请注意 、当连接调试器时、芯片不会进入最低功耗模式。

    -眼睛

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

    您好、Eyal、

    在3.3V 电源和定制板之间有一个10欧姆电阻器。 因此、我们将使用万用表查看电阻器上的电压。 例如、我们检查电阻器电压、看到11mv、然后我们了解电流为1.2mA。 但我们需要看到或2、5或10uA。 因此它太高了。

    2-是的,我们可以认为一切都正确

    3-我们使用演示应用来实现待机功耗控制。 我们在 cc1312r1 dev 上使用此软件。 电路板。 我们看到电流为2uA、采用相同的测量策略。 因此、我们将相同的软件用于我们的定制板、这非常相似。 代码工作正常。 睡眠功能也正常工作 LED 也每5秒闪烁一次。 但共升电流为1.2mA。

    我们仍在努力解决这个问题。 如果您有任何其他想法、请告诉我们。  

    谢谢你

    Bekir

     

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

    您好、Bekir、

    您能否记录定制电路板的电流消耗? 为此、请使用 Code Composer Studio 的 Energytrace:

    为此、您必须通过已经具有的 CC1312 Launchpad 为定制板供电:

    重要说明:

    • 请注意、左板是 CC1312、右板应该是您的定制板。 此外、请确保移除所有其他跳线。
    • 此外、在测量电流消耗时不要处于调试会话中也很重要、因为器件将无法进入待机模式。 当您刷写器件时、通过单击"Play"、 然后停止调试会话、 然后仅使用 Energytrace 进行测量来运行代码。

    谢谢、

    -眼睛

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

    您好、Eyal、

    我像你说的那样测量。 您可以在下面看到它

    谢谢、

    Bekir

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

    您好、Bekir、

    您能否绘制 当前图形(全屏)?

    双击此项:

    谢谢、

    -眼睛

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

    您好、Eyal、

    您可以看到下面的所有电流图

    谢谢、

    Bekir

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

    如果使用完全相同的测量方法、则听起来可能是您的硬件消耗电流或阻止 CC1312R 在待机模式下下降。  

    我需要查看您的原理图、以了解您如何实现该电路板。   如果您希望对原理图保密、可以通过 www.ti.com/.../SIMPLELINK-SUB1GHZ-DESIGN-REVIEWS 发送。  

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

    您好、

    感谢您的回答

    当我调试代码睡眠(5)时、代码睡眠(5)正常工作。 等待5秒钟、然后 LED 闪烁。 如果是这样的话、我们可以说 cc1312r 不会在待机状态下下降。 ?

    谢谢你

    谢谢、  

    Bekir

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

    您的功率分布显示电路板正在消耗高电流。 首先、您必须弄清该电流是 CC1312R 还是电路板上的其他电流。  

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

    您好、

    1-我们对我们的外部晶体振荡器持怀疑态度(32.768)。 我们要检查这家晶振是否在软件中工作。 软件工作时如何检查此问题?

    2.有48MHz 的外部晶振和外部晶振。  对于 待机演示应用、我们在图片中设置了时钟源、如下所示。 让我们说其中一个或两个都不起作用。 那么会发生什么情况? cc1312r 计数器是否使用内部 RC 振荡器48MHz 工作?

    3 -这种情况会导致避免进入睡眠模式?

    谢谢你

    Bekir

    BR  

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

    1:我要测试两件事:

    -将32kHz 路由至一个引脚:请参阅 https://www.ti.com/lit/pdf/swcu185中的"13.3.4将32kHz 系统时钟(LF 时钟)映射至 DIO"

    -如果在 syscfg 中选择 RCOSC 作为 LF 时钟源,则测试您是否获得不同的电流配置文件。

    2:48MHz 时钟源选择仅在射频驱动器运行时有效/相关。 该器件使用内部48MHz RCOSC、直到射频打开。 如果由于某种原因32kHz osc 无法工作、并且选择此选项作为 LF 时钟源、则会阻止器件进入待机状态。  

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

    您好、

    感谢您的 asnwer。

    我进行了测试、正如您在1.2中所回答的那样。  我选择 LF RSOCS 作为 LF 时钟源。 电流会衰减至270uA。 (首次约为1mA。 选择 LF XOSC 时 )。 这意味着32.768kHz 外部晶体光源(XOSC_LF)损坏了吗?

    如果是这样、cc1312r 是否以自动方式使用32.768内部 RC 振荡器(LF RCOS)? 然后继续工作?

    谢谢你

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

    是的、外部 xtal 看起来有问题。  

    如果您选择 LF RCOSC、该选项将用于控制睡眠后唤醒的时序。 RTCOC 的精度要低得多(~500ppm)  

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

    您好 

    理想情况下、器件应在空闲时进入睡眠状态、这是芯片的一项功能。

    在您的问题中、您是指 状态位1是指激活模式吗? 或者 状态位是否从0开始? 在这种情况下、活动模式可以是0、1可以进入睡眠模式。

    谢谢、此致

    Subil Krishnan

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

    您好、

    我想问您一个有关 LF 时钟源的问题。 这些照片对于 LF 时钟源有何区别?

    我想知道的另一个问题是我们为什么校准 rcosc_HF。 因为我们看到高速时钟在待机模式下关闭。 为什么会这样

    谢谢你  

    Bekir

    BR

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

    -您可以为32kHz 时钟使用外部源,如果系统中的某个位置有32kHz 源,通常可以使用外部源。 但是、如果您没有、只需查看 RCOSC 或 XOSC 选项。

    -由于功耗原因,HF 时钟不用于待机模式。 RCOSC HF 时钟源仍在有效状态下用于生成时钟等、并且包含校准以提高时钟的精度。