Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PM组件
功耗调优
基于RT-Thread功耗调优与PM管理实战经验分享-驱动篇
发布于 2020-10-18 07:46:52 浏览:2086
订阅该版
[tocm] [RT-Thread 电源管理与功耗调优系列 - 目录](https://club.rt-thread.org/ask/article/3419.html) [基础篇 概念,基础,理解什么是功耗](https://club.rt-thread.org/ask/article/2282.html) [调试篇 开始搭环境,动手调起来](https://club.rt-thread.org/ask/article/2283.html) [驱动篇 想要调功耗,代码也要有](https://club.rt-thread.org/ask/article/2284.html) [系统篇 如何利用rtos或PM框架,配合PMS线程,管理功耗](https://club.rt-thread.org/ask/article/2285.html) [实战篇 具体问题的实战思考与解决思路](https://club.rt-thread.org/ask/article/2286.html) [日志篇 功耗日志文件输出与解析](https://club.rt-thread.org/ask/article/2288.html) [收尾篇 高调做好功耗,低调掌握知识的回顾](https://club.rt-thread.org/ask/article/2289.html) [进阶:RT-Thread精通PM功耗调优 系列](https://club.rt-thread.org/ask/article/2296.html) [上手:产品功耗管理与调优经验分享 系列](https://club.rt-thread.org/ask/article/2707.html) [应用:PM组件应用与经验分享 系列](https://club.rt-thread.org/ask/article/292.html) ## 背景 * 本篇为驱动篇,偏底层,与硬件、HAL、硬件测量设备相关,需要了解一些底层的东西。 * 若要问我,要搞功耗,不就是等项目快结束时,产品发布前,随意搞下,指导其他人这么搞、那么写。。。就完事了吗?还要自己码代码不成? * 如果公司里,这些底层的干活的就是你自己,你难道说,你不适合这个岗位? * 如果硬件设计问题,功耗根本达不到指标,怎么办? * 废话不多说,先来看看驱动的相关的问题!开关一个LED,都是驱动。驱动就是借助软件,驱使硬件工作。 * 嵌入式软件,也叫固件(firmware),最终转化为机器识别的东西。 * 芯片内部好比是一座城市。 ### 开始与硬件打交道 ## 开关驱动: ### 假设有如下的图: ![2020-10-18_085746.png](/uploads/20201018/b33ee2319fc101a34ef7ec128add3fa1.png) 分析如下: * (1)LR1 红色 LED电源 +5V_B直接控制,电源电压在,LED LR1红灯就会亮。开关控制,需要控制+5V_B电源的开关。 * (2)LG1 LY1 绿色与黄色LED,使用PNP三极管控制,则可以通过MCU 的GPIO 引脚控制。控制逻辑为: * RXD3 TXD3 为高电平时(3.3V),LED 绿色与黄色不亮(PNP三极管不导通) * RXD3 TXD3 为低电平时(0V,GND),LED 绿色与黄色亮起来(PNP三极管导通) *(3)总结,只有导通的回路,才会产生电流。 #### 通过上述的实例,说明:不是电源(电压)存在,就有电流产生,电流产生需要有电流回路,且回路导通。 * (4)功耗深入分析1:是不是PNP三级管不导通时,电流就为0?No,需要看手册,或许还有极低(nA级)漏电流。管子用多了,也会累计电流来。 * (5)功耗深入分析2:控制端的电压,若为1.8V,能否控制PNP管子开关?答:根据PNP三极管的特性,低电压,可以让PNP导通。1.8V,PNP管子无法完全关闭,所以,硬件设计时,需要注意MCU供电电压与外设电压的匹配。防止电流往MCU端内灌。 ## 外部上拉电阻: ![2020-10-18_090927.png](/uploads/20201018/8709bda9b7a739f7dcd3f0eb0e6fd390.png) ### 分析:I2C总线,总线空闲时是否会有漏电流? * (1)I2C总线,一般会把SCL、SDA (MCU端),配置成OD(开漏输出)方式。这样,外部必须接上拉电阻,保证电平的切换。 * (2)OD输出,I2C默认总线空闲时为高(MCU端高阻态),高电平为外部上拉电阻拉起来的。因为MCU是OD高阻态,所以,I2C总线空闲时,基本上漏电很小(nA级)。 * (3)异常分析:如果异常出现,SCL、SDA,出现持续的低电平?所以,也可以在不使用总线时,把I2C 总线的两个引脚配置为float 输入或analog 模拟态。 * (4)I2C 总线控制完了,I2C外设器件呢?当然,也不能一直供电,所以硬件设计时,需要有引脚控制 I2C外部器件的电源,关闭I2C芯片的电源,整个I2C设备,就可以完全管理好功耗了。 * (5)总结:SPI、 UART、 CAN 等总线级设备时,一般都是:MCU 引脚与 外部器件连接的控制方式,都可以功耗管理划分为:电源部分与引脚部分。 ## 硬件设计BUG案例分析 ### 什么是经验,经历过,体验过,总结过,如此而已。 ![2020-10-18_092247.png](/uploads/20201018/bcc97440de5687091bec573db32cfd01.png) * (1)上图中,LED的作用,本来是指示继电器的开关的,但是:设计错误,造成LED常亮。 * (2)这样软件控制继电器的开关,并不能控制LED的关闭,造成持续的漏电。 ![2020-10-18_092257.png](/uploads/20201018/df75c9475c065cfd4c1cef54742cb957.png) * (1)上图分析:修复了软件不能控制的LED指示灯。只有在继电器开关导通时,LED才会亮。 * (2)控制功耗,就可以通过控制继电器的开关(引脚RY1)即可: * MCU 端: RY1高电平,继电器工作 * MUC端: RY1 低电平(GND),继电器不导通,LED关闭,不会产生漏电?(三极管关闭时,nA级漏电流) ## GPIO 输入功耗分析: ### 【ADC 采样】 * 温湿度、电池电压、甚至某些器件的参考电压、ID,都通过 单片机 AD采样的方式获取。 如下图: ![2020-10-18_093127.png](/uploads/20201018/81ec6a50de8303f3505f97b3fb3aad2d.png) ### 分析: * (1)ADC1 会接到MCU 端的 AD采样,AD采样引脚默认配置为模拟输入(INPUT),漏电很小。 * (2)MCU ADC一般会有内部的时钟与处理模块,当AD不采样后,最好关闭内部的AD控制器。 * (3)如图AD采样是电阻分压式,想要彻底的关闭AD,还要控制电源(例图上没有控制,会产生持续的漏电流)。 * (4)分析,AD硬件上,需要提供采样电源的控制,保证采样回路可以断开(如果是VBAT常电 ad采样?采样用的分压电阻,可以适当改大。) ### 【按键】 ![2020-10-18_093959.png](/uploads/20201018/065eac77c84b9815d9be4207eb336c0a.png) ### 分析 * (1)一般按键,直接接到MCU引脚,外部有上拉电阻,MCU内部就不要在GPIO引脚配置上下拉(尤其是下拉,会有漏电)电阻。 * (2)一般按键会配置成中断,注意中断的触发方式(上拉,一般是下降沿触发,上拉,一般是上升沿触发) * (3)想实现按键的按下与弹起,其实外部上拉电阻不需要,MCU内部配置好上拉电阻(最好不要配置内部下拉) ## MCU 部分 ### MCU电源控制,一般分为【常供电】与【自杀式断电】两种方式。 * 自杀式断电,硬件需要有关断自己电源的开关。 * 常供电:为了让MCU(满频)降低功耗,一般采用: * (1)降频工作(降低运行的主频) * (2)间歇性工作(运行+睡眠) ### 分析: * (1)降频工作后,需要考虑其他外设的时钟(波特率)的变化问题。 * (2)运行+睡眠,如何切换模式?需要了解MCU本身的工作模式、电源模式。 * (3)睡眠时,不只是要处理MCU,还要看外设的电源状态。 ### 以下为寻找STM32L4系列的电源模式: * (1)首先下载STM32L4 系列的参数手册(数据手册datasheet 参考手册 reference ) * (2)通过标签,找到:Power Control 章节,理论上,芯片用多了,要多看看官方的手册与文档。 ![2020-10-18_095106.png](/uploads/20201018/f7b3cfdcc670e3ae7d397cb72d745f43.png) ![2020-10-18_095415.png](/uploads/20201018/f7305452942c1023b6d55db17a809a79.png) ![2020-10-18_095448.png](/uploads/20201018/525c5a088bb8032822bdeee1fb61128b.png) * 有了这些,大概清楚了模式的切换,模式的进入与退出的条件。 * 找到芯片官方提供的HAL库(标准库等),看一下各个模式的进入函数,可以开始设计模式切换了。 ### 目前STM32L4系列电源模式 * (1)None模式:不改变模式,满频跑 * (2)LPSleep(LPrun),芯片内部使用LP(低功耗)的调压器(类似芯片内部的LDO,如外部供电1.8V,内核电压1.2V)。 * (3)STOP(Stop0/1/2),关闭的不同,建议超低功耗使用STOP2. * (4)Standby(shutdown),几个uA的差别,建议系统需要假关机时实现。特殊的唤醒方式(wakeup引脚,rtc alarm等),唤醒后重启。 ## 其他特殊的外设电源功耗控制 ### 我印象较深的是PSRAM * PSRAM类似于MCU扩展的外部RAM,作用是扩大RAM用。是一个独立的芯片,如果使用PSRAM时,说明你的运行的程序较复杂,有一些数据、GUI等保存在外部RAM里,内部的RAM不够大。 * (1)睡眠时,PSRAM下电,优势是漏电流极低,缺点是:初始化+数据的丢失,恢复起来类似于重启。 * (2)PSRAM不下电,低功耗运行。正常PSARM空闲时,PSRAM本身功耗并不高,几十微安左右。但我实际真正测量下来,发现有上百微安的电流。 * (3)原来与MCU 引脚连接,MCU会产生漏电。如MCU配置的内部上下拉电阻等。这部分,还不能完全配置成0或1,需要根据PSRAM手册,保证PSRAM数据正常、下次访问没问题的情况下,配置与PSRAM相关的引脚。 ### NFC (卡模拟,可以用于门禁、公交等) * 项目上,可能需要系统关机(睡眠)后,都要能刷卡(当卡刷),所以,NFC是常供电。这部分的MCU引脚也要处理,睡眠时,NFC可以产生中断,关机后,就只供电。 * 调NFC功耗的重点是:让官方提供NFC 超低功耗的固件。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
801
被采纳
173
关注TA
发私信
相关文章
1
[PM组件移植]RT-THREAD NANO 移植 PM组件
2
启用PM组件后,软件定时器工作不正常
3
rt_timer在低功耗stop模式下的超时问题。
4
如何解决使用PM后,中断如何发送事件到线程?
5
启用PM(1.0)组件后,睡眠进不去,一直在IDLE线程中循环
6
开启PM组件后写入文件时drv_sdio会报等待完成超时错误
7
低功耗模式不能唤醒(外部中断)
8
stm32f103 的pm组件添加没有drv_pm.c 的 驱动文件
9
PM2.0 外部中断唤醒后程序执行顺序异常
10
PM组件如何进入standby模式
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部