单片机低功耗几点内容

发布者:Huayu8888最新更新时间:2023-03-27 来源: zhihu关键字:单片机  低功耗  漏电流 手机看文章 扫描二维码
随时随地手机看文章

有做过低功耗产品开发的读者都应该知道,一个产品的功耗不光是硬件功耗的事,其实软件也是影响整个产品功耗的一个关键因素。


我之前也开发过几款使用电池供电的产品,调试起来,那叫一个痛苦,软件和硬件各种因素都要考虑。


当你确信软件没问题了,可能硬件某个地方又存在漏电流,这其中的“痛苦”我也不再这里描述了。


今下面以STM32为例,简单描述下低功耗时IO引脚的注意事项。

将未使用的GPIO输入配置为模拟输入


GPIO始终有一个输入通道,可以是数字或模拟通道。

如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发器的消耗。


在STM32CubeMX配置中都有这么一个选项:将不用引脚配置为模拟状态。


调整GPIO速度


现在的单片机,大部分都可以配置速度,也就是上升时间,下降时间和最大频率,这些都可以用软件进行配置。


这种调整对EMI(电磁干扰)和SSO(同时开关输出)有影响,因为开关电流峰值较高。因此必须平衡GPIO性能与噪声。


每个GPIO信号的上升时间和下降时间必须适应与相关信号频率和电路板容性负载兼容的最小值。


不使用时禁用GPIO寄存器时钟


如果某个GPIO组不需要长时间使用,禁用其时钟。


比如标准外设库,禁用GPIOA时钟:


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, DISABLE);


HAL库,禁止GPIOA时钟:


__HAL_RCC_GPIOA_CLK_DISABLE();


进入低功耗模式时配置GPIO


进入低功耗模式时,所有引脚信号必须连接到VDD或接地。


如果GPIO连接到外部接收器(外部元件输入),则必须使用PP或PU/PD强制GPIO信号值。


当GPIO连接到驱动器(外部元件输出或总线)时,驱动器必须提供有效电平( VDD或接地)。如果未定义驱动器电平,则必须使用PU/PD强制GPIO上的信号。


出于实际原因,当GPIO是运行模式下的输入(模拟或数字)时,在低功耗模式下使用输入PU/PD可能更容易;当GPIO是运行模式下的输出时,则使用输出PP。这可以避免在进入或退出停止模式时管理更改。


退出关机模式


退出关机(shut down)模式时, GPIO会在上电复位时重新配置为默认值。


在将它们重新编程为正确值之前,这会需要额外的系统消耗。


如果这是应用程序的问题,则必须使用待机(standby)模式替代关机模式。(部分单片机)


------------ END------------

关键字:单片机  低功耗  漏电流 引用地址:单片机低功耗几点内容

上一篇:单片机烧录程序的几种常见方法
下一篇:DS18B20驱动程序调试总结

推荐阅读最新更新时间:2024-11-10 04:22

单片机C语言while(1)的问题
  单片机C语言的主程序,通常要用一个while(1)语句来让程序进入一个无限循环,目的是为了让程序一直保持在我们需要运行的情况下。   虽然这种做法毋庸置疑,在网上还是有不少朋友有疑问,如果程序不加while(1)会出现什么情况,对于这种好学精神,还是值得赞扬的,做学问就需要有追根问底的精神。   首先,大家要理解一件事情,我们编写的C语言程序,最终下载到单片机当中去,在我们单片机的程序存储空间FLASH当中存储的全部是2进制数字代码。比如0x00,0x01,一直到0xff。而我们编写的C代码,依靠的是编译软件,比如keil软件,首先将C语言编译成为汇编语言,最终汇编语言变成2进制代码,也就是我们的HEX文件当中的数据,下载到单片
[单片机]
舵机速度控制的51单片机程序
本程序中用到的头文件12c5a.h下载: http://www.51hei.com/f/12c5a.rar #include 12c5a.H //STC12C5A系列单片机 #include intrins.h void delay(uint16 time); //软件延时函数 void Timer_init(); //定时器初始化函数 void Timer0(uint32 us); //定时器0定时函数 void qhuan(unsigned int ms50,char zushu); char n,a=101; int LK ={0},*K; int shuju = { //舵机动作数据 {2
[单片机]
32位元MCU平台间的转移没有太多捷径
过去数年间,关于微控制器平台标准化的讨论不计其数,其目的是为了让不同MCU供应商产品间的转移更为容易,且在设计上无需做重大更动。然而,外围设备才是移转的真正核心,但所有讨论并未涉及外围设备的部分。 工程师在着手新设计之前会先审视功能需求,依此来决定采用什么电路以及控制这些电路所需的MCU内建外围。例如,工业级的人机接口设备需要支持LCD、按键、触控式屏幕与机器的通信、LED以及喇叭/蜂鸣器等,这些功能都需要MCU上的某些外围,例如用于通信的CAN控制器、用于触控式屏幕的ADC以及用于蜂鸣器的PWM计时器。 外围具备的功能越多所需的外部电路就越少,在某些情况下,还能减少需要撰写的程序码量。举例来说,在目的相同的情况下
[嵌入式]
需求激增 MCU解密成国产智能芯片主战场
对于国际半导体巨头来说,今年又将会是一个“中国年”,继2012年智能手机出现爆炸式增长,his分析预测,2013年中国低端智能手机需求仍然看好,同时,又将迎来智慧城市、智能家居及可穿戴设备的新一轮消费热点。而这些设备都离不开MCU芯片的应用,现在32位的MCU应用越来越多,广受关注的互联网、物联网等都离不开MCU。然而,目前中国境内智能芯片的需求仍有80%来自国际半导体,再加上32位MCU的设计门槛、投资成本较高,国内很多企业迂回地选择MCU解密来实现智能芯片逆势增长。   MCU解密成国产智能芯片主战场   调查发现,目前智能家电中应用芯片需求量最大的产品是智能空调,一个具有代表性的市场主流空调产品会用到8颗芯片,其中2
[模拟电子]
需求激增 <font color='red'>MCU</font>解密成国产智能芯片主战场
MCS-51系列单片机指令快速记忆方法
随着微电子技术和超大规模 集成电路 技术的发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家电产品、 汽车电子 、通信、智能仪器仪表)得到了广泛的应用。学习、使用 单片机 的人越来越多,而生产单片机的厂家很多,单片机种类繁杂,不知如何选择。据统计,八位单片机占全球单片机销量的65%。在八位单片机中,Intel公司的8051单片机内核已成为8位单片机事实上的标准。因此,对初学者而言,选择8051单片机来学习不失为明智的选择。    学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令
[单片机]
51单片机的串口参数
常用模式为模式1和模式3 1. 波特率可变 2. 起始位为1,停止位为1,数据位为8, 3. 模式3可以选择奇偶校验位 ====================================================================== 最近刚好有项目使用到51的串口,整理了一下资料,固先记下,留待后用 模式0: 常用扩展IO 模式1: 波特率可变; 1位起始+8\位数据+,停止1位, 模式2:波特率固定; 模式3:波特率可变; 1位起始+8位数据+奇偶校验位+停止1位,
[单片机]
单片机中的冒泡排序(汇编语言)
总结起来就是: 1.N个数要分选N-1次 2.第i次分选的次数为N-i次 汇编程序: ORG 1000H MOV PSW,00H MOV R7,#100-1;总共的分选次数 LOOP0:MOV R0,#40H ; Loop0是大循环,主要负责分选,一次又一次 MOV R1,#41H MOV 02H,R7;这里确定了第i次分选的次数 CLR F0 LOOP1:MOV A,@R0 ; loop1是小循环,主要负责判断本次分选是否结束 CJNE A,@R1,LOOP2 LOOP2:JNC LOOP3 XCH A,@R1 MOV @R0,A SETB F
[单片机]
<font color='red'>单片机</font>中的冒泡排序(汇编语言)
加强MCU产品组合 富士通大幅扩充FM3系列至570款产品
近日,富士通半导体(上海)有限公司宣布,其基于ARM Cortex-M3处理器内核的FM3家族32位通用RISC微控制器产品升级后的阵容。富士通半导体共计推出38款新产品,包括内置大容量储存器的MB9BF529TPMC和低引脚封装的MB9BF121JPMC。新产品将于2013年5月10日开始提供样片。该全新的产品阵容最适用于家用电器、办公自动化设备和工业设备的系统控制。 富士通半导体推出这波新产品后,可为其采用ARM Cortex-M3处理器内核的顶级FM3系列微控制器阵容扩增至570款产品。 自2010年首次发布基于ARM Cortex-M3内核的FM3家族32位通用RISC微控制器以来,富士通半导体持续开发了可广泛应用
[单片机]

推荐帖子

【设计工具】赛灵思(Xilinx)最新版设计工具支持堆叠硅片互连技术
这个是老外的视频觉得挺高难特来分享【设计工具】赛灵思(Xilinx)最新版设计工具支持堆叠硅片互连技术顶起来!
ddllxxrr FPGA/CPLD
[转]一则锯齿波发生器电路
这个电路用得非常巧妙的地方是,它能控制锯齿波的幅度!一则锯齿波发生器电路右边单结管(双基极管)构成锯齿波振荡电路,此锯齿波振荡电路因由PNP管构成的近似恒流源对0.1电容充电,故线性较好。但左边PNP管和NPN管构成的仿晶闸管部分,不明白有什么用。要说调整输出的锯齿波幅度么,靠电位器即可。左边PNP管和NPN管,好像不能调整输出幅度。maychang发表于2015-3-2217:29要说调整输出的锯齿波幅度么,靠电位器即可。左边PNP管和NPN管,好像不能调
dontium 模拟电子
【得捷电子Follow me第4期】FM4项目总结报告
项目器件介绍:1.主控:W5500-EVB-Pico作为主控2.屏幕:PicoLCD1.14-WaveshareWiki,用于显示相关参数,3.电源:PicoUPSA-WaveshareWiki,用于供电和掉电保存数据,并检测电池电量4.按键指示灯:Grove‐RedLEDButton,用于提示网络异常和重连网络可编译执行的代码:所有代码使用Micropython编程,环境为Thonny,MPY固件为
电子烂人 DigiKey得捷技术专区
ST-Link 可以刷成J-Link了
https://www.segger.com/jlink-st-link.htmlConvertingST-LINKon-boardintoaJ-LinkFirmwareforST-LINKon-boardSEGGERoffersafirmwareupgradingtheST-LINKon-boardontheNucleoandDiscoveryBoards.Thisfirmwaremakesth
mars4zhu stm32/stm8
CMake构建实战读书笔记05-CMake项目构建实践
本篇来学习使用CMake来构建项目。#1编译单个源文件##1.1基础CMakec++源文件,hello.cpp```c++#includeintmain(){printf("hello\n");return0;}```CMakeLists.txt```cmakeproject(HELLO)add_executable(hello./hello.cpp)```这个是最基础的CMakeLists-第一行project:该命令用于设
DDZZ669 嵌入式系统
GPRS PPP协议中的IPCP协商问题
各位达人:用的是手机的sim卡。卡上开通了GPRS套餐。利用LWIP源代码,通过串口+GPRS模块登录cmnet。在进行PPP阶段时,通过了LCP,CHAP协商。但最后的IPCP阶段无法协商成功。在此请教:进入IPCP协商阶段后,交互的数据如下:收:7E8021010F0004A0897E发:7EFF038021010100160306000000008106000000008306000000006E
davidzjq 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved