mega328p是什么单片机用的什么编程软件
意法半导体(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寄存器中),它对应于大约131.072 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( 0.001 );
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( 0.001 );
I2C1_Init();
}
睡眠模式(Sleep Mode)
睡眠模式是低功耗模式中最简单的一种,它以最省电的方式提供最短的唤醒时间。数据手册指出,在禁用所有外设且系统频率为16 MHz的情况下,将消耗约1 mA的电流。这远高于其他低功耗模式,后者可以实现微安或什至纳安的数量级。但是,唤醒时间几乎是最具竞争力的低功耗模式的十倍。表2显示了设备从每种低功耗模式唤醒并进入运行模式所花费的时间。唤醒时间的值取自数据表的表4。
表2:每种低功耗模式的唤醒到运行模式时间
在休眠模式下,所有外设继续运行时,仅内核停止运行。由于不必降低系统频率并且所有设备的外围设备都可以使用,因此这使进入睡眠模式几乎毫不费力。同样,退出休眠模式非常容易,因为在运行模式下可用的任何中断或事件都可以唤醒设备并以极低的延迟进行服务。因此,几乎在CPU处于自旋锁等待事件发生的任何情况下都可以使用睡眠模式。用户无需进入繁忙等待循环,只需执行WFI或WFE(取决于唤醒方法)即可暂停执行并节省功耗,直到再次需要内核为止。这
8051微控制
标准8051单片机内部有2个定时器/360问答计数器 分别是T0和T1。每个定时器有4种工作方式, 方式0:13位定时计数方式,最大计数值为2^13=8192,定时8192个机器周期。此方式已经不再用投装升艺飞业权了,是为了和以前的单片机兼容,学初者不用掌握。
铁电存储器FRAM的FRAM技术
Ramtron的FRAM技术核心是铁电。这就使得FRAM产品既可以进行非易失性数据存储又可以像RAM一样操作。
F-RAM芯片包含一个锆钛酸铅[Pb(Zr,Ti)O3]的薄铁电薄膜,通常被称为PZT(如图1)。PZT 中的Zr/Ti原子在电场中改变极性,从而产生一个二进制开关。与RAM器件不同,F-RAM在电源被关闭或中断时,由于PZT晶体保持极性能保留其数据记忆。这种独特的性质让F-RAM成为一个低功耗、非易失性存储器。
当一个电场被加到铁电晶体时,中心原子顺着电场的方向在晶体里移动,当原子移动时,它通过一个能量壁垒,从而引起电荷击穿。 内部电路感应到电荷击穿并设置记忆体。移去电场后中心原子保持不动,记忆体的状态也得以保存。FRAM 记忆体不需要定时刷新,掉电后数据立即保存,它速度很快,且不容易写坏。
F-RAM、ROM都属于非易失性存储器,在掉电情况下数据不会丢失。新一代ROM,像EEPROM(可擦可编程只读存储器)和Flash存储器,可以被擦除,并多次重复编程,但它们需要高电压写入且写入速度非常慢。基于ROM技术的存储器读写周期有限(仅为1E5次),使它们不适合高耐性工业应用。
F-RAM比一般串口EEPROM器件有超过10,000倍的耐性,低于3,000倍的功耗和将近500倍的写入速度(图 2)。 F-RAM结合了RAM和ROM的优势,与传统的非易失存储器相比,具有高速、低功耗、长寿命的特点。
FRAM存储器技术和标准的CMOS制造工艺相兼容。铁电薄膜被放于CMOS base layers之上,并置于两电极之间,使用金属互连并钝化后完成铁电制造过程。
Ramtron 的FRAM 记忆体技术从开始到现在已经相当成熟。 最初FRAM 记忆体采用二晶体管/ 二电容器的( 2T/2C) 结构,导致元件体积相对较大。 最近发展的铁电材料和制造工艺不再需要在铁电存储器每一单元内配置标准电容器。 Ramtron 新的单晶体管/ 单电容器结构记忆体可以像DRAM一样进行操作,它使用单电容器为存储器阵列的每一列提供参考。与现有的2T/2C结构相比,它有效地把内存单元所需要面积减少一半。新的设计极大的改进了die leverage并且降低了FRAM存储器产品的生产成本。
Ramtron公司现采用0.35微米制造工艺,相对于现有的0.5微米的制造工艺而言,这极大地降低芯片功耗,提高了成本效率。
这些令人振奋的发展使FRAM在人们日常生活的各个领域找到了应用的途径。从办公复印机、高档服务器到汽车安全气囊和娱乐设备, FRAM 使一系列产品的性能得到改进并在全世界范围内得到广泛的应用。