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.

[参考译文] CCS/MSP430FR2311:具有 VLO 和 RTC 的 LPM3上的 MSP430FR2311 EnergyTrace 大于100uA

Guru**** 2782445 points

Other Parts Discussed in Thread: ENERGYTRACE, MSP-EXP430FR2311

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/902708/ccs-msp430fr2311-msp430fr2311-energytrace-on-lpm3-with-vlo-and-rtc-is-more-than-100ua

器件型号:MSP430FR2311
主题中讨论的其他器件:ENERGYTRACEMSP-EXP430FR2311

工具/软件:Code Composer Studio

尊敬的所有人:

 在 LPM3下、通过 VLO 使用 RTC 时钟、EnergyTrace 的最小电流为0.1031ma。 显示为附加文件。

 我希望在 LPM3下电流消耗小于5uA。   有可能吗?

 p1.0作为数字输入、p1.1模拟输入、p1.2~4不使用、p1.5~7由三人使用。

 p2.0~6为数字输出、p2.5~6为低电平有效。 P2.7是数字输入。  

在进入 LPM3之前、所有相对寄存器显示如下:

我不知道问题的原因是什么?

此致;

胡国兴

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

    您好、Marshall、

    是的、我同意电流过高。

    首先、任何未使用的引脚都不应悬空(输入引脚)、而应配置为输出引脚。 您似乎已正确设置 GPIO 引脚。  很好!

    接下来、让我们执行一项测试、以查看电流电平是否符合我们的预期。  在代码中、配置 GPIO 后、您是否可以进入 LPM3模式?  这将强制 CPU 和所有时钟停止。  使用能量迹线测量电流。  如果测量值为~1-2uA、则到该点为止一切都很好。  如果电流仍然为高电平、则 GPIO 配置有问题。

    那么、您是否可以尽可能减小代码的大小、但仍能演示问题并发布给我以供查看?

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

    CSCTL4=0x0100、即 SEL_REFOCLK。 REFO 本身约为20uA。

    我记得 、您无法在 FR2311上设置 ACLK=VLOCLK、但可能值得尝试 LPM4 (ACLK 关闭)以查看您得到的结果。

    [编辑:此外、PMMCTL2:INTREFEN=1、这是相当昂贵的。 我在数据表中找不到规格、但我的其中一个计划中关于 INTREFEN 的评论说"内部参考成本为60uA?" 那么、我假设我测量了它。 您可能会尝试在 LPM 期间将其关闭。]

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

    尊敬的 Dennis Lehman:

      非常感谢您的快速响应。

      实际上、main.c 是从 MSP-EXP430FR2311的开箱即用版本中修改的。

      我重建了 GPIO 并使用 REFOCLK=>ACLK 的 Timer_B 时钟来休眠。

     现在,电流消耗最小值= 0.045ma, 它是正确的吗?

     稍后、我将停止计时器 B 并通过 VLOCLK 启动 RTC 时钟以实现休眠唤醒。

     此致;

      胡国兴

     2020/05/07

     e2e.ti.com/.../main_5F00_EnergyTrace_5F00_test.pdf

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

    尊敬的 Bruce McKenney:

     非常感谢您的宝贵建议。 对于电池供电设备、60uA 的成本相当高。

      我稍后会尝试。

      再次感谢你。

      此致;

      胡国兴  

      2020/05/07

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

    尊敬 的 Dennis Lehman 和 Bruce McKenney:

     我已经简化了主程序并移除了 p1.4上的一个接地电阻。

     此外、改变睡眠 TRIG 方法、一种是通过使用 ACLK (REFOCLK)的 TimerB0时钟、另一种是通过使用 VLOCLK 的 RTC 时钟。

     我还清零 SELA_REFOCLK。 但结果无法区分。

     在 VLOCLK 下、RTC 时钟下消耗的电流超过20uA。

      可能的原因是什么?  在 使用 VLOCLK 的 RTC 时钟下睡眠时是否可以禁用 REFOCLK? 以及如何实现?

     EnergyTrace 和简化的 main.c 如下所示:

       e2e.ti.com/.../main_5F00_Simple_5F00_DGIO.pdf

      

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

    您好、Marshall、

    根据数据表、FR2311具有一个"增强型时钟系统"、这意味着有一个 VLO 时钟源。  我在您的代码中看不到您设置它的位置。  VLO 的典型值约为2.5uA。 Bruce 对于 REFO 时钟电流是正确的、因此尝试 VLO 时钟。

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

    尊敬的 Dennis Lehman:

     在  main_Simple_DGIO.pdf 中,  

     我在 while (1)循环之前设置 RTC 例程。

     我将它(74 ~ 82行)标记为 TimerB 处于睡眠状态。  正确吗?

    74 /* ***用于 RTC 模式   

    75 RTC_INIT (RTC_BASE、0x2000、RTC_CLOCKDIVIDER_1);

    76 // RTC_setModulo (RTC_BASE、RTC_MOD);

    77 RTCCTL |= RTCSR;

    78 RTC_enableInterrupt (RTC_BASE、RTCIV_RTCIFG);

    79 RTC_START (RTC_BASE、RTC_CLOCKSOURCE_VLOCLK);

    80 TB0CTL = 0x0000;//停止定时器 B0

    81 CSCTL4 = 0x0000;//SELA = 0

    82 */

    83 while (1){

    84

    85 TmCnt++;

    86 // RTC_START (RTC_BASE、RTC_CLOCKSOURCE_VLOCLK);  //用于 RTC 模式

    87 //_ bis_SR_register (LPM3_bits + GIE);                    //用于 RTC 模式

    88  initSlepTimer (65535);                                //对于 TimerB 模式

    89  _bis_SR_register (LPM3_bits + GIE);                    //对于 TimerB 模式

    90  PM5CTL0 &=~LOCKLPM5;

    当 I Demark RTC 模式并标记 TimerB 模式时、电流消耗几乎与显示的先前 EnergyTrace 数据相同。

     CSCTL4 = 0x0000;//SELA = 0   

    上述语句用于禁用 REFOCLK?

    此致;

    胡国兴

    2020/05/08

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

    尊敬的 Dennis Lehman:

     编程第74 ~ 81行用于初始 RTC 配置。

     我在第85行设置了断点以检查寄存器内容。

     SELREF = 0、SELA = 0、SELMS = 0如上所示,这是否意味着 REFO 被禁用?

     当我使用 VLOCLK 的 RTC 时钟并将 SELA 置为0时、在第85行断开以检查 SELREF = 0、SELMS = 0、SELA = 0、如上所示。

      它消耗的电流与 ACLK (REFOCLK)使用 TimerB 时钟的电流相同。

      这是否意味着 REFO 未被禁用?

     3.2.3说明将启用 REFO 条件。 如果所有条件都失败,会出现什么情况?  

     如果 REFO 消耗20uA、则可能是进入睡眠状态时电流消耗28uA 的原因。

     在用户指南中、我找不到禁用 REFO 的特定方法。

     从上面的寄存器内容中,您是否发现了我所犯的任何错误?

     我正在等待该电流消耗问题完成该项目。

     感谢您的帮助!

     此致;

     胡国兴

     2020/05/08

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

    设置 CSCTL4=0请求 SEL_XT1CLK、即32kHz 晶振。 从上下文来看、您似乎没有其中一个、因此我认为这意味着它将故障转移到 REFO、因此您可以返回您开始的位置。

    我的回忆是、FR2311上不提供 ACLK=VLOCLK、但我在此方面向 Dennis 报告。 如果可用、则为 SELA_2 [参考 UG (SLAU445I)表3-8]

    使用 LPM4 (而不是 LPM3)完全关闭 ACLK。 看起来 ACLK 是 REFO 的唯一用户、因此应将其关闭。 这意味着您将没有 TB0唤醒计时器、但您仍将有 RTC 来唤醒您。 这足够了吗? 我建议您只需尝试 LPM4 (将 TB0保持为禁用状态)、看看会得到什么结果。

    侧面注释:在 FR2476中、它们将 REFO 固定为仅需1-2uA。 我不知道此修复程序是否会将其重新添加到 FR2311的更高版本中。

    [编辑:少量澄清。]

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

    您好、Marshall、

    我忘了提到一件事。  如果您在调试模式下运行并使用 EnergyTrace、由于调试接口正在运行、您将看到额外的16uA 电流。

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

    尊敬的 Dennis Lehman:

     感谢您的备注。

      我明白了。

     此致、

     胡国兴

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

    尊敬的 Bruse McKenney:

      感谢您的善意建议。

      我将尝试查看 RTC 是否应唤醒 LPM4?

      如果是、这对我来说将是完美的。

      再次感谢你。

      此致;

      胡国兴

      2020/05/09.

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

    尊敬的 Bruce McKenney:

       在调试模式下、我使用 LPM4代替 LPM3和通过 VLOCLK 的 RTC 时钟。 由 RTC 唤醒 LPM4。 它看起来工作正常。

      但从 FR2311数据表的表6-1可以看出。 LPM4 RTC 计数器和 VLOCLK 进入关闭状态、

      尽管 注意: 如果  低频外设要求 VLOCLK 在 LPM4期间可被激活。  

      我不确定 RTC 计数器在 LPM4期间每次都可以激活吗?

      Debug 下的 EnergyTrace 结果如下所示:

      

     如果正如 Dennis Lehman 所说、调试接口会消耗额外的16uA、对我来说似乎可以。

     感谢  Bruce McKenney 和 Dennis Lehman 的帮助。  

      此致;

      胡国兴

      2020/05/11

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

    我很确定表6-1中的条目不正确。 数据表(SLASE58E)第5.7节中的表格甚至包含该组合的条目。

    我在其中一个示例中看到了 LPM4+RTC+VLOCLK 这个想法、但我现在看不到它、所以我猜我自己把它弄成了个黑客。

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

    尊敬的 Bruce McKenney:

      我已尝试 LPM4+RTC+VLOCLK 正常工作。

      非常感谢您的善意帮助。

      此致;

      胡国兴

      2020/05/12.