历史上的今天
返回首页

历史上的今天

今天是:2024年11月20日(星期三)

正在发生

2019年11月20日 | STM8L051之低功耗停机配置问题

2019-11-20 来源:eefocus

在做stm8L的小一个项目,由电池供电,当按键长按关机,系统进入停机模式,虽然系统运行的时候有十几毫安的电流消耗(还没使用RTC定时唤醒),但是在停机模式下电流消耗竟然还有1.33ma的电流,花了半天的时间找资料,看文档,在网上看到不少大牛能做到0.4ua,自己无论如何设置IO,外设都无补于事,停机模式下电流最低还有1ma。 


最后只能将开机初始化的外设函数一个一个注释掉,包括ADC,DMA,beep,以及TIM4,最后发现只注释掉ADC的初始化函数,再进入停机模式,果然电流接近0,5ua,也就是说可能ADC模块在进入停机模式前的关闭设置不正确,之前的是这样的:

void PerCLK_OFF()


  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE);

  ADC_DeInit(ADC1);

  CLK_PeripheralClockConfig(CLK_Peripheral_RTC,DISABLE);

  RTC_DeInit();

  CLK_PeripheralClockConfig(CLK_Peripheral_DMA1,DISABLE);

  DMA_DeInit(DMA1_Channel0);

  CLK_PeripheralClockConfig(CLK_Peripheral_BEEP,DISABLE);

  BEEP_DeInit();

  CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,DISABLE);

  TIM4_DeInit();

}  


修改之后是这样的:


void PerCLK_OFF() 

ADC_DeInit(ADC1); 

CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE); 

RTC_DeInit(); 

CLK_PeripheralClockConfig(CLK_Peripheral_RTC,DISABLE); 

DMA_DeInit(DMA1_Channel0); 

CLK_PeripheralClockConfig(CLK_Peripheral_DMA1,DISABLE); 

BEEP_DeInit(); 

CLK_PeripheralClockConfig(CLK_Peripheral_BEEP,DISABLE); 

TIM4_DeInit(); 

CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,DISABLE);


“`


也就是将外设寄存器恢复初始值之前,不能关闭外设时钟,等到外设寄存器初始化之后,关闭外设时钟,模块才能关闭。原因这里先不做深究,先把项目完成再说。

 

另外IO在停机之前设置位推挽输出低。


推荐阅读

史海拾趣

Dialog Semiconductor(戴乐格半导体)公司的发展小趣事

Dialog Semiconductor在电源转换技术方面取得了重要突破。公司成功将氮化镓(GaN)技术应用于电源转换器中,推出了基于氮化镓技术的电源转换产品。氮化镓技术以其高速和低功耗的特点,为电源转换器带来了更高的效率和更小的尺寸。这一技术突破不仅推动了Dialog Semiconductor自身的发展,也为整个电子行业带来了重要的影响。

BVLED公司的发展小趣事

随着公司规模的扩大和业务范围的拓展,BVLED公司开始注重产业链的整合和成本控制。公司通过与上游供应商建立长期稳定的合作关系,确保了原材料的稳定供应和质量保障;同时,公司还加强了对生产过程的监控和管理,通过优化生产流程和降低能耗等方式降低了生产成本。这些措施使得公司在激烈的市场竞争中保持了较强的竞争力。

创世(CS)公司的发展小趣事

作为一家有社会责任感的企业,创世公司始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,创世公司还积极参与社会公益活动,为社会和环境贡献自己的力量。这种对社会责任的关注和担当使得创世公司在电子行业中树立了良好的形象。

Echelon_Corporation公司的发展小趣事

Echelon Corporation于1988年在美国加州成立,其初衷是开发和推广先进的通信和控制技术。在成立初期,Echelon便推出了其标志性的LonWorks控制网络平台。该平台采用了开放的通信协议,使得不同厂商的设备可以无缝连接和通信,为工业自动化、建筑自动化等领域带来了革命性的变化。LonWorks平台的成功推出,为Echelon在电子行业奠定了坚实的基础。

Amphenol Aerospace公司的发展小趣事

进入21世纪后,Echelon继续拓展其业务范围,于2003年推出了网络能源服务系统(NES)。该系统是一个开放式的电表基础设施,旨在提高能源使用效率和管理水平。NES系统很快在全球范围内得到了广泛应用,特别是在意大利的智慧型电表基础建设中,Echelon的技术得到了大量使用,连接了数以千万计的电表。随着NES系统的成功推广,Echelon在能源管理领域的地位得到了进一步提升。

EDSYN公司的发展小趣事

Econais的超低功耗Wi-Fi模块在医疗保健领域取得了广泛的应用。通过连接医疗设备,如监护仪、血糖仪等,这些模块实现了患者数据的实时传输和监控,提高了医疗服务的效率和质量。同时,Econais还针对医疗保健领域的特点,提供了定制化的软件开发工具包(SDK),帮助客户快速开发符合行业标准的物联网应用。

问答坊 | AI 解惑

LM3S1138驱动库解析(二)

                           (二) 2 修改 2.1 工程文件结构 因为要把库driverlib.a用些.c文件代替掉, ...…

查看全部问答>

SHT21的使用

俺做一个大功率电源板  其中会使用铝基板还有散热器请问:使用sht21可以测铝基板和散热器的温度么 如果可以 怎么操作? 如果不行 有什么可替代的片子 。…

查看全部问答>

最近在学Ardence RTX实时系统软件,有很多不懂的地方,下面是一个定时器程序,不太明白?

  最近在学Ardence RTX实时系统软件,有很多不懂的地方,下面是一个定时器程序,不太明白?请路过大虾们帮忙看看。 下面是源代码,包括两个文件,一个头文件,一个源文件。如下所示: /////////////////////////////////////////////////////// ...…

查看全部问答>

wince emulator使用时出现错误:Cannot launch the remote executable

error:Unknown error. Win32 error code:126 提示我路径有问题,但路径如何设?我这里download directory已经设为\\ 还应该更改哪里,求教.…

查看全部问答>

drawtext 怎么无效?

如题,小弟要在一个对话框中显示很多文字,想用drawtext但老是无效, 代码如下,             PAINTSTRUCT ps;                      &nb ...…

查看全部问答>

请教:串口接收不对??

各位大侠,我用51单片机的串口接收数据 在开始的几秒内接收是正确的,可是过一会就接收不正确了,为甚呢?? 串口以9600的波特率一直在接收数据,是不是接收时间长波特率就乱了? void serial() interrupt 4 using 1    {   &n ...…

查看全部问答>

【求助】如何用f149输出五路波形

如何用f149输出五路波形 20k pwm波 20k 方波 2k 方波 5k pwm波 6hz 方波…

查看全部问答>

DSP

请教DSP开发程序设计技巧 ?…

查看全部问答>

由protel转为pads的软件

把自己的收藏给大家共享一下…

查看全部问答>

为啥我的程序进中断后,中断返回到程序开始处了?

用定时器做了个闪灯程序,定时器定时中断产生,进入中断服务程序,完成后却RETI到程序第一句处,这是为什么,就像按了RESET一样的效果…

查看全部问答>