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.

[参考译文] RTOS/MSP432P401R:电流消耗高于预期

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/609575/rtos-msp432p401r-higher-than-expected-current-consumption

器件型号:MSP432P401R

工具/软件:TI-RTOS

因此、我刚刚开始使用 TI-RTOS 并使用 MSP432P401R、电流消耗似乎有点高。 最初、我尝试使用 SPI 进行通信、但此时我要返回运行 SDK 中包含的"empty"示例、并尝试找出问题的原因。  

两个示例的症状相似、平均电流从大约2-3 mA 开始、大约一分钟后下降到大约1.1 mA。

CCS 版本: 7.2.0.00013  

SDK: simplelink_msp432_sdk_1_40_00_28

LaunchPad:MSP432P401R Launchpad (红色)

从 SDK 运行"empty"项目:

3分钟"空"跑步:

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

    Mandus、您好!

     默认情况下、器件 进入 LPM0 (空闲时)而不是 LPM3。 因此、您可能需要查看电源深度示例。

    或者、您也可以将以下代码添加到项目中:

    void enableDeepSlepMode_LPM3 (void)
    {
    /*将所有 GPIO 置于最低功耗配置中。 这是通过 MSP432特定的 driverlib 访问来完成的*/
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PA、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PB、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PC、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PD、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PE、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PJ、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PA、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PB、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PC、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PD、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PE、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PJ、PIN_ALL16);
    
    /*关闭 PSS 高侧监控器以在深度睡眠后降低功耗*/
    MAP_PSS_disableHighSide();
    
    /*选择 PowerMSP432_depSlepPolicy 以启用转换
    *进入 PowerMSP432_DeepSlep_0 (LPM3)状态
    *
    power_setConstraint (PowerMSP432_disallow_DeepSlep_1);
    power_setPolicy ((Power_PolicyFxn) PowerMSP432_deSlepPolicy);
    
    /*有关从低功耗模式唤醒的唤醒源、请参阅器件数据表
    * PowerMSP432_DeepSlep_0
    */
    } 

    请确保在 mainThread 中将此函数作为初始化函数的一部分进行调用。

    此外、请参阅器件数据表、了解从低功耗模式唤醒源以从 PowerMSP432_DeepSleep 0 (LPM3)唤醒的情况、因为在运行此代码(在空项目中)后、您会注意到器件不会唤醒、请查看此 wiki processors.wiki.ti.com/.../TI-RTOS_MSP432_Timer  

    您能否向我们提供 有关您计划实现的功率数的更多信息? 如果可能、请向我们提供有关此代码的用例是什么的更多信息?

      谢谢、

      David

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

    要添加到 David 的注释中、还必须确保移除连接调试器的跳线、以确保只有 MSP432消耗功率。

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

    按照 wiki 示例并使用您的代码、它似乎按预期工作(电流消耗显著降低)。 为了在 Task_sleep()上获得一个更大的分辨率,我必须减少 WDT 时钟分频器。

    使用案例只是简单地使用 TI-RTOS 以特定的间隔唤醒并执行 SPI 传输并测量电流消耗。 在这种情况下、为了降低总体功耗、我还可以做些什么吗?

    至于跳线、在测量电流消耗之前已将其移除。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mandus、您好!

    [引用 user="Mandus Borjesson"]在这种情况下、我是否可以额外做些什么来降低总体功耗? [/报价]

     您可以尝试几种操作。

    1.活动时间与 CPU 速度-始终存在折衷、这将取决于您的要求、但您始终可以尝试 降低 CPU 速度。

    -默认情况下(TI-RTOS)、initalPerfLevel 为2 (具有 VCORE1的 DCDC、请查看数据表以了解有关 DCDC 与 LDO 以及 VCORE0与 VCORE1的更多信息)

    CONST PowerMSP432_ConfigV1 PowerMSP432_CONFIG ={
    policyInitFxn =&PowerMSP432_initPolicy、
    policyFxn =&PowerMSP432_sleepPolicy、
    .initialPerfLevel = 2、 
    /*电平 MCLK (MHz) HSMCLK (MHz) SMCLK (MHz) ACLK (Hz)
    *-- ------ ------ ------ ------
    * 0 12. 3. 3. 32768
    * 1 24 6. 6. 32768
    * 2. 48 24 12. 32768
    * 3. 48 48 24 32768
    */
    

    因此、您可以使用不同的性能级别进行实验、或创建您的自定义级别。 请查看此帖子 e2e.ti.com/.../2220428

    2.提高 SPI 速度(这将缩短活动时间)

    希望这对您有所帮助。

     David