您的位置 首页 电源

浅谈stm8l系列单片机的低功耗机制

浅谈stm8l系列单片机的低功耗机制-虽然MCU是停机了,但是电路板还有其他的芯片在工作,它们仍然在消耗电量,所以我们在停机前应该要把其他芯片给关闭(可以通过特定的指令或者片选线)。条件好的可以直接用切断它们的电源。

低功耗能够说是stm8l系列单片机的中心特征了。假定假定咱们有一个温度传感器设备,他处于某种很特别的当地,只能运用电池,并且咱们很难去替换,那么低功耗就显得尤为重要。那么持续假定咱们这个温度传感器不需求一向作业,只需求1小时收集一次数据就行了,也便是说,一个小时内,咱们这个传感器只作业1秒钟,那么剩余的59分59秒怎样办?或许有的同学就会说了,while(1)循环啊,这种答复就很没有灵性。都不需求作业了,咱们还关机不就行了,让它一小时发动一次,丈量完就持续关机。那么就能够让电池里的电物尽其用。stm8l就有一个停机指令halt(),履行这条指令后,内核时钟停止作业,就相当于关机了。

可是并不是停机了,整个电路中的电流耗费就到达了最小!

榜首:

尽管MCU是停机了,可是电路板还有其他的芯片在作业,它们仍然在耗费电量,所以咱们在停机前应该要把其他芯片给封闭(能够经过特定的指令或许片选线)。条件好的能够直接用堵截它们的电源。

第二:

我是这样了解的:进入停机形式后,仅仅MCU中最耗电的内核部分被关了,而一切寄存器和内存中的值是坚持不变的,所以它的外设还在耗费电量,所以咱们要在停机之前把敞开的外设给关了。这儿要注意一点:外设敞开时是先开时钟再设置寄存器,封闭时先铲除寄存器再封闭时钟。我是这样了解的:操作一个外设的寄存器肯定是需求时钟的,假设咱们先把时钟给关了,那么还怎样操作寄存器呢,假设光关了时钟,不清寄存器的相应位,那么外设还处于“静态耗电”的状况。在研讨低功耗的过程中,我被这个坑了良久。

第三:

关于IO口的电平,这个是非常重要的一点,和之前说到的外设相同,GPIO也是一种外设,可是特别的是,这个外设是和芯片外部直接打交道的,假设GPIO外部接了个上拉电阻,而你在停机之前设置的IO口是低电平的,那么电流不就经过电阻,流到IO口里来了,比方正常的说接了个10k的上拉电阻,接到3.3v电压上,那么电流便是330uA,这个值可不小呢,stm8l在停机时极限最小电流如同能到达0.4uA。那么你这个电路便是由于这个电阻,停机电流比别人大了将近800倍了,那么假设你的产品能待机1年,人家待机800年,这还怎样比?所以IO口是肯定不能被忽视的。stm8l芯片复位今后一切引脚都是浮空输入形式,理论上悬浮空输入时IO口的状况为高阻态是最省电的,那么咱们只要把一切IO都DeInit就能够了。可是事实上不是,我把没有用到的管脚悉数推挽输出高电平或低电平,不必的外部晶振的引脚要改为上拉输入才省电,外部有上拉下拉电阻的引脚别离推挽输出高电平和低电平,一般电路中上拉电阻比较多(比方IIC的总线外部都有上拉的)。和外部芯片相连的引脚都推挽输出低电平,由于外部芯片断电后一切引脚都是高阻态或接地的吧,假设你弄个高电平,就可能会有电流流过去。

在实践的项目中咱们选用的办法是进入停机形式后,只要RTC时钟在作业,然后RTC每隔一段时间唤醒一次MCU,MUC作业完成后持续停机。

停机的代码为:

浅谈stm8l系列单片机的低功耗机制

最终我测出来实践进入休眠形式后电流5~6uA左右,和抱负的仍是有一点距离,由于咱们的板子上带有稳压芯片,耗费量一部分的电流。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/347951.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部