历史上的今天
今天是:2024年12月19日(星期四)
2019年12月19日 | Stm8L系列单片机的低功耗
2019-12-19 来源:eefocus
Stm8L系列单片机的低功耗有五种模式:
wait模式
Low power run模式
Low power wait模式
Active-halt with full RTC模式
Halt模式
最低功耗的就是就是halt模式。这里也主要总结一下如何进入halt模式,进入以后可以通过什么方式唤醒,以及有很多客户会关心的如何自动唤醒。
Halt模式进入很简单,执行一条halt指令,调用库函数也就是halt()就行了。但是进入前要注意把所有的中断挂起标志给清除掉。要是不清零又恰巧有中断标志的时候进入该模式也会被立马唤醒。进入这种模式,所有的外设全都关闭了,所有时钟关闭。这时候它自己是醒不过来的,只能靠掐人中(给个外部中断)或者重新复活(重启复位)。当然这个在进入halt之前是要把中断引脚什么的该配置的给配置好了。
那现在有个问题就是在halt模式下只能通过外部中断和复位了,我需要它自动醒过来怎么办?那就在进入的时候定个闹铃了(打开rtc),到点了就要醒过来。既然开了闹铃了它也就不是纯halt模式了。这时候也就叫做active-halt模式。Active-halt模式下可以打开个rtc和lcd。这里要说明一下,在stm8s和stm8l101xx系列里面有AWU自动唤醒寄存器。
Halt模式下设置,达到0.4uA
I/O口设置,没有其它外设下,不用的IO口全部拉低输出,用到的IO口按使用情况设置,GPIO_Mode_In_PU_No_IT,与GPIO_Mode_In_Fu_No_IT,对GPIO的配置,功耗也是有差别的,各位各自去体会吧,哈哈。且主时钟默认是2MHz。
void GPIOInit(void)
{
GPIO_TypeDef GPIO_Struct;
GPIO_DeInit(&GPIO_Struct);
GPIO_Init(GPIOB,GPIO_Pin_0 | GPIO_Pin_3|GPIO_Pin_5 | GPIO_Pin_6,GPIO_Mode_Out_PP_Low_Fast);
GPIO_Init(GPIOB,GPIO_Pin_1 | GPIO_Pin_2| GPIO_Pin_7,GPIO_Mode_In_PU_No_IT);
GPIO_Init(GPIOB,GPIO_Pin_4,GPIO_Mode_Out_PP_Low_Fast);
GPIO_Init(GPIOD,GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 |GPIO_Pin_6 |GPIO_Pin_7 ,GPIO_Mode_Out_PP_Low_Fast);
//GPIO_ExternalPullUpConfig(GPIOC,GPIO_Pin_2 | GPIO_Pin_3,ENABLE);
//GPIO_Init(GPIOD,GPIO_Pin_6 |GPIO_Pin_7 ,GPIO_Mode_Out_PP_High_Fast);
GPIO_Init(GPIOC,GPIO_Pin_4,GPIO_Mode_In_PU_No_IT); //RF_IRQ
GPIO_Init(GPIOC,GPIO_Pin_0 | GPIO_Pin_6,GPIO_Mode_Out_PP_High_Fast); //MOSI 备用
GPIO_Init(GPIOC,GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5 | GPIO_Pin_7,GPIO_Mode_Out_PP_High_Fast);
GPIO_Init(GPIOA, GPIO_Pin_4|GPIO_Pin_5 |GPIO_Pin_6 , GPIO_Mode_In_PU_No_IT); //KEY
GPIO_Init(GPIOA, GPIO_Pin_0|GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3|GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Fast);
PD_ODR_ODR0=0; //oled_ce
}
int main( void )
{
asm("sim"); //全局中断关
GPIOInit(); //IO初始化
asm("rim"); //全局中断开启
CLK_DeInit();
PWR_UltraLowPowerCmd(ENABLE);
halt();
/*infinite loop begin*/
while(1);
此设置下STM8L151芯片功耗达到0.4uA,无其它外设的初始化
上一篇:STM8S之内外部16M晶振
史海拾趣
|
向量中断简介 ARM7中断体系介绍 上一次活动中,我们介绍了ARM7的时钟系统,这次活动介绍中断系统。这个两个系统是在以后的活动中,有很多的应用,同时这两个系统,也是ARM甚至是所有MCU的基础模块。 arm的VIC中断体 ...… 查看全部问答> |
|
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity decim_al2 isGeneric( num : integer range 0 to 1022 := 7; -- numerateur du rapport de decimatio ...… 查看全部问答> |
|
散分~系统启动速度提高一半了~俺用的是EP9315,64m的ram加32m的flash~,原来启动大概11秒,现在最多5秒~原因未明,待查找呵呵,心情不错,特来散分~… 查看全部问答> |
|
我刚开始上班,好多东西都不懂,经理把板子给我了.让我自己弄. 问其他同事,他们都说忙,好郁闷呀! 主机,ARM9开发板,ADS1.2集成开发环境,JTAG仿真器.都有了. 我下一步该做什么. 如果直接用Tornado 2.2 for pcPentium,然后和目标机这样连接可以吗? ...… 查看全部问答> |
|
只有一块空板,我什么芯片,元器件都没,书上有说哪里放什么器件,怎么放...开始买书的时候以为送的是完整的PCB开发板,还想照着书上的例子做做实验的,求大侠指点!!!… 查看全部问答> |
|
转让FREESCALE DSP56F807开发板 - 450元 去年在北京通特科技有限公司买的,我们公司是做电力系统保护的,本来是想把这款DSP好好研究下的,因为在电力系统中这款DSP用的比较多,后来因为赶上别的项目,换成了STM32F ARM7平台,所以就一直没时间弄了,只弄了不到一个星期,基本上是崭新的 ...… 查看全部问答> |
|
大惊喜!在EEWORLD的申请下,LaunchPad加送触摸板啦!! 各位参加“EEWORLD大学堂TI教室”认真学习并拿到LaunchPad的童鞋们,你们一定惊喜的发现还有一个触摸板在上面吧! 是个,这就是大惊喜! 由于你们的认真学习,不仅是我们能够看到的,反馈给TI同样也可以看得到!不仅我们感动,TI也很感动。 在EE ...… 查看全部问答> |




