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.

[参考译文] MSP430FR2111:如何实现最低功耗?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/950843/msp430fr2111-how-to-achieve-lowest-power-possible

器件型号:MSP430FR2111

大家好、

下面是简单代码。 基本而言、我正在等待按钮被按下。 在深度睡眠时、我仍能获得16uA 的电流。

在深度睡眠模式下、如何实现亚微安级功耗? LPM4_BITS 在外部中断上工作吗?

在 MSP430不执行任何操作时、还有其他降低功耗的想法吗?

谢谢大家。

#include 

int main (void)
{
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
P1DIR = 0xFF;
P1OUT = 0x00;
P2DIR = 0xFF;
P2OUT = 0x00;
//配置 GPIO
P1OUT &=~BIT0; //清除已定义加电状态的 P1.0输出锁存器
P1DIR |= BIT0; //将 P1.0设置为输出方向

P1OUT |= BIT3; //将 P1.3配置为上拉
P1REN |= BIT3; // P1.3上拉寄存器使能
P1IES |= BIT3; // P1.3高/低边沿
P1IE |= BIT3; // P1.3中断被启用

//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;

P1IFG &=~BIT3; // P1.3 IFG 被清零

while (1)
{
_bis_SR_register (LPM3_bits | GIE);//输入 LPM3、带中断
//_delay_cycles (10000); //延迟100000 *(1/MCLK)=0.1秒
//P1OUT |= BIT0; // P1.0 =切换
//__delay_cycles (100000); //延迟100000 *(1/MCLK)=0.1秒
//P1OUT &=~BIT0;

}
}

#pragma vector=Port1_vector
__interrupt void Port_1 (void)
{
P1IFG &=~BIT3; //清除 P1.3 IFG
__BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);//退出 LPM3
}

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

    1) 1)引脚中断可从 LPM4中唤醒。 [参考数据表(SLASE78C)第6.11.3] LPM4是一个好主意、因为 REFO 需要10-20uA 的电流。

    2) P1.3 (您的按钮)似乎是输出。 应通过清除相应的 P1DIR 位将其作为输入。

    3) 3)您应该在清零 LOCKLPM5后设置 P1IE。 [参考用户指南(SLAU445I)第8.3.1节。

    [编辑:我忘了提及 REFO。]

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

    非常感谢 Bruce 的出色建议。

    :-)