STM32低功耗模式简介

合集下载

STM32使用说明

STM32使用说明

STM32使用说明STM32是一系列由STMicroelectronics公司开发的32位微控制器,它们集成了处理器核、存储器和外设,并能够在嵌入式系统中控制硬件设备。

STM32系列芯片为工业控制、汽车电子、消费电子等领域的各种应用提供了高性能和低功耗的解决方案。

下面将介绍STM32的使用说明,包括其主要特性、开发工具和开发流程。

首先,STM32微控制器的主要特性如下:1. 32位核心处理器:STM32系列采用ARM Cortex-M处理器,具有高性能和低功耗的特点。

2.多种型号选择:STM32微控制器有多种不同型号可供选择,包括主频、封装、存储容量等方面的差异,以满足不同应用的需求。

3.丰富的外设:STM32集成了丰富的外设,包括通用输入输出(GPIO)、通用串行接口(USART)、SPI接口、I2C接口、定时器和PWM 生成器等,可用于连接各种外部传感器和执行器。

4.低功耗模式:STM32支持多种低功耗模式,通过灵活地控制功耗,可以延长电池寿命或减少功耗。

5. 丰富的开发生态系统:STMicroelectronics为STM32提供了完整的开发工具链和开发文档,包括编译器、调试器、开发板和软件库等,方便开发者进行应用开发和调试。

其次,STM32的开发工具包括以下几个方面:1. STM32Cube软件套件:这是STMicroelectronics提供的一套软件工具,用于开发和配置STM32芯片。

它包括STM32CubeMX配置工具和STM32Cube库,可以帮助开发者生成初始化代码、配置外设和生成项目模板。

2. Keil MDK:Keil是ARM公司提供的一套开发工具,包括C编译器、调试器和集成开发环境(IDE),可以用于编写、编译和调试STM32的应用程序。

3. IAR Embedded Workbench:IAR是一家瑞典公司开发的嵌入式开发工具,包括C编译器、调试器和IDE,在STM32的开发中也有广泛应用。

STM32独立看门狗和低功耗模式_RTC定时唤醒来喂狗

STM32独立看门狗和低功耗模式_RTC定时唤醒来喂狗

STM32独立看门狗和低功耗模式_RTC定时唤醒来喂狗
在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起的故障,低功耗模式是为了在CPU不需要继续运行时进入到休眠模式用以节省电能。

其中独立看门狗的时钟由独立的RC振荡器(STM32F10x 一般为40kHz)提供,即使在主时钟出现故障时,也仍然有效,因此可以在停止和待机模式下工作。

而且独立看门狗一旦启动,除了系统复位,它不能再被停止。

但这样引发的一个问题是当MCU进入到低功耗模式后由于CPU停止运行无法喂狗,会导致系统频繁复位。

那如何解决这个问题呢,难道独立看门狗和低功耗模式没法同时使用?
一个很好的方式是在休眠模式下通过RTC定时唤醒来喂狗,喂完够在进入继续进入到休眠模式。

比如看门狗复位的时间间隔为10s。

那么在进入休眠模式前设置RTC闹钟中断时间为5s。

这样每隔5s唤醒一次喂一次狗。

便可以很好的解决这个问题。

while(1)
{
// 执行任务
Task1();
Task2();
// ..
// 喂狗
dev_iwdg_feed();
// 进入待机模式开关
if(m_bEnterStandByMode)
{
// 使能外部中断,GPIOB3,用以MCU从待机模式唤醒
dev_exTI_enable(TRUE);
ENTERSTOPMODE:
// 设置RTC闹钟,5秒钟产生一次RTC闹钟中断*/
dev_rtc_setAlarm(5);。

STM32简介

STM32简介



10、电压调节:调压器有3种运行模式:主(MR),低功耗(LPR)和 掉电。MR用在传统意义上的运行模式,LPR用在停止模式,掉电用在 待机模式。 11、低功耗模式:STM32F103xx支持3种低功耗模式。休眠模式:只有 CPU停止工作,所有外设继续运行,在中断/事件发生时唤醒CPU;停 止模式:允许以最小的功耗来保持SRAM和寄存器的内容。设备可以通 过外部中断线从停止模式唤醒。外部中断源可以使16个外部中断线之 一,或者RTC警告。待机模式:追求最少的功耗,在进入待机模式之 后,除了备份寄存器和待机电路,SRAM和寄存器的内容也会丢失。当 外部复位(NRST引脚),IWDG复位,WKUP引脚出现上升沿或者TRC警 告发生时,设备退出待机模式。进入停止模式或者待机模式时, TRC,IWDG和相关的时钟源不会停止。



4、嵌套矢量中断控制器(NVIC):可以处理43个可屏蔽中断通道 (不包括Cortex-M3的16根中断线),提供16个中断优先级。 5、外部中断/事件控制器(EXTI):外部中断/事件控制器由用于19 条产生中断/事件请求的边沿探测器线组成。每条线可以被单独配置 用于选择触发事件(上升沿,下降沿,或者两者都可以),也可以被 单独屏蔽。 6、时钟和启动:在启动的时候还是要进行系统时钟选择,但复位的 时候内部8MHz的晶振被选用作CPU时钟。可以选择一个外部的4-16MHz 的时钟,并且会被监视来判定是否成功。多个预比较器可以用于配置 AHB频率,高速ASB最高的频率为72MHz,低速APB最高的频率为36MHz。
STM32F103性能特点




内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,1.25MIPS/MHz。 单周期乘法和硬件除法。 存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器。 时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。 4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的 RC振荡电路。用于CPU时钟。带校准用于RTC的32kHz的晶振。 低功耗:3种低功耗模式:休眠,停止,待机模式。 调试模式:串行调试和JTAG接口。 DMA:12通道DMA控制器。支持的外设:定时器,ADC,DAC,SPI,IIC 和USART。 2个12位的uS级的A/D转换器(16通道):A/D测量范围:0-3.6 V。双 采样和保持能力。片上集成一个温度传感器。

STM32STM32的低功耗设计YunFeiRoboticsLaboratory云飞机器人实验室

STM32STM32的低功耗设计YunFeiRoboticsLaboratory云飞机器人实验室

STM32STM32的低功耗设计YunFeiRoboticsLaboratory云飞机器人实验室STM32 | STM32的低功耗设计Posted by automatic.dai on March 8, 2013 Leave a comment (0) Go to comments在谈到低功耗处理器时,我们第一个想到的总是MSP430,但其实STM32也能拥有不错的低功耗特性。

通过合理的进行软件设置,STM32在工作时的功耗可以降至数十mA,而待机功耗可以降到数uA。

总的来说,降低STM32功耗的方法主要有以下三种:1. 关闭不需要的外设时钟STM32的所有外设都可以独立开启和关断,通过将不需要的AHB/APB的时钟关闭,可以起到降低总待机功耗的作用。

各个模块的典型功耗如下所示:Figure 1. APB1外设的典型功耗Figure 2. APB2外设的典型功耗2. 降低主时钟的工作频率对数字电路而言,功耗是与主频呈正比的。

在进行一般任务时主动降低功耗,在需要高性能运算时再恢复到一般频率,通过这种方法可以显著降低设备运行期间的平均功耗,这也是目前很多电脑和手机的功耗优化方案之一。

Figure 3. CPU主频-功耗-温度的关系3. 进入休眠模式当设备不需要运行时,可将CPU切换至休眠状态。

STM32共有三种休眠状态,如下:Figure 4. STM32的休眠模式这三种模式下的典型功耗如下:Figure 5. Sleep模式下的典型功耗Figure 6. Stop和Standby模式下的典型功耗可见Standby模式功耗最低,在数个uA;其次是Stop模式,为数十uA;而Sleep模式的功耗最大,是其余两种模式的100倍。

那么既然Standby功耗最低,那么另外两种模式的意义又是什么呢?首先,这三种模式下的唤醒时间各不相同:Figure 7. 不同休眠模式下的启动时间其次,这三种模式的特性也不相同:·Sleep mode唤醒后程序继续运行CPU停止运行,但外设继续运行,IO状态保持不变唤醒时间最短,但功耗较大。

STM32低功耗做法

STM32低功耗做法

具体要点为:1、所有IO管脚,如果高阻状态端口是高电平,就设成上拉输入,如果高阻状态是低电平,设成下拉输入,如果高阻是中间状态,设成模拟输入。

这个很多人都提到过,必须的。

作为输出口就免了,待机你想输出个什么东西,一定要输,硬件上加上下拉就可以了2、两个晶振输入脚要remap成普通IO!!!使用内部晶振。

3、pwr的时钟要使能,即RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);这个也相当重要4、关闭jtag口,并设成普通IO;5、注意助焊膏的质量!!!注意电路板层之间是否进水!!!!掌握这几项要点,再设中断什么的都行,整个世界清静了!!!完全低能耗刚开始进入STOPMode后,整机功耗有300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置为低电平,而我们配置成了IPU,因此内部的40K上拉就会在这里消耗3/40k =75uA,另外将N.C的GPIO配置成Floating Input,也会有一些漏电流,实际测试漏电流不大;另外将STM32F05x直接PIINtoPIN替代STM32100,所以Pin35,36的PF6,PF7为之前的VCC,GND,因此要相应的配置为IPU,IPD,才不会有拉电流/灌电流;外部不使用晶振,因此必须将其配置为IPU/IPD或者输出Low,如果配置成Floating,实测消耗200uA+的电流,这个特别注意。

另外不需要关闭不用的外设的CLK,因为STOPMODE会将内部1.8V的core关闭,因此该步骤不影响功耗。

因此在进入STOPMODE之前,需要做:1、将N.C的GPIO统一配置为IPU/IPD;2、检查一些Signal的输入Active是High/Low,相应进行配置为IPD/IPU,即避免在内部上/下拉电阻上消耗电流,而且该电流理论值为VCC/R = 3/40 =75uA;3、如果外部晶振不使用,必须将GPIO配置为IPU/IPD/PPLow,不允许配置为floating,否则会消耗极大的电流200uA+;4*、加入进入STOPMODE前,不允许将PWR的CLK关闭,这部分牵涉低功耗模式,实际测试关闭能用,也能唤醒,但是电流会增加10uA+;5、配置GPIO为输出时,根据输出的常态选择上拉/下拉,如闲置输出为0,则配置为下拉,输出闲置为1,则配置上拉;6、另外特别说明的是->从Stopmode唤醒后,系统会自动切换到HSI,如果进入前使用的是外部晶振/PLL(PLL的clksource = HSI/HSE)因此必须调用System_Init(),对RCC重新初始化,否则唤醒后主频发生改变,会影响系统;STM32F103R8和RC的停机模式的休眠电流还不一样,R8停机模式实测为11UA,RC停机模式实测为30uA,还以为又是我的程序哪里没做好呢,仔细看了PDF,这两个芯片PDF上标的值的确有区别,和我测的值差不多,那我就没有再深究的意义了!结合下文的高手经验,反复摸索,standby模式1.9uA,PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); stop模式:11uA, PWR_EnterSTANDBYMode();实验证明,将IO端口设成IPU/IPD/AIN/PPOUT=1/PPOUT=0/ODOUT=0,电流是基本相同的,最可怕的就是GPIO浮空,且电路上未外接上拉下拉,这样电流就会比较大。

【STM32】电源控制、低功耗模式(实例:待机模式)

【STM32】电源控制、低功耗模式(实例:待机模式)

【STM32】电源控制、低功耗模式(实例:待机模式)STM32F1xx官⽅资料:《STM32中⽂参考⼿册V10》-第4章4.3⼩节低功耗模式STM32的电源控制STM32的电源框图STM32的⼯作电压(VDD)为2.0~3.6V。

通过内置的电压调节器提供所需的1.8V电源。

当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。

下⾯是STM32的电源框图:注意:框图中的VDDA和VSSA必须分别联到VDD和VSS。

独⽴的A/D转换器供电和参考电压为了提⾼转换的精确度,ADC使⽤⼀个独⽴的电源供电,过滤和屏蔽来⾃印刷电路板上的⽑刺⼲扰。

ADC的电源引脚为VDDA;独⽴的电源地VSSA。

如果有VREF-引脚(根据封装⽽定),它必须连接到VSSA。

同时,为了确保输⼊为低压时获得更好精度,⽤户可以连接⼀个独⽴的外部参考电压ADC到VREF+和VREF-脚上。

在VREF+的电压范围为2.4V~VDDA。

电池备份区域使⽤电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。

VBAT脚也为RTC、LSE振荡器和PC13⾄PC15供电,这保证当主要电源被切断时RTC能继续⼯作。

切换到VBAT供电由复位模块中的掉电复位功能控制。

如果应⽤中没有使⽤外部电池,VBAT必须连接到VDD引脚上。

电压调节器复位后调节器总是使能的。

根据应⽤⽅式它以3种不同的模式⼯作:运⾏模式:调节器以正常功耗模式提供1.8V电源(内核,内存和外设);停⽌模式:调节器以低功耗模式提供1.8V电源,以保存寄存器和SRAM的内容;待机模式:调节器停⽌供电。

除了备⽤电路和备份域外,寄存器和SRAM的内容全部丢失。

STM32的低功耗模式在系统或者电源复位后,微控制器出于运⾏状态之下,HCLK 很多单⽚机有低功耗模式,STM32也不例外。

在系统或者电源复位后,微控制器出于运⾏状态之下,提供时钟,内核执⾏代码。

STM32L4低功耗定时器(LPTIM)介绍

STM32L4低功耗定时器(LPTIM)介绍

• Timeout function for wakeup from low power modes
LPTIM Features (1/3)
• Up to 5 clock sources to achieve lowest power consumption
• APB clock • LP oscillators: LSE, LSI, HSI • External clock
LPTIM Features (2/3)
• Up to 3 configurable waveforms
• PWM waveform • One Pulse waveform • Set Once waveform
LPTIMx_ARR LPTIMx_CMP
60
POL = 0
PWM OnePulse SetOnce
• With configurable active edge: Rising edge, Falling edge and Both edges • When both edges configuration is chosen, an auxiliary clock source is needed with a frequency 4 times bigger, at least, than the external signal
Useful when LPTIM is clocked by a clock source different from APB
• Direction change interrupt; used by Encoder mode
Low Power Timer LPTIM
Microcontrollers Division – Application Support Solutions Team March 2013

STM32L4如何用闹钟唤醒待机模式

STM32L4如何用闹钟唤醒待机模式

STM32L4如何用闹钟唤醒待机模式STM32L4微控制器是一款低功耗型的微控制器,具有多种低功耗模式,包括待机模式。

待机模式是一种非常低功耗的模式,减少了系统的功耗和电池的消耗。

在待机模式下,微控制器处于最低功耗状态,只有少数外设处于工作状态。

为了实现在待机模式下使用闹钟唤醒,需要使用RTC(实时时钟)和唤醒时钟。

以下是在STM32L4微控制器上使用闹钟唤醒待机模式的步骤:第一步:配置RTCRTC是一个计时器和日历,可以配置为以低功耗模式运行,以实现在待机模式下仍然运行。

需要配置RTC的时钟源和时钟预分频器,以及闹钟的时间和日期。

可以使用STM32CubeMX工具来生成初始化代码,并进行配置。

第二步:配置唤醒时钟唤醒时钟是唤醒待机模式的时钟源,可以选择RTC时钟或者外部时钟。

需要配置唤醒时钟源的时钟频率和预分频器。

第三步:配置RTC闹钟唤醒RTC闹钟唤醒是通过比较RTC计数器的值和闹钟的时间来实现的。

需要设置闹钟的时间和日期,并使能RTC的闹钟中断。

可以使用RTC中断处理函数来处理闹钟中断。

第四步:配置待机模式需要将微控制器设置为待机模式,并选择所需的待机模式。

可以选择从WFI或WFE指令进入待机模式,然后在唤醒时钟中断发生时唤醒。

第五步:进入待机模式通过设置待机模式位,可以将微控制器设置为待机模式。

可以在主循环中或者其他适当的位置调用待机模式函数,以便在满足一定条件时进入待机模式。

例如,在任何其他可能导致系统空闲的地方,可以插入检查唤醒条件的代码,并在满足条件时调用待机模式函数。

第六步:处理唤醒中断当RTC闹钟的时间和日期与RTC计数器的值匹配时,将会发生唤醒中断,并从待机模式中唤醒。

可以在RTC中断处理函数中处理唤醒中断,例如重新配置RTC闹钟或恢复其他外设。

通过以上步骤,就可以实现在待机模式下使用RTC闹钟唤醒STM32L4微控制器。

这样可以大大降低系统的功耗,并在指定的时间唤醒系统进行相应的操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32低功耗模式简介
STM32F10xxx 有三中低功耗模式:●睡眠模式(Cortex?-M3 内核停止,外
设仍在运行)●停止模式(所有的时钟都以停止)●待机模式(1.8V 电源关闭)
时钟频率72MHz 时,从闪存执行代码,STM32 功耗36mA,是32 位市场上
功耗最低的产品,相当于0.5mA/MHz。

上电,默认使用内部HSI 时钟8M,经测试10mA 左右。

待机模式可实现系
统的最低功耗。

可将电流消耗降至两微安。

在待机模式下,所有的I/O 引脚处于高阻态,除了以下的引脚:●复位引脚
(始终有效)●当被设置为防侵入或校准输出时的TAMPER 引脚●被使能的唤醒
引脚
/*按钮GPIOB9 进入睡眠,WKUP pin(GPIOA0)唤醒,GPIOD3-LED 200ms
闪烁*/int main(void){ /* System Clocks Configuration
**********************************************/ RCC_Configuration();
GPIO_Configuration();
/* Enable PWR and BKP clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
/* Enable WKUP pin */ PWR_WakeUpPinCmd(ENABLE);
/* Allow access to BKP Domain */ PWR_BackupAccessCmd(ENABLE);
//RTC_Configuration();
EXTI_Configuration();
NVIC_Configuration();
SysTick_Config(SystemFrequency / 1000 *200 ); //200ms。

相关文档
最新文档