STC15单片机-低功耗设计

2023-11-18

低功耗设计

STC15省电模式(数据手册有介绍)

STC15系列单片机可以运行3种省电模式以降低功耗,它们分别是:低速模式空闲模式掉电模式

正常工作模式下,STC15系列单片机的典型功耗是2.7mA ~7mA,而掉电模式下的典型功耗是<0.1uA,空闲模式下的典型功耗是1.8mA

低速模式由时钟分频器CLK_DIV (PCON2)控制,时钟分频器可以对内部时钟进行分频,从而降低工作时钟频率,降低功耗,降低EMI

在这里插入图片描述

空闲模式和掉电模式的进入由电源控制寄存器PCON的相应位控制。PCON寄存器定义如下:

在这里插入图片描述

SMOD, SMOD0:与电源控制无关,与串口有关,在此不作介绍。

LVDF:低压检测标志位,同时也是低压检测中断请求标志位。

在正常工作和空闲工作状态时,如果内部工作电压Vcc低于低压检测门槛电压,该位自动置1,与低压检测中断是否被允许无关。即在内部工作电压Vcc低于低压检测门槛电压时,不管有没有允许低压检测中断,该位都自动为1。该位要用软件清0,清0后,如内部工作电压Vcc继续低于低压检测门槛电压,该位又被自动设置为1。

在进入掉电工作状态前,如果低压检测电路未被允许可产生中断,则在进入掉电模式后,该低压检测电路不工作以降低功耗。如果被允许可产生低压检测中断,则在进入掉电模式后,该低压检测电路继续工作,在内部工作电压Vcc低于低压检测门槛电压后,产生低压检测中断,可将MCU从掉电状态唤醒。

POF :上电复位标志位,单片机停电后,上电复位标志位为1 ,可由软件清0 。

实际应用:要判断是上电复位(冷启动),还是外部复位脚输入复位信号产生的复位,还是内部看门狗复位,还是软件复位或者其他复位,可通过如下方法来判断:

在这里插入图片描述

GF1,GFO :两个通用工作标志位,用户可以任意使用。

PD将其置1时,进入掉电模式,可由外部中断上升沿触发下降沿触发唤醒,进入掉电模式时,内部时钟停振,由于无时钟,所以CPU、定时器等功能部件停止工作,只有外部中断继续工作。可将CPU从掉电模式唤醒的外部管脚有:INT0/P3.2,INT1/P3.3,INT2/P3.6, INT3/P3.7,INT4/P3.0;管脚CCP0/CCP1/CCP2;管脚RxD/RxD2/RxD3/RxD4;管脚T0/T1/T2/T3/T4;有些单片机还具有内部低功耗掉电唤醒专用定时器。掉电模式也叫停机模式,此时功耗<0.1uA

本次实验就是将PD位置1,让MCU进入掉电模式,减低功耗

IDL:将其置1,进入IDLE模式(空闲),除系统不给CPU供时钟,CPU不执行指令外,其余功能部件仍可继续工作,可由外部中断、定时器中断、低压检测中断及A/D转换中断中的任何一个中断唤醒。

空闲模式详解

在这里插入图片描述

掉电模式详解(< 0.1uA)

在这里插入图片描述

本项目实验现象

  1. 数码管显示PCB板温度;

  2. 长按按键1超过2s,系统进入待机模式;

  3. 单击按键1,系统退出待机模式,正常运行;

  4. 待机电流处于1.1uA左右,其中LDO占了 1uA,单片机占了0.1uA

  5. 用万用表测试到正常运行的电流大概为30、40mA;进入待机模式后,电流为1.1uA

开发板上电后,串口输出初始化信息,数码管显示PCB板的温度,运行指示灯每隔一秒闪烁一次

在这里插入图片描述

在这里插入图片描述

将万用表串联在电源线上,量程调到直流mA档,待稳定后,可看到电流在30或40多mA变动

在这里插入图片描述

长按按键1两秒以上,串口输出调试信息,单片机输出停机指示后进入停机模式,数码管不亮,外设电源被切断,运行指示灯不闪

在这里插入图片描述

此时万用表电流

在这里插入图片描述

看万用表仍然有十几mA的电流,原因是虽然单片机和外设都不工作了,但CH340芯片还在耗电,在实际的产品中CH340芯片是没有的,开发板的CH340只是用来调试信息,所以要把CH340芯片的供电去掉,开发板硬件上有做了一个跳线冒,把跳线冒拔掉,则CH340芯片的电源被切断,不再耗电,把万用表的量程调到uA档,此时电流达到最低,理论1.1uA,测量会有些许误差

在这里插入图片描述

在停机模式下单击按键1,唤醒系统,系统退出停机模式,串口重新输出信息,WIFI模块重新初始化,开发板数码管获取温度并显示,运行指示灯闪烁

在这里插入图片描述

万用表电流重新显示30或40多mA

在这里插入图片描述

低功耗设计要点

参考:https://www.elecfans.com/d/1068248.html,这篇文章概述的不错

系统框图

系统框图的设计最重要,这是从总体上来设计低功耗的,决定了低功耗能达到什么水平;低功耗牵涉到了整体,包括硬件和软件,要两者兼具,才能很好的设计出低功耗产品

在这里插入图片描述

首先单片机型号要选择低功耗的,如这款STC15L2K32S2,低功耗电流为0.1uA,或者其他型号的单片机如STM8,MSP430

其次LDO要选择低功耗的,如HT7333-3,250mA 3.3V 高耐压低压差线性三端稳压LDO芯片,低功耗为1uA

然后就控制外设的供电,MP2451并不能将使能脚EN置为低电平来达到低功耗的目的,因为就算使能脚EN关闭了,只是没有给外设供电,但其本身内部的电路仍然是在工作的,有100多uA,所以要在前面设计一个PMOS开关,进入低功耗时就能把电源完全关掉,右边输出0V

最后所有的外设也要进行低功耗设计,如选型,或者引脚配置

元器件选型

单片机,LDO等元器件需要选择低功耗的。本项目的STC15L2K32S2单片机,待机电流0.1uA,HT7333-3型号的LDO静态电流低至1uA,可以满足要求。

在STC15L2K32S2数据手册中,附录A:STC15系列单片机电气特性,可以看到低功耗说明,待机电流小于0.1uA

在这里插入图片描述

LDO芯片HT7333-3的数据手册中可以查看到该型号的静态电流

静态电流指:当芯片输出IOUT为0mA时,芯片本身消耗的电流叫静态电流

可以看到典型值的电流是1uA,这个值受温度的影响

在这里插入图片描述

硬件电路的设计

进入待机模式时,硬件设计需要考虑关闭外设的电源,本项目的MP2451通过PMOS开关控制,NTC温度采集通过NPN晶体管控制,就是基于此考虑

程序设计

需要单片机根据外设类型配置好GPIO的模式以及输出的电平。

不用的引脚,不能输入悬空,可以设置为推挽,输出低电平;
关闭外设的电源;
合理配置GPIO,防止通过外设引脚漏电,比如 WIFI 模块的控制引脚,TM1620 的控制引脚等。控制引脚在低功耗时都配置为低电平

待机模式引脚配置注意点

不能有悬空的引脚,不然这些引脚会存在电流,悬空引脚要全部设置为输出模式,并输出低电平

在这里插入图片描述

防止TM1620漏电

在这里插入图片描述

把MP2451关闭后,Peripheral_3V3 是没有电压的,在TM1620模块中,如果单片机对STB这个引脚输出了高电平,且引脚设为了准双向口,同时单片机内部有上拉电阻,那么这3.3V的电压由于上拉电阻和R1电阻的存在,被分压为1V左右后与Peripheral_3V3 形成了电压差,导致有电流从Peripheral_3V3 流出,就又会给其他外设供电,或者流入GND,这种情况称为漏电现象

存在漏电现象则电流是降不了的,达不到低功耗,所以要对单片机的这些引脚进行配置,都将其输出低电平,防止漏电

防止串口TX漏电

同理,串口TX如果输出高电平的话,比如给到CH340芯片,RS-485芯片,ESP-12S芯片,都会造成芯片内部耗电,所以串口TX引脚也要全都输出低电平

防止串口RX漏电

在这里插入图片描述

因为单片机对于RXD引脚都是配置为高阻输入的,当外设电源断开后,RXD引脚就相当于没接,此时引脚就处于悬空状态了,会有100多uA的电流,所以RXD引脚进入低功耗模式后就要配置为推挽输出,并输出低电平,就不会耗电;

开发板上的RXD(CH340)、RXD1(RS-485)、RXD2(ESP-12S)都先设置为推挽输出,并都输出低电平

防止IIC口漏电

在这里插入图片描述

IIC口同理,SCL和SDA都有上拉电阻,如果为高电平的话,电流就会从引脚流到Peripheral_3V3,造成漏电

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STC15单片机-低功耗设计 的相关文章

  • kafka学习笔记(一)简介

    这是对我找到的学习资料的整理 非手打 参考 https kafka apachecn org intro html https blog csdn net weixin 39468305 article details 106346280
  • Cannot forward after response has been committed问题解决及分析

    通过TOMCAT把系统启动 可以正常登陆门户 登陆进去选择子系统的时候点击登陆的时候 可是去又回到了登陆界面 如此反复就是不能够进入子系统 查看后台报的错误 Cannot forward after response has been co
  • 数据库密码忘记了怎么办

    修改数据库密码 方法1 用SET PASSWORD命令 首先登录MySQL 格式 mysql gt set password for 用户名 localhost password 新密码 例子 mysql gt set password f
  • 应急响应-账户排查

    用户信息排查 在服务器被入侵之后 攻击者可能会建立相关账户 方便进行远程控制 主要采用一下几种 直接建立一个新用户 有时候为了混淆视听 账户名称和系统常用名相似 激活一个系统中的默认用户 但是这个用户不经常使用 建立一个隐藏用 在windo
  • java-通过ip获取地址

    添加maven依赖
  • 关于ArcMap中打开ArcToolbox导致闪退的解决办法

    最近好久不用ArcGis的小编要用到ArcMap去发送一个GP服务 发现按照套路打开ArcMap点击ArcToolbox时 发生了ArcMap的闪退现象 几经周折终于解决了问题 希望也遇到这类问题的同学能够参考解决 而不是无脑的去重装软件

随机推荐

  • C# 实现ESC退出窗口的几种方法

    实现ESC退出窗口的几种方法 引言 方法一 同步按钮法 方法二 监听按键法 方法三 隐藏按钮法 最后 引言 我们通常用通过点击取消按键或者右上角的 X 盒子退出的方法来实现关闭当前Form窗体 但要使用按键ESC退出关闭窗口就显得更加高级了
  • 解决SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]的方案!!!!!

    目录 前提 一 安装maven helper插件 1 安装 2 安装成功 3 使用 二 去掉冲突的依赖包 1 前面已找到目标依赖 去pom文件内操作 2 去除 3 最后就可以了 前提 今天单元测试遇到了jar包冲突 SLF4J Class
  • 自己学驱动17——ARM工作模式和ARM9寄存器

    1 ARM体系CPU的7种工作模式 1 用户模式 usr ARM处理器正常的程序执行状态 2 快速中断模式 fiq 用于高速数据传输或通道处理 3 中断模式 irq 用于通用的中断处理 4 管理模式 svc 操作系统使用的保护模式 5 数据
  • 【Python】PyCharm中调用另一个文件的函数或类

    欢迎来到Python专栏 PyCharm中调用另一个文件的函数或类 o o 嗨 我是小夏与酒 博客主页 小夏与酒的博客 该系列文章专栏 Python学习专栏 文章作者技术和水平有限 如果文中出现错误 希望大家能指正 欢迎大家关注 目录 Py
  • 数据结构:栈

    文章目录 栈 一 概述 二 添加数据 三 删除数据 栈 一 概述 栈 Stack 是一种特殊的线性表 它只允许在一端进行插入和删除操作 通常被称为 后进先出 Last In First Out LIFO 的数据结构 栈由一系列元素组成 每个
  • python常见的三种格式化输出

    Author Father Teng Name input name Age int input age Job input job info info of 0 Name 0 Age 1 Job 2 format Name Age Job
  • 【源码改造】Flink-jdbc-connector源码简析+改造支持谓词下推

    一 需求背景分析 flink sql在维表关联时 会有一个场景 当右表的数据量比较大且有些数据虽然符合join条件 但其实对于下游来说数据可能没用 这样就浪费了flink的计算资源 且拉低了数据处理能力 如果在join前就把维表的数据进一步
  • rac术语小结

    author skatetime 2010 03 01 rac术语小结 CSS 集群同步服务 Cluster Syncronization Service 功能 Manages the cluster configuration by co
  • 一文搞定SpringSecurity+vue前后端分离

    我好菜啊 学了好几天才明白一点点 前言 把v部落git下来学一学 比起halo来说v部落会更加简单好懂一点 我看他用了SpringSecurity来做登录验证 那第一步就是学学这个SpringSecurity 然后我就发现了 我真的是太菜了
  • Linux如何强制关闭任务进程(Linux版任务管理器)

    问题描述 有时我们在使用Linux软件时会碰到软件卡死或者软件BUG无法退出 如何像使用Windows任务管理器一样去关闭应用呢 其实不需要通过重启系统来解决此类问题 只需要按照如下步骤即可解决 解决方案 第一步 打开Terminal终端控
  • 搭建redis主从复制(读写分离)

    一 主从复制原理 在搭建redis读写分离架构时 master必须开启持久化 可参考博客 RDB和AOF持久化策略一起使用也行Redis的持久化机制 RDB和AOF 1 p f 的博客 CSDN博客 一旦master宕机 虽然slave可以
  • Windows server 2016 powershell基本命令和web服务部署

    一 powershell命令 进入powershell 使用win r调出运行 gt 在运行中输入powershell 查看服务命令 Get WindowsFeature 命令可以加参数 不加则是显示全部 安装命令 Install Wind
  • Datawhale go语言学习 10反射机制

    go 语言中Type是反射的数据类型 Value是具体的值 原文档中的反射机制三个原则表述为 Reflection goes from interface value to reflection object Reflection goes
  • 【异常】RuntimeError: Failed to process string with tex because latex could not be found

    1 异常描述 RuntimeError Failed to process string with tex because latex could not be found RuntimeError Failed to process st
  • GLSL-WebGL着色器语言语法详解

    GLSL语法 GLSL它是强类型语言 每一句都必须有分号 它的语法和 typescript 挺像 GLSL的注释语法和 JS 一样 变量名规则也和 JS 一样 不能使用关键字 保留字 不能以 gl webgl 或 webgl 开头 运算符基
  • < Linux >:Linux 环境基础开发工具使用 (3)

    目录 一 Linux 调试器 gdb 的使用 1 1 背景 1 2 开始使用 1 3 理解 二 Linux项目自动化构建工具 make与Makefile makefile 2 1 背景 2 2 项目结构 三 Linux 系统中第一个小程序
  • 生活当中调整时钟时间背后发生的事情

    生活当中调整时钟时间背后发生的事情 我们在生活当中想要设定时钟 手表的时间的事情 我们通过会和大多数人一样 会按照手机上的时间来设定 但是 这背后发生了什么事情 我想大部分人应该是不知道的 其实我们自己的时间是自动设定 每隔一阵子 我们的手
  • springboot集成pagehelper

    1 导入pom xml
  • postman调用参数是对象

    写了一个controller 需要用postman调通测试一下 请求参数是vo controller 端口号是1213 postman调用时传入对象的方式如下
  • STC15单片机-低功耗设计

    低功耗设计 STC15省电模式 数据手册有介绍 STC15系列单片机可以运行3种省电模式以降低功耗 它们分别是 低速模式 空闲模式和掉电模式 正常工作模式下 STC15系列单片机的典型功耗是2 7mA 7mA 而掉电模式下的典型功耗是 lt