大家好!
我的应用 MCU 的峰值电流电源非常有限(最大值<500uA、理想情况下小于350uA)
现在我通常留在停止 ,然后唤醒并运行2MHz (足够我 MIPS 和 UART )
问题是 :当唤醒 MSPM0似乎要运行默认32MHz ,我看到我的电源在重压力下...
我怎么能做到这一点?
理想情况下 ,最好是 直接唤醒@2MHz :我可以使它和如何?
否则 有任何变通办法?
谢谢!
Br
卡洛
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.
大家好!
我的应用 MCU 的峰值电流电源非常有限(最大值<500uA、理想情况下小于350uA)
现在我通常留在停止 ,然后唤醒并运行2MHz (足够我 MIPS 和 UART )
问题是 :当唤醒 MSPM0似乎要运行默认32MHz ,我看到我的电源在重压力下...
我怎么能做到这一点?
理想情况下 ,最好是 直接唤醒@2MHz :我可以使它和如何?
否则 有任何变通办法?
谢谢!
Br
卡洛
您好、Carlo。
是的、退出 STOP 或 STANDBY 模式后、SYSOSC 默认会在32MHz 下启动。 如果您 按照第2.3.1.2.1节中的说明启用换档模式、时钟将从32MHz 开始、然后下降至4MHz。
若要启用换档、可以在初始化过程中使用此 driverlib 函数:
DL_SYSCTL_setSYSOSCFreq (DL_SYSCTL_SYSOSC_FREQ_4M);
使用此 driverlib 函数以及您可以看到的特定低功耗策略、当 MCU 从待机切换到运行时、SYSOSC 在短时间内为32MHz、然后降档至4MHz。
试一下、告诉我。
您好、Carlo。
我忘记指出一个重要部分。 如果任务(函数)是确定性的、与具有可变延迟(等待或轮询特定条件为真)的任务(函数)相比、您不会看到太大的改进。
我所说的确定性是指任务在没有中断、延迟或条件跳变的情况下重复相同的操作。 例如、只需将两个数字相加的函数。 每次执行任务时、都会花费相同的时间。
另一方面、如果函数被中断(由高优先级中断)或必须等待寄存器中的特定位清零(轮询)、此任务运行的时间可能会有所不同(非确定性)。
那么、这为什么很重要? 事实证明、当确定性任务在4MHz 上运行时、与在32MHz 上运行相比、功耗是相同/相似的。 您会想这是怎么可能的-一个32MHz 时钟比一个4MHz 消耗更多的功率。 原因是、与在32MHz 上运行的相同任务相比、使用4MHz 时钟执行的任务需要8倍的时间才能完成。 是的、4MHz 操作的功耗较低、但完成时间较长、因此在这种情况下无关紧要。
现在、这与非确定性任务不同。 如果一个任务进行轮询、或者有延迟、CPU 保持在激活状态、那么 CPU 在32MHz 上的功耗将比在4MHz 上高很多、所以您希望尽可能长地将其保持在4MHz 上。 见证差异?
因此、根据应用(任务)、您可能没有看到太大的改进。
附加的工程我实际上用于演示每个 MSPM0的电源策略的不同功耗、但添加了换档功能、以展示它有无能提供帮助。
e2e.ti.com/.../test_5F00_low_5F00_power_5F00_modes_5F00_LP_5F00_MSPM0L1306.zip