有做过低功耗产品开发的读者都应该知道,一个产品的功耗不光是硬件功耗的事,其实软件也是影响整个产品功耗的一个关键因素。
我之前也开发过几款使用电池供电的产品,调试起来,那叫一个痛苦,软件和硬件各种因素都要考虑。
当你确信软件没问题了,可能硬件某个地方又存在漏电流,这其中的“痛苦”我也不再这里描述了。
今下面以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
推荐帖子
- 【设计工具】赛灵思(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 嵌入式系统
设计资源 培训 开发板 精华推荐
- 使用 Microchip Technology 的 TCL1117-5.00 的参考设计
- 用于仪表的 18 位、3.75SPS、4 通道 ADC
- AM2G-1218SH30Z 18V 2瓦DC-DC转换器的典型应用
- 使用 NXP Semiconductors 的 MCIMX508CVK8B 的参考设计
- 使用 AD5556 14 位乘法 DAC 的精密交流参考信号衰减器
- Zkong 2.13三色屏驱动板 ZKC21V ESL-BWR
- TB2926HQ 45W x 4ch BTL 音频电源典型应用
- AIR32F103_PMOD 开发板
- 使用 Adafruit Industries 的 MLX90393 的参考设计
- NCP5269GEVB,用于系统代理评估板的具有 2 位 VID 的同步降压控制器
- 有奖直播:意法半导体SiC产品及其工业应用指南
- 下载MPS AI电源资料包,赢【Keep体脂秤、按摩眼罩、电脑支架】
- 浪漫爱情季:TI MSP430,狠狠爱!
- 有奖直播:Keysight World Tech Day 2024 汽车分论坛|汽车自动驾驶与新能源
- MPS有奖活动|梦想设计闪亮登场,便携式多功能电工台诞生啦!
- 双重好礼等你来!2022年,让英飞凌更懂你!
- 下载文档看视频有礼:获得更高效的PCIe一致性测试文档
- 2021 Digi‑Key KOL 视频系列:新型智能曝光算法在人脸识别中的应用
- 再见2019,你好2020!写下你的年终总结和新年计划
- Littelfuse第3期:新型SSA系列双端超低分流电阻器