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.

[参考译文] MSP430FR5994:来自 LPM3的 DMA/FRAM 唤醒电荷

Guru**** 2553260 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/589577/msp430fr5994-dma-fram-wake-up-charge-from-lpm3

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

您好!  

我尝试了解数据表中的唤醒数字。 我从 LPM3唤醒的测量值大约为23nC、接近下图(但对额外的 FRAM 唤醒电荷有点困惑)。  

我已经编写了其他代码来使用 DMA 将字节从一个 RAM 位置传输到另一个 RAM 位置、从 LPM3使用 ALCK->TIMRB 来触发它。 除按下按钮外、没有中断。 IM、对于 M/SMCLK 使用8MHz。

我在18nC 左右测量以唤醒 DMA。 但我认为它会更低。 虽然、比较表1-2 (寄存器位)和表5-10 (唤醒电荷)中的 LPM0和 LPM3、它们唤醒之间的区别是重新配置 DCO/MCLK。 通用性是唤醒 CPU。  因此、从 LPM3的 DMA 唤醒电荷应该与 QWAKE (LPM3)- QWAKE (LPM0)相似、因为 DMA 必须唤醒/配置 DCO、请求总线时钟、但不会唤醒 CPU。

因此、预期的唤醒电荷为25-3.8=21.2nC:

                       预期 QWAKE (DMA)~ 21nC

我是否正确理解了这一点?

此外、基于下表的 LPM3唤醒时间(基于3个周期、因为我忽略每次传输的2个周期)将为5.375us。  8MHz 时 LPM3->有效的唤醒时间为6.85us。  

5.375/6.85 * 23nC = 18nC、这似乎也是一个很强的线索。  

我配置了 PJ.x 位来输出 SR 位。 它们不会改变、但我想这是预料之中的、DMA 会根据需要控制位来唤醒 DCO/MCLK 时钟? 用户指南指出 SCG1/0与器件相关、SCG1"例如"是 DCO 偏置使能、SCG0"例如"是 FLL 使能。 当然想知道、但在数据表中找不到任何内容。  

数据表图:

FRAM 唤醒= 16.5nC。

LPM0唤醒= 3.8nC

LPM3唤醒= 25nC

测量值(在不同频率(a)下测量平均电流、然后除以频率(1/s)、以获取每个事件的电荷(AS)):

LPM3唤醒~= 23nC  

DMA ~= 18nC (y 从下面截取)

谢谢。  

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

    我收到了你的问题。 我很快会回来。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常好,非常感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mickovich:

    有很多问题、如果我错过了一些问题、请回复。
    从 LPM3唤醒的时间"通常为6.85us。 但它可以达到9.912 us。 实际上、假设6.85是绝对值是不可接受的。 因此、请将其纳入您的计算中。
    2、DMA 将优先开启和配置 DCO/MCLK。 DMA 将不需要 CPU。
    3.额外的 FRAM 唤醒电荷与您的测试无关,因为您没有提到通过 FRAM 控制器禁用了 FRAM。
    4、LPM3与 LPM0之间的差异可能取决于您是否使用 SMCLK。
    就 SCG0和 SCG1而言、尽管数据表中没有提到任何相关内容、但我相信它们仍然是 FLL 和 DCO 偏置使能端。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Nima、

    非常感谢您的回答。

    很抱歉、对于冗长的问题、我的主要问题是 DMA 的预期唤醒电荷是多少

    我想知道我是否可以从表5-10中某些充电值之间的差异中得到这种估计值。

    FRAM 控制器。 我不确定'QWAKE-UP FRAM'是否是访问时所需的电荷。 未清除表5-10中的"FRAM ACTIVE (FRAM 有效)"定义。   即、在 LPM0-4表5-10中、显示" fram 处于活动状态"、但下面的 FPWR 说明表明它自动进入非活动状态。  

    我已经尝试过使用和不使用 FRPWR 集、测得的电流没有变化。

    FRPWR 位

    当器 件处于 AM (工作模式)时、FRAM 存储器功率由 FRPWR 位和 FRAM 访问控制。 当 FRPWR 被置位时、FRAM 存储器处于激活模式。 当 FRPWR 由 CPU 清零时、FRAM 存储器进入非活动 模式、以便 FRAM 存储器不会消耗功率。

    如果在很长时间内不需要 FRAM 访问、则可以使用非活动模式。 一旦 FRAM 存储器处于非活动模式、唤醒将自动进行。 对 FRAM 的访问(读取或写入)将在执行访问之前唤醒 FRAM 存储器。 在这种情况下、FRPWR 位由 FRAM 控制器自动置位。

    当器件进入 LPM0/1/2/3/4模式时、无论 FRPWR 位状态如何、FRAM 存储器也会进入非激活模式。 当器件从 LPM0/1/2/3/4唤醒时、如果 FRPWR 被置位、FRAM 存储器将立即上电(工作模式)、但如果 FRPWR 位被清零、FRAM 存储器将保持非活动模式、直到 FRAM 存储器被实际访问(读取或写入)。 后一种情况可用于在器件仅在短时间内唤醒时节省器件功耗、唤醒期间的任务可从 RAM 执行、因此无需 FRAM 访问。  

    4.我没有设置任何外设使用的 SMCLK、并且打开了 EnergyTrace、但没有显示它唤醒。  

    此致、

    Michael。

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

    尊敬的 Mickovich:

    当您进入 LPM 模式时、FRAM 将进入非活动模式;当您唤醒时、如果清除 FRPWR、除非您使用 FRAM、否则 FRAM 将不会唤醒。

    我们没有针对 DMA 唤醒电荷的测量。 它应该在您的侧面进行测量、并且根据我在计算中看到的结果、它与我们在数据表中提供的唤醒电荷相匹配。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Nima、
    为了确认、您是否意味着我假设 DMA 唤醒应该与 QWAKE (LPM3)类似- QWAKE (LPM0)是正确的? 或者、您是指您在数据表中提供的其他费用。

    我在 FRAM 上仍然不清楚、如果它不会被唤醒、除非被使用-唤醒是否会对表5-10中的 Qlpm0-3充电、而不包括与 FRAM 有关的任何内容? 也就是说、他们说" FRAM 处于活动状态"、但这实际上意味着"没有 FRAM 唤醒"?

    我只想100%确定、如果我在代码中未设置任何内容、则可以进一步降低 DMA 唤醒电荷。
    解释表5-10的另一种方法可能是 DMA 唤醒应是 QWAKE (LPM3)- QWAKE (LPM0)- QRAM ~= 4.7nC、如果这些图表包括 Qlpm0-3的数据包括 FRAM 唤醒?

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

    根据我对低功耗模式和 FRAM 的理解、DMA 的唤醒电荷应类似于 QWake (LPM3)- QWake (LPM0)。 在 FRAM 处于活动状态时使用 QWAKE (LPMx)、使唯一的变量为 LPM0和 LPM3之间的差异(这将包括 DMA)。 我同意您的初始计算、前提是您考虑到这些值是"典型"值、并且可能更高或更低。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Nima、

    感谢你的帮助。  我很欣赏这些典型值、只是想了解它的工作原理。  

    因此、我的 DMA 电荷要低得多。 之前、我在初始化中清零 FRPWR 位。 但 CPU 通过任何 FRAM 访问(即唤醒和运行代码)再次对其进行设置。 我以为这只是一个"覆盖"、当我回到睡眠状态时、它会再次变为清零、但它不会。  因此、在我的测试代码中、只要我按下按钮更改某个内容、就会进行设置。 那么、似乎任何 DMA 唤醒都会激活 FRAM、即使它未使用。  

    我已经添加了代码来在每次睡眠前清除 FRPWR 位。  现在、DMA 唤醒的速度大约为3nC。

    [虽然不是100%清楚下一行(进入睡眠指令)不构成 FRAM 访问的原因、并再次清除 FRPWR 位。 我认为这与流水线/高速缓存有关?]

    谢谢、

    Michael。