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.

[参考译文] MSP430FR2476:低功耗模式

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1475808/msp430fr2476-low-power-mode

器件型号:MSP430FR2476
Thread 中讨论的其他器件:ENERGYTRACE

工具与软件:

嗨、大家好、

#include
volatile unsigned int receivedData = 0;
int main (void){

//将所有未使用的引脚配置为输出、并将其设置为低电平
P1DIR = 0xFF;P1OUT = 0x00;
P2DIR = 0xFF;P2OUT = 0x00;
P3DIR = 0xFF;P3OUT = 0x00;
P4DIR = 0xFF;P4OUT = 0x00;
P5DIR = 0xFF;P5OUT = 0x00;
P6DIR = 0xFF;P6OUT = 0x00;
PADIR = 0xFF;PAOUT = 0x00;
PBDIR = 0xFF;PBOUT = 0x00;
PCDIR = 0xFF;PCOUT = 0x00;

WDTCTL = WDTPW | WDTHOLD;
PM5CTL0 &=~μ H LOCKLPM5;
CSCTL0_H = 0xA5;//解锁 CS 寄存器
CSCTL4 = SELA_1;
CSCTL0_H = 0x00;

P2SEL1 &=~(BIT6 | BIT5);//清除 P2SEL1中的位6和位5以将其设置为0
P2SEL0 |=(BIT6 | BIT5);//将 P2SEL0中的位6和位5设置为1


P1DIR |=位1;
P1SEL1 |=位1;
P1SEL0 &=~BIT1;


UCA1CTLW0 = UCSWRST;//将 eUSCI_A1置于复位状态
UCA1CTLW0 |= UCSSEL__ACLK;//选择 SMCLK 作为时钟源


//配置波特率
UCA1BRW = 1;// N 的整数部分
UCA1MCTLW =(0x25 << 8)|(11 << 4)| 1;

//将 eUSCI_A0从复位状态释放
UCA1CTLW0 &=~μ s UCSWRST;
UCA1IE |= UCRXIE;

TA0CCR0 = 32 - 1;
TA0CCR1 = 0;
TA0CCTL1 = OUTMOD_7;
TA0CTL = TASSEL__ACLK | MC__UP | TACLR;
__bis_SR_register (LPM3_bits |GIE);//进入 LPM3并启用全局中断

}


__attribute_((interrupt (USCI_A1_vector)))
void USCI_A1_ISR (void){
如果(UCA1IFG & UCRXIFG){//检查 RX 中断标志是否被置1
receivedData = UCA1RXBUF;
TA0CCR1 = receivedData;

}
}

这是我编写的用于使用 UART 控制 PWM 的代码。 当我检查电流时、 在 lpm3模式下、MSP430在没有任何负载的情况下消耗的2.055mA 是如此。 我想知道这是否是最低功耗。

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

    你将什么连接到 PWM 引脚?

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

    现在我还没有挂任何东西,但我只是想挂一个 LED  

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

    您也应该检查是否没有任何东西连接到其他引脚。 "驱动低电平"建议仅适用于未使用的引脚(我更希望用户指南中使用的是"未连接"一词)。

    如果您使用的是 Launchpad、请 移除 J101 (桥接接头)上 的 RXD 和 TXD 跳线以及 J9上的温度传感器跳线。  

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

    是的、我正在使用 LaunchPad、移除除 GND 之外的所有跳线、同时通过将仪表与 VCC 3.3引脚与跳线串联来检查电流、那时我得到的读数为2.055mA。 读取时、我尚未将任何内容连接到 GPIO 引脚、但这仍然是读数。 我想知道这些是否是目前使用量最低的情况。 我是不是做错了什么事?

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

    PADIR = 0xFF;PAOUT = 0x00;
    >PBDIR = 0xFF;PBOUT = 0x00;
    >PCDIR = 0xFF;PCOUT = 0x00;

    我建议您删除这些行。 它们(几乎)重复前6行、但意外地设置了 P2DIR=P4DIR=P6DIR=0x00。

    您的方法听起来是正确的、但您应该看到的更多像20uA (主要是 REFO)、因此我们在这里遗漏了一些内容。

    [编辑:还请仔细检查 J9。 安装此跳线将在 P1.1 (您的 PWM 输出)上设置总线冲突。]

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

    感谢您的答复。 是的、这是我使用的 REFO。 J9也会移除所有其他跳线。 我仍然不能理解这个问题。

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

    在我的 Launchpad 上、EnergyTrace [Free Run](自由运行)和我的电流表都声称此代码(减去这3行)需要~2uA 的电流[实际上小于我的预期值]。  

    我不确定我们的做法 有何不同。

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

    由于  TA0CCR1 = 30、您将得到多少? 也可以尝试一下。 这将是一个巨大的帮助。 非常感谢您的帮助。

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

    我在 TA0CCR1=30时得到相同的结果(让我不会感到奇怪)。我以前犯了一个错误;当 CCR1=30时、我会看到2mA。 我将看看我是否能找出一些东西。

    我建议您尝试 EnergyTrace (调试器:"tools->EnergyTrace"、然后是"Run"->"Free Run")、因为它提供的动态信息比电流表要多得多。

    [编辑记录的新神秘。]

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

    如果我将 TA0输出切换到 TA0.2 (P1.2)、则在 CCR2=30时得到~6uA [EnergyTrace]。

    显然、即使传感器未通电(移除 J9跳线)、P1.1上的温度传感器输出(电路)也会设置总线冲突。 我以前没有注意到这一点。  

    [编辑:更正了拼写错误。]