意法半导体(STMicroelectronics)的超低功耗MCU系列采用低泄漏技术和优化设计,以实现出色的低电流消耗,使其非常适合电池供电和能量收集应用。为了充分利用这些器件的低功耗功能,有必要知道可用的低功耗模式,如何配置它们以及最适合哪些任务。本文概述了STM32L053C8 MCU上的低功耗模式。但是,由于该系列的低功耗模式相同,因此可以使用任何STM32L0器件。 STM32L1系列和STM32L4系列还包括在超低功耗系列中。这些器件是性能更高的产品,具有更高级的内核,更多的内存和更多的外围设备。它们具有与L0系列相同的低功耗模式(对于L4系列,还具有一些其他功能),因此,本文也是从了解L4系列的好入门。图1摘自ST的宣传册之一,简要总结了L0、L1和L4系列的功能和优点。
图1:STM32超低功耗产品系列的比较
当使用ST的MCU进行任何工作时,应该有两个可用的文档。首先是参考手册,对于STM32L053C8,则是STM32L0x3参考手册。本文档包含有关STM32L0x3系列的详细信息,即如何使用存储器和外设集。有关产品线中特定设备的更多详细信息,例如引脚映射、电气特性和封装信息,应使用数据表作为参考。就低功耗模式而言,参考手册将明确详细说明如何进入和退出它们,而数据手册将专门定义外围设备的可用性、可能的唤醒源和电流消耗估算。
背景介绍
STM32L0基于Cortex-M0 +内核,这意味着其低功耗功能取决于该内核的电源管理功能。可以使用系统控制块中的系统控制寄存器(SCR)来配置这些功能。不幸的是,参考手册或数据表中都没有记录内核寄存器。 ST则为那些寻求有关Cortex-M0 +的简洁文档的人员提供了STM32L0系列Cortex-M0 +编程手册。有关Cortex-M0、M0 +和M1内核的完整文档,可以在《 ARMv6-M体系结构参考手册》中找到。这两个文档都有一个关于电源管理的部分,这是开始本主题的好地方。
图2:SCR寄存器位
如图2所示,SCR由三位组成:SEVONPEND、SLEEPONEXIT和SLEEPDEEP。 SEVONPEND(发送事件在待命状态)位允许中断进入待命状态以触发唤醒事件。请注意,如果未在NVIC中启用这些中断,则仍会产生唤醒事件,但不会输入ISR。有关未决中断,使能中断或一般而言NVIC的更多信息,请参见前述Cortex-M0 +手册中的“嵌套向量中断控制器”部分。 SLEEPONEXIT位提供了一个选项,可以在异常恢复后使处理器继续执行程序之前将处理器置于低功耗模式。对于仅需要唤醒服务中断的应用程序来说,这是理想的选择。最后,SLEEPDEEP位允许进入深度睡眠状态,而不是常规睡眠状态。利用Cortex-M0 +内核的芯片制造商可以确定这些状态下设备的确切性能。睡眠状态用作睡眠模式和低功耗睡眠模式的基础,而深度睡眠状态用作停止模式和待机模式的基础。
有三种方法可以在Cortex-M0 +上进入低功耗模式。第一种是使用WFI(等待中断)指令。顾名思义,如果设备由于该指令而进入低功耗模式,则中断(在NVIC中启用)能够唤醒设备。进入低功耗模式的第二种方法是执行WFE(等待事件)指令。这与WFI指令非常相似,但具有更大的灵活性。不仅可以通过扩展中断和事件控制器(EXTI)中配置的事件唤醒设备,还可以通过NVIC中禁用的中断(只要它们在相应的外设控制寄存器中启用)唤醒。已经提到了进入低功耗模式的第三种方法。通过将SCR中的SLEEPONEXIT位置1,异常返回将使设备进入低功耗模式,就像执行WFI指令一样。请注意,在所有这些情况下,仅当没有中断或事件挂起时才进入低功耗模式。由于不能保证WFI和WFE会中止程序执行,因此通常将它们称为“提示指令”。
值得一提的最后一个内核寄存器是PRIMASK寄存器。它仅包含一个可配置位PM(可优先中断屏蔽),如果将其设置为1,它将禁用所有具有可配置优先级的中断。如果首先需要将系统恢复到工作状态,这不仅可以用于执行原子 *** 作,而且可以延迟执行ISR。在详细说明停止模式的部分中将提供一个示例。
为了使程序员在开发C应用程序时轻松访问WFI和WFE指令,CMSIS-CORE标准提供了__WFI()和__WFE()函数。以下各节中的所有示例函数都使用__WFI()执行WFI指令并进入低功耗模式。另外,CMSIS不会直接提供对PRIMASK寄存器的访问,而是实现__disable_irq()和__enable_irq()函数,以便分别设置和清除PM位。为了检查PM位的状态,__ get_PRIMASK()函数将返回其当前状态。大多数IDE使将CMSIS驱动程序添加到项目变得非常简单。例如,在Keil中,请确保在包安装程序中安装了ARM :: CMSIS,并在创建新项目时在运行时环境管理器中仅检查“ CORE”包(在CMSIS组件)。
低功耗模式(Low-Power)
STM32L0器件实现了五种低功耗模式:低功耗运行模式、睡眠模式、低功耗睡眠模式、停止模式和待机模式。这些模式之间的差异可以用功耗,性能、唤醒时间和唤醒源来描述。如果对于这些参数中的每一个,将模式按从最佳(1)到最差(5)的顺序进行排序,则可以清楚地了解哪些取舍。一般而言,随着功耗的下降;性能下降,唤醒时间增加,唤醒源数量减少。表1总结了低功耗模式的排名。作为、示例,请考虑低功耗运行模式。它具有最佳的性能、最多的唤醒源,第二快的唤醒时间和第四低的电流消耗。
表1:基于各种工作参数的STM32L0低功耗模式的排列
在本节中,将很清楚如何得出这些排名。但是,重要的是要及早意识到它们仅在一般意义上是正确的。例如,停止模式完全有可能比低功耗睡眠模式消耗更多电流,这取决于它们的配置以及启用/禁用的外设。但是通常情况并非如此,因为停止模式对设备功能的限制远比低功耗睡眠模式所限制,以节省更多功率。
低功耗运行模式(Low-Power Run)
将其作为低功耗模式推销是相当诱人的,因为它节省能耗的主要方法是要求较低的系统时钟频率。将任何微控制器的时钟速度降低到千赫兹范围将极大地降低电流消耗,使其与普通睡眠模式相比更具竞争力。但是,通常不这样做的原因是,从长远来看,性能的降低以及静态电流消耗(不取决于时钟频率)会消耗更多的能量。取决于应用,即正在使用哪种睡眠模式或设备唤醒的频率,在较短的时间段内消耗更多的电流而不是在较长的时间段内消耗较少的电流可能更有效。 ST之所以可以将其分类为低功耗模式,是因为它们提供了将内部稳压器置于低功耗状态的能力。这将减少设备消耗的静态电流,从而将其对性能与总电流消耗之间的折衷影响降至最低。
为了将调节器切换到低功耗模式,必须满足两个条件。首先,调节器电压(VCORE)必须在2范围内。幸运的是,根据PWR_CR寄存器文档,这是调节器的默认配置。因此,除非利用器件的动态电压缩放功能,否则无需担心此先决条件。第二个条件是系统频率不超过fMSI范围1。根据MSIRANGE位的描述(在RCC_ICSCR寄存器中),它对应于大约131072 kHz的频率。在这种速度和功率水平下,USB,ADC和TSC(触摸感应控制器)外围设备不可用。更改系统频率后,必须重新初始化之前在运行模式下初始化的所有与频率相关的外围设备(USART、计时器等),以便继续正常运行。
与其他低功耗模式不同,CPU不会在低功耗运行模式下停止。这意味着它不是通过前面讨论的WFI / WFE指令输入的,而是通过设置PWR_CR寄存器中的LPSDSR(低功耗睡眠-深度/睡眠/低功耗运行)和LPRUN(低功耗运行)位来输入的。 。请注意,必须在设置LPRUN之前设置LPSDSR,在清除LPSDSR之前必须清除LPRUN,并且在进入任何其他低功耗模式之前应清除LPRUN。由于程序在低功耗运行模式下继续执行,因此该设备被软件“唤醒”,而不是局限于有限的一组中断或事件。只需清除LPRUN位并使系统频率恢复到全速,即可使系统返回运行模式。清单1显示了使用参考手册中概述的步骤进入低功耗运行模式的整个过程。清单2演示了当设备不再需要处于低功耗运行模式时如何重新进入运行模式。
清单1:进入低功耗运行模式的示例
void enter_LPRun( void )
{
/ 1 Each digital IP clock must be enabled or disabled by using the
RCC_APBxENR and RCC_AHBENR registers /
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
/ 2 The frequency of the system clock must be decreased to not exceed the
frequency of f_MSI range1 /
Config_SysClk_MSI_131();
// Reinitialize peripherals dependent on clock speed
USART1_Init();
SysTick_Init( 0001 );
I2C1_Init();
/ 3 The regulator is forced in low-power mode by software
(LPRUN and LPSDSR bits set ) /
PWR->CR &= ~PWR_CR_LPRUN; // Be sure LPRUN is cleared!
PWR->CR |= PWR_CR_LPSDSR; // must be set before LPRUN
PWR->CR |= PWR_CR_LPRUN; // enter low power run mode
}
清单2:进入运行模式的示例
void enter_Run( void )
{
/ Enable Clocks /
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
/ Force the regulator into main mode /
// Reset LPRUN bit
PWR->CR &= ~( PWR_CR_LPRUN );
// LPSDSR can be reset only when LPRUN bit = 0;
PWR->CR &= ~( PWR_CR_LPSDSR );
/ Set HSI16 oscillator as system clock /
Config_SysClk_HSI16();
// Reinitialize peripherals dependent on clock speed
USART1_Init();
SysTick_Init( 0001 );
I2C1_Init();
}
睡眠模式(Sleep Mode)
睡眠模式是低功耗模式中最简单的一种,它以最省电的方式提供最短的唤醒时间。数据手册指出,在禁用所有外设且系统频率为16 MHz的情况下,将消耗约1 mA的电流。这远高于其他低功耗模式,后者可以实现微安或什至纳安的数量级。但是,唤醒时间几乎是最具竞争力的低功耗模式的十倍。表2显示了设备从每种低功耗模式唤醒并进入运行模式所花费的时间。唤醒时间的值取自数据表的表4。
表2:每种低功耗模式的唤醒到运行模式时间
在休眠模式下,所有外设继续运行时,仅内核停止运行。由于不必降低系统频率并且所有设备的外围设备都可以使用,因此这使进入睡眠模式几乎毫不费力。同样,退出休眠模式非常容易,因为在运行模式下可用的任何中断或事件都可以唤醒设备并以极低的延迟进行服务。因此,几乎在CPU处于自旋锁等待事件发生的任何情况下都可以使用睡眠模式。用户无需进入繁忙等待循环,只需执行WFI或WFE(取决于唤醒方法)即可暂停执行并节省功耗,直到再次需要内核为止。这
MEGA珍藏系列代表为高端潮玩收藏品,旨在打造收藏级别的高端艺术家潮流玩具。
收藏品分为自然历史、艺术历史、人文历史和科普历史四类,具体分为文物类、珠宝、名石和观赏石类、钱币类、邮票类、文献类、票券类、商标类、徽章类、标本类、陶瓷类、玉器类、绘画类。应该说收藏是一门艺术,更是一门学问。
由于收藏品种类繁多,如何科学收藏、科学定位、科学保存、科学分类非常重要。本文重点说一说分类问题,其他方面等日后的专题文章进行阐述。从目 前来说,对于收藏品的分类还没有形成很权威的定义和说法,有待于热衷于收藏的同仁们进一步研究和探讨。
但笔者在与藏友、专家、学者交流探讨,以及翻阅有关资料,并从中国民间私人藏馆和历史学的角度看,比较趋同的收藏品分类大致可为自然历史、艺术历史、人文历史和科普历史四大类。
藏品用途
1、作为保值增值的投资途径。随着经济的通货膨胀,老百姓手中的钱不值钱了,于是大家就会想要做投资。除了股市、房地产、实业等,收藏品行业也被炒的异常火热。
2、作为居家的装饰品。把外表精美,又价值连城的艺术品放在家里是不是一种享受呢?既体现了主人公的艺术品位,又让来客身心苏畅,宛如置身于一座博物馆一样。
3、作为馈赠的佳礼。逢年过节、生日办事,收藏品既方便又具有巨大的价值。
以上就是关于mega328p是什么单片机用的什么编程软件全部的内容,包括:mega328p是什么单片机用的什么编程软件、mega珍藏代表什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)