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.

[参考译文] MSP430FR2310:LPM3电流

Guru**** 656470 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/1105916/msp430fr2310-lpm3-current

器件型号:MSP430FR2310
主题中讨论的其他器件:ENERGYTRACE

完整的 IC 模型是 msp430fr2310irgyr。我们有一个使用此模型的 LED 产品。 为了测试 lpm3的功耗、我们删除了一些电路组件、最后将这些组件保留在下图中。 MCU 需要定期睡眠唤醒。 在睡眠的6S 期间、测试并确认所有 P1和 P2引脚输出0V、总电流约为16.5ua、电压(-v 和+v)为3V。 我从手册中了解到电流应该大约为1.1安。 我使用 TI 提供的演示程序进行测试。 程序的哪一侧设置不正确? 请提供一些建议。

#include

void Init_GPIO (void);
unsigned char ucMode = 8;
int main (空)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

//配置 GPIO
init_gpio();

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

_bis_SR_register (SCG0);//禁用 FLL
CSCTL3 |= SELREF_REFOCLK;//将 REFO 设置为 FLL 基准源
CSCTL0 = 0;//清除 DCO 和 MOD 寄存器
CSCTL1 &=~(DCORSEL_7);//首先清除 DCO 频率选择位
CSCTL1 |= DCORSEL_5;//设置 DCO = 16MHz
CSCTL2 = FLLD_0 + 487;// DCOCLKDIV = 16MHz
_DELAY_CYCLES (3);
_BIC_SR_register (SCG0);//启用 FLL
while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));// FLL 锁定
CSCTL4 = SELMS_DCOCLKDIV | SELA_REFOCLK;//将默认 REFO (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
//默认 DCOCLKDIV 为 MCLK 和 SMCLK 源

//配置 RTC
RTCMOD = 60-1;//每10*1000*(1/10kHz)=~1S 发生一次中断和复位
RTCCTL |= RTCSS_VLOCLK | RTCSR |RTCPS_1000;
RTCCTL |= RTCIE;

while (1)

CSCTL5 |= DIVM_1;// MCLK = 0.5* DCOCLKDIV = 8MHz -仅当 LPM3进入和 LPM3退出时温度发生显著变化
_bis_SR_register (LPM3_bits | GIE);//输入 LPM3、停止所有时钟
__no_operation();//进行调试

// RTC 中断服务例程
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=RTC_vector
_interrupt void RTC_ISR (void)
#Elif Defined (_GNU_)
void __attribute__((interrupt (RTC_vector))) RTC_ISR (void)
其他
错误编译器不受支持!
#endif

//配置 CS
_BIC_SR_register (SCG0);//启用 FLL
while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));// FLL 锁定

CSCTL5 &= DIVM_1;// MCLK = DCOCLKDIV = 16MHz -仅当 LPM3进入和 LPM3退出的温度显著变化时

开关(__evo_in_range (RTCIV、RTCIV_RTCIF))

案例 RTCIV_NONE:break;//无中断
案例 RTCIV_RTCIF:__BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);// RTC 溢出
//在 ti 上退出 LPM3
中断;
默认值:break;

空 Init_GPIO()

P1DIR = 0xFF;P2DIR = 0xFF;
P1REN = 0xFF;P2REN = 0xFF;
P1OUT = 0x00;P2OUT = 0x00;

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

    REFO 消耗约15uA [参考数据表 (SLASE58E)表5-7]。 表6-1引用的数字适用于使用 LFXT (32kHz 晶体)而不是 REFO。

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

    是否有任何方法可以通过使用 MCU 的内部时钟源(不使用外部32.768kHz)来降低睡眠电流? 我们的目标睡眠电流为3ua、我们希望每5秒唤醒一次。

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

    使用 LPM4而不是 LPM3会关闭 ACLK (请求 REFO)。 由于您(已经)将 VLOCLK 用于 RTC、因此您仍然可以以低得多的功耗实现唤醒[参考数据表(SLASE58E)第5.7节]。

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

    您好!

    对 Bruce 之前提到的 LPM4中的情况进行了细微更正、您将无法使用 RTC。 您需要的是 LPM3.5、这是您可以拥有 RTC 的最低功耗状态。 需要权衡唤醒时间和完全 复位至唤醒的需求。 因此您的代码必须处理它。  

    要坚持使用 LPM3并实现最低功耗、您需要添加一个外部低频晶体。  

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

    我对 Jace 犹豫不决、但是、RTC + VLO+LPM4对我来说很有用。 EnergyTrace 报告为0.6uA、这似乎与数据表第5.7节中的表格匹配。

    [完全披露:我使用的是 FR2311、而不是 FR2310、但它们共享数据表。]

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

    Bruce、您好!

    您所做的工作正常、但您并不是真正进入 LPM4。 您实际上进入了 LPM3、因为时钟请求系统保持 VLO、从而使 RTC 保持活动状态。 问题在于其他时钟请求也可能出现或处于待处理状态、因此您认为您获得的电流较低、但您没有。  

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

    尊敬的 Jace:

    我知道您描述的现象、但第5.7节中的表格中有一个"iLPM4、RTC、VLO"条目、这表明作者认为这种组合是"真实的"LPM4。 低于1uA 的测量结果表明 ACLK (REFO)未运行。  如前所述、我的 EnergyTrace 测量结果与第5.7节中的表格一致、即我们已经对此进行了演示。

    这似乎与数据表表表表6-1不一致、这表明数据表中存在矛盾。 表6-1可能不正确? 或者、这可能是"没有区别的区别"?

    通常、我只会让这种情况("同意不同意"对自相矛盾的信息)、但 我不想劝阻 Yu su 使用数据表中提供的明确正确的解决方案。 除非我没有什么东西?

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

    Bruce、您好!

    你说的是当前和公平的。 我唯一真正的区别是 LPM4禁用 ALCK、它可以驱动 RTC。 如表6-1所示、RTC 和 VLO 均关闭、但低频外设请求的情况除外。 这就是区别、因此 iw Ould 将我的第一条声明修改为明确请求 VLO + RTC 是降低功耗的有效用例。 不过、有些用户会受困于认为某些 LPM 是绝对的、因此我的第一句话更具一般性。  

    底线是、Yu Su 有一些不同的选项来降低其应用的功耗。 有时会有这么多的选择让人感到困惑:)