找回密码
 注册
查看: 59|回复: 0
打印 上一主题 下一主题

STM8Lhalt()低功耗mode

[复制链接]
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
     楼主| 发表于 2024-10-30 17:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    - e$ z+ c" C9 v' m9 y6 Z
    低功耗可以说是stm8l系列单片机的核心特色了。假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要。那么继续假设我们这个温度传感器不需要一直工作,只需要1小时采集一次数据就行了,也就是说,一个小时内,我们这个传感器只工作1秒钟,那么剩下的59分59秒怎么办?也许有的同学就会说了,while(1)循环啊,这种回答就很没有灵性。都不需要工作了,我们还关机不就行了,让它一小时启动一次,测量完就继续关机。那么就可以让电池里的电物尽其用。stm8l就有一个停机指令halt(),执行这条指令后,内核时钟停止工作,就相当于关机了。

    ' B. E1 y, r; q1 h
    但是并不是停机了,整个电路中的电流消耗就达到了最小!
    4 x: k* |7 G  T4 `/ @% ~9 }
    第一:

    ( l% L- F9 @+ I" C
    虽然mcu是停机了,但是电路板还有其他的芯片在工作,它们仍然在消耗电量,所以我们在停机前应该要把其他芯片给关闭(可以通过特定的指令或者片选线)。条件好的可以直接用切断它们的电源。

    + N2 n+ N0 G1 j# w; o0 q& E
    第二:

    0 v/ W; F7 X0 {  j* b2 X# m
    我是这样理解的:进入停机模式后,只是MCU中最耗电的内核部分被关了,而所有寄存器和内存中的值是保持不变的,所以它的外设还在消耗电量,所以我们要在停机之前把开启的外设给关了。这里要注意一点:外设开启时是先开时钟再设置寄存器,关闭时先清除寄存器再关闭时钟。我是这样理解的:操纵一个外设的寄存器肯定是需要时钟的,如果我们先把时钟给关了,那么还怎么操作寄存器呢,如果光关了时钟,不清寄存器的相应位,那么外设还处于“静态耗电”的状态。在研究低功耗的过程中,我被这个坑了好久。
    ! F5 ?0 |% ]9 F" n# r6 e
    第三:
    1 A$ B9 j1 E) @, M) \
    关于IO口的电平,这个是非常重要的一点,和之前提到的外设一样,GPIO也是一种外设,但是特殊的是,这个外设是和芯片外部直接打交道的,如果GPIO外部接了个上拉电阻,而你在停机之前设置的IO口是低电平的,那么电流不就通过电阻,流到IO口里来了,比如正常的说接了个10k的上拉电阻,接到3.3v电压上,那么电流就是330uA,这个值可不小呢,stm8l在停机时极限最小电流好像能达到0.4uA。那么你这个电路就是因为这个电阻,停机电流比别人大了将近800倍了,那么假如你的产品能待机1年,人家待机800年,这还怎么比?所以IO口是绝对不能被忽视的。stm8l芯片复位以后所有引脚都是浮空输入模式,理论上悬浮空输入时IO口的状态为高阻态是最省电的,那么我们只要把所有IO都DeInit就可以了。但是事实上不是,我把没有用到的管脚全部推挽输出高电平或低电平,不用的外部晶振的引脚要改为上拉输入才省电,外部有上拉下拉电阻的引脚分别推挽输出高电平和低电平,一般电路中上拉电阻比较多(比如IIC的总线外部都有上拉的)。和外部芯片相连的引脚都推挽输出低电平,因为外部芯片断电后所有引脚都是高阻态或接地的吧,如果你弄个高电平,就可能会有电流流过去。

    3 `$ y$ ^7 P" K
    在实际的项目中我们采用的方法是进入停机模式后,只有RTC时钟在工作,然后RTC每隔一段时间唤醒一次MCU,MUC工作完成后继续停机。
    . q8 I+ A/ W6 K& T6 [: n+ a, w! H
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-1 03:29 , Processed in 0.078125 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表