单片机低功耗设计
- 格式:doc
- 大小:70.00 KB
- 文档页数:4
单片机按键模块设计一、硬件设计1、按键的类型选择按键的类型有很多种,常见的有机械按键和触摸按键。
机械按键通过金属触点的闭合和断开来产生电信号,具有成本低、可靠性高的优点,但寿命相对较短,容易产生抖动。
触摸按键则通过电容感应或电阻感应来检测触摸动作,寿命长、外观美观,但成本相对较高,且容易受到外界干扰。
在一般的单片机应用中,机械按键通常是更经济实用的选择。
2、按键的连接方式按键可以采用独立式连接或矩阵式连接。
独立式连接适用于按键数量较少的情况,每个按键单独连接到单片机的一个 I/O 口上,这种方式简单直观,但占用的 I/O 口资源较多。
矩阵式连接则适用于按键数量较多的情况,通过将按键排列成矩阵形式,利用行线和列线的交叉点来识别按键,大大节省了 I/O 口资源,但编程相对复杂。
以 4×4 矩阵按键为例,我们需要 8 个 I/O 口,其中 4 个作为行线,4 个作为列线。
当某个按键被按下时,对应的行线和列线会接通,通过扫描行线和列线的状态,就可以确定被按下的按键。
3、上拉电阻的使用为了保证单片机能够正确检测按键的状态,通常需要在按键连接的I/O 口上加上拉电阻。
上拉电阻将I/O 口的电平拉高,当按键未按下时,I/O 口处于高电平;当按键按下时,I/O 口被拉低为低电平。
上拉电阻的阻值一般在10KΩ 左右。
4、消抖处理由于机械按键在按下和释放的瞬间,触点会产生抖动,导致单片机检测到的电平不稳定。
为了消除这种抖动,通常采用软件消抖或硬件消抖的方法。
软件消抖是在检测到按键状态变化后,延迟一段时间(一般为10ms 20ms),再次检测按键状态,如果状态保持不变,则认为按键有效。
这种方法简单易行,但会增加程序的执行时间。
硬件消抖则是通过在按键两端并联电容或使用专用的消抖芯片来实现。
电容可以吸收触点抖动产生的尖峰脉冲,使电平稳定。
但硬件消抖会增加硬件成本和电路复杂度。
二、软件编程1、按键扫描程序在软件编程中,需要编写按键扫描程序来检测按键的状态。
基于STC单片机的超低功耗LoRa发射机设计
王先武;何纯静
【期刊名称】《电子制作》
【年(卷),期】2022(30)16
【摘要】LoRa是Semtech公司的一种扩频调制技术,适用于构建几公里至几十公里范围的LoRa通信专网,支持各种物联网应用。
与NB-IoT、SigFox等广域物联网技术相比,LoRa技术具有免授权、低功耗、远距离的综合优势。
在休眠模式下,LoRa终端设备的静态电流可以低至1μA以下,再结合对动态电流的压缩,采用小型电池供电即可实现10年以上的待机时间。
本文给出了一种以安信可公司生产的La-01射频模块与STC15系列主控MCU构成的超低功耗LoRa发射机设计方案,测试分析了其功耗和待机时间等主要指标。
【总页数】4页(P3-6)
【作者】王先武;何纯静
【作者单位】空军通信士官学校
【正文语种】中文
【中图分类】TN9
【相关文献】
1.基于STC单片机和MC145170的VHFr调频发射机设计
2.基于STC单片机和IRF9540的超低差压稳压电源电路设计
3.基于超低功耗单片机MSP430F4250的
便携式甲烷检测仪设计4.基于STC8单片机的中波发射机功率记忆模块设计5.基于STC12LE5A60S单片机的低功耗便携恒温药盒设计
因版权原因,仅展示原文概要,查看原文内容请购买。
一种新颖的低功耗、强移动性的密码锁设计摘要:本文介绍一种基于单片机控制的电子密码锁设计。
本系统由p89lpc900系列单片机、矩阵键盘和报警系统组成。
系统能完成电子控制开锁、超时报警、超次锁定、管理员解密和修改用户密码的基本功能。
除上述基本的密码锁功能外,还具有节电模式、掉电存储、按键中断唤醒等功能。
该系统结构简洁、成本低、体积小,功能实用。
abstract: this article describes an electronic coded locks based on single-chip microcomputer control. the system consists of p89lpc900 family of microcontrollers, matrix keyboard, and alarm system. the system can complete the electronic control lock, timeout alarm, more than times be locked, administrator decrypt and modify user password. in addition to the basic lock function, but also has a power saving mode, power-down storage, key interrupt wake-up functions. the system is simple structure, low cost, small volume, functional and practical.关键词: p89lpc922;e2prom;密码锁;矩阵键盘;l9110key words: p89lpc922;e2prom;coded lock;matrix keyboard;l9110中图分类号:ts914.2;tp368.1 文献标识码:a 文章编号:1006-4311(2013)05-0183-020 引言随着科技的发展,人们生活节奏的加快,传统的机械锁需携带多把钥匙,因此使用极不方便。
stm32单片机程序设计与实现说明一、背景信息STM32是意法半导体(STMicroelectronics)推出的一款32位ARM Cortex-M系列单片机。
作为一款高性能、低功耗的微控制器,STM32单片机广泛应用于各个领域,包括工业控制、汽车电子、消费电子等。
二、技术演进1. STM32单片机采用了最新的ARM Cortex-M系列核心,具有强大的处理能力和高度的集成度。
2. STM32单片机提供了丰富的外设功能,包括通信接口(UART、SPI、I2C等)、模拟转换器(ADC、DAC)、定时器等,满足各种应用需求。
3. 通过开发环境(例如Keil MDK、IAR Embedded Workbench)提供的开发工具和库函数,开发者可以快速、高效地进行STM32单片机程序的设计与实现。
三、市场变化随着物联网、人工智能等技术的快速发展,对嵌入式系统的需求不断增加,尤其对于高性能、低功耗的单片机需求更加迫切。
STM32单片机凭借其多种型号和强大的性能优势,逐渐成为市场上最受欢迎的单片机之一。
四、STM32单片机程序设计与实现步骤1. 硬件准备:选择适合的STM32单片机型号,并搭建相应的硬件环境,包括外围设备连接、电源供应等。
2. 开发环境配置:安装并配置相应的开发工具和库函数,确保能够正常编译、下载程序。
3. 程序设计与编写:根据具体应用需求,设计STM32单片机的程序架构,编写相应的C语言代码。
4. 调试与测试:通过在线调试工具或者仿真器,对程序进行调试与测试,确保程序的正确性和稳定性。
5. 烧录与运行:将程序下载到STM32单片机中,并进行实际运行和验证。
五、实用技巧与指导意义1. 程序优化:结合STM32单片机的特点,充分利用硬件资源,进行程序的优化,提高系统的性能和响应速度。
2. 低功耗设计:合理配置STM32单片机的功耗模式,采用节能策略,延长系统的电池寿命。
3. 外设应用:根据不同的应用需求,充分利用STM32单片机的外设功能,实现各种功能的扩展和接口的连接。
2019建模竞赛合肥工业大学校园选拔报名表序号姓名专业班级1 田宇哲土木17-4班2 杨子煜17级土木三班3 郝世禹自动化17-1班4 王豪元自动化17-1班5 曹斌自动化17-1班6 文玮物流管理17-2班17-土木工程(城7 田浩晟市地下空间)四班17-土木工程(城8 蒋舒市地下空间)四班新能源材料与器9 易宗锦件16-2能源化学工程10 窦越17-1班计算机科学与技11 李博文术17级1班12 慕佳伟自动化17-1班13 魏树行自动化17-1班计算机科学与技14 王子翔术17-1 班计算机科学与技15 刘康正术17-1班计算机科学与技16 黄嘉峰术17-1班计算机科学与技17 黄志斌术17-1班18 谢天自动化17-119 韩建冬自动化17-2班20 卢俊俭自动化17-1班21 欧阳震机工17-3班计算机科学与技22 方博辰术17-1班土木工程(城市地23 秦逸成下空间)17-3班土木工程(城市地24 杨灿下空间)17-3班土木工程(城市地25 韩祥瑞下空间)17-3班26 刘子逸自动化17-427 吴亦霆自动化17-4班土木工程(城市地28 谢莲莲下空间)17-4班29 雷浩阳电信科17-3班新能源材料与器30 李享件17-1班31 籍鑫雨城建土木17-1班17级计算机科学32 黄孟玲与技术一班17级计算机科学33 黄文君与技术二班过程装备与控制34 施妍工程17-2班35 邹文豪计算机17-436 陈虎计算机17-437 周建军计算机17-438 申钰齐自动化17-139 艾颂玲国际贸易17-2土木工程(城市地40 董振涛下空间)17-2班41 余继发自动化17-4班42 黄仕伟计科17-5班43 陈泽飞物联网17-244 林聚物联网17-2班45 方荣灿计科17-5班46 李成宇计科17-5班47 徐峥岩计科17-5班48 章一帆机工17-3班49 肖焱天机工17-3班50 徐凯凯机工17-3班51 王轲机工17-3班52 阮田雅机工17-3班物联网工程17-2 53 张玉慧班54 徐泊阳国贸17-255 张婷荷物流17-256 王子国贸17-157 李向华国贸17-1计算机科学与技58 王鹤术17-4班物联网工程17-1 59 王江伟班60 张涛机械工程17-4班61 杜文千自动化17-2班62 蔡佳文机械工程17-4班17-物联网工程2 63 高健玮班64 陈明宇城市建筑工程系土木工程(城市地下空间)17-1班65 许常兴机械工程17-5班66 李嘉军17计科1班67 胡盛彬机械工程17—6班68 张满钧物联网工程1班69 伍国微物联网16-170 杨磊物联网16-171 金泽宇物联网16-172 张浩麒物联网16-173 魏树行自动化17-1班74 慕佳伟自动化17-1班75 王豪元自动化17-1班76 郝世禹自动化17-1班77 谢天自动化17-1班78 曹斌自动化17-1班79 卢俊俭自动化17-1班80 申钰齐自动化17-1班81 尹苑17国贸一班82 雷炜轩电信科17-2班83 张文尧机械工程17-5班84 周佳易机械工程17-5班17国际经济与贸85 艾颂玲易2班17城市地下空间86 段国健四班87 刘可欣自动化17-2班88 李佳倩自动化17-4班89 谷扬帆自动化17-4计算机科学与技90 曹明东术17-2班计算机科学与技91 严和霖术17-2班92 雷新宇经济学16-2班93 陈育恒自动化17-1班94 谢富旗物联网17-2班95 岳吉祥机工17-6班材料成型及控制96 苏海鹏工程17-1班97 胡泽南计科17-4班98 何超计科17-4班99 刘文凯计科17-4班国际经济与贸易100 胡梦琳17-1班101 刘昕东机械工程17-6班102 葛鹏机械工程17-6班103 李文鹏机械工程17-6班材料成型及控制104 刘伯彦工程17-2班材料成型及控制105 汪健工程17-2班106 陈家鑫材料成型及控制工程17-2班107 邹文霞材料成型及控制工程17-2班过程装备与控制108 祁帅杰工程17-2班109 陈美好机械工程17-3班过程装备与控制110 时浩工程17-2班材料成型及控制111 章楚璨工程17-1班112 郭子楠机械工程17-2班材料成型及控制113 祁玙璠工程17-1班114 肖隆辉17-土木2班115 马淼自动化17-2班材料成型及控制116 蹇相鸿工程17-3班117 兰育清自动化17-4班118 郭俐奇自动化17-3班119 刘海洋机械工程17-3班120 欧阳震机械工程17-3班121 苏卫东机械工程17-3班122 阮志成机械工程17-3班123 张浩然机械工程17-3班124 杨逸南机械工程17-3班125 陈美好机械工程17-3班126 张钲昊机械工程17-3班127 胡卫东机械工程17-3班128 李明辉自动化17-2班129 王苗苗机工17-5班130 廖香林机工17-4班131 王雅茹应用化学17-2班132 杨光机械工程17-6 133 李煜17-计科五班134 霍永康计科17-4班135 韩建冬自动化17-2班136 陈林阳土木17-2班计算机科学与技137 陈愈知术17-2班机械工程17―3 138 许源源班材料成型及控制139 章楚璨工程17-1班材料成型及控制140 祁玙璠工程17-1班材料成型及控制141 孙宇工程17-1班材料成型及控制142 郑梦绮工程17-1班材料成型及控制143 刘瀚璋工程17-1班材料成型及控制144 朱敬玉工程17-1班材料成型及控制145 李靖工程17-1班材料成型及控制146 苏海鹏工程17-1班新能源材料与器147 李享件17-1班新能源材料与器148 贺雅欣件17-2班新能源材料与器149 李晨杰件17-2班材料成型及控制150 郑宇工程17-3班材料成型及控制151 刘伯彦工程17-2班材料成型及控制152 汪健工程17-2班153 陈家鑫材料成型及控制工程17-2班154 邹文霞材料成型及控制工程17-2班155 喻子豪物联网17-2班156 李政轩物联网17-2班157 文华物联网17-2班158 李晓昆机械工程17-2班159 郭子楠机械工程17-2班160 赵欣机械工程17-2班161 张家祺机械工程17-2班162 赵泽曜机械工程17-2班17级机械工程专163 王瑞龙业2班17级机械工程专164 陈凯文业2班17级机械工程专165 曹增业2班166 池鑫宇物联网17-2班材料成型及控制167 胡钊然工程16-2班材料成型及控制168 化广信工程16-2班169 陈文龙机械工程17-2班170 姜凯松17土木2班171 范春晖自动化17-3班172 杨金辉自动化17-3班173 王迪电信科17-1班174 王海涛17计科一班175 谭澳17计科二班176 沈启凡17计科二班177 谢玉山电信科17-3 178 王旭物联网17-2。
MSP430微控制器低功耗设计方法分析随着物联网和嵌入式系统的快速发展,对微控制器低功耗设计方法的需求越来越迫切。
MSP430微控制器作为一种低功耗微控制器,具有出色的性能和低功耗特性,逐渐被广泛应用于各种电池供电的设备中。
本文将以MSP430微控制器为例,深入探讨其低功耗设计方法。
在设计MSP430微控制器应用时,低功耗是一个重要的考虑因素。
为了最大程度地减少功耗,我们可以采取以下几种方法。
1. 优化算法设计:在编写程序时,我们可以通过优化算法来减少微控制器的工作负载和能耗。
例如,避免使用复杂的循环和浮点运算,改用简单的逻辑和整数运算,可以有效降低功耗。
2. 睡眠模式:MSP430微控制器具有多种睡眠模式,可以在不需要工作时进入低功耗状态。
通过选择合适的睡眠模式,可以最大程度地降低功耗。
在睡眠模式中,MSP430微控制器会关闭一些不必要的模块和电源,从而降低功耗。
3. 时钟管理:时钟是微控制器的核心,也是功耗的主要来源之一。
合理管理时钟可以有效减少功耗。
在MSP430微控制器中,可以通过调整时钟频率、选择更低功耗的时钟源以及使用MCLK、SMCLK和ACLK等不同的时钟模块来实现功耗优化。
4. I/O 管理:I/O 端口通常是微控制器的功耗主要负责者之一。
通过合理管理I/O 端口,可以降低功耗。
例如,及时关闭不需要的输入/输出端口,降低端口的驱动能力或适当使用外部中断等方法。
5. 采用低功耗模块:MSP430微控制器具有丰富的低功耗模块和外设,可以根据需求选择合适的模块来降低功耗。
例如,MSP430可以通过功耗优化的ADC模块、计时器模块和UART模块等,实现对外设的低功耗控制。
除了以上几种方法,还有一些其他的设计技巧可以帮助我们在低功耗条件下充分发挥MSP430微控制器的优势。
6. 电源电压调整:降低微控制器的电源电压可以有效减少功耗。
MSP430微控制器通常具有多种电源供电电压选择,可以根据应用需求选择合适的工作电压。
智能温度采集报警系统的低功耗设计作者:刘明来源:《科教创新》2013年第02期摘要:随着现代电子技术的飞速发展,电子产品的低功耗设计越来越到人们的重视,尤其是对便携式电子产品的低功耗设计更是近年来电子产品设计的一个主潮流。
本论文以智能温度采集报警系统为研究对象,重点探讨了基于MSP430F149型超低功耗单片机在温度采集报警系统上的应用与开发。
关键词:MSP430单片机低功耗硬件设计1.设计的意义本次设计的温度采集报警系统是一种能够长期自动工作的设备,它使用的电源为电池也可为充电电池,因此其功耗的大小直接决定了其使用的时间的长短。
而且一般情况下这类系统的工作环境都比较恶劣,因此,对该系统进行低功耗设计不仅便于延长使用寿命,便与安装、管理与维护,而且由于该系统具有其他无人值守自动设备相似的特点,对该系统进行低功耗设计的方式方法可以应用到其他设计中,这具有非常重要的社会效益和经济效益。
本设计的应用性比较强,如稍加改装可做实验室温湿度监控系统、仓储温湿度监控系统、工业环境监控系统等。
2.系统的设计2.1总体设计方案本系统对温度数据进行采集,温度传感器通过某种关系的换算,就可以得到温度与输出电压的关系,单片机通过模拟口采集得到传感器输出电压,通过设置的参考电压就可以得到传感器的输入带电压,再通过一定关系的转换就获得温度参数,将得到的温度参数进行分析后进行相应的处理,比如显示或者报警。
另外系统通过键盘输入来完成对报警温度的上、下限设置;通过显示电路将得到的数据显示出来;当温度超过上限和下限的时候,系统进行报警,报警通过驱动一个蜂鸣器来实现。
本设计的系统硬件部分主要包括CPU处理模块、传感器采集模块、键盘输入模块、电源及复位模块[1]、报警模块[2]、显示模块[3]以及串口通信模块等。
整个系统的原理框图如图2-1所示:2.2设计的基本思路2.2.1系统的低功耗设计一个单片机系统的功耗受多因素的影响,主要有系统的技术指标,芯片和元器件的选择,及系统的工作方式等。
STM8S功耗管理(设计通法)这篇文章我们聊下功耗管理,不仅仅是STM8S,51,32,等等单片机都绕不过这个坎,在文章最后试图给出一些设计的通法。
对于由电池供电的系统来说,功耗是非常重要的指标。
通常,要求系统的平均功耗小于某个目标值来保证一个适当的电池续航时间。
这意味着系统可以在短时间内功耗较大,而把平均功耗维持在目标值以下。
在互补金属氧化物半导体(CMOS)数字逻辑电路中,功耗为下列因子之和:●静态功耗(主要由晶体管的偏置电流和漏电流产生)●动态功耗,取决于电源电压和工作时钟频率,按照下面公式:动态功耗 = CV^2f,其中─ C为CMOS负载电容─ V为电源电压─ f为时钟频率在CMOS逻辑电路以一定时钟频率运行时,静态功耗与动态功耗相比是可以忽略的。
但在一些低功耗模式下,时钟不再运行,此时静态功耗是主要的功耗源。
因此,功耗主要取决于:●微控制器单元(MCU)的芯片面积:所采用的工艺,晶体管的数量,片上集成和使用的模拟功能/外设。
●MCU电源电压:CMOS逻辑电路中消耗的电流与电源电压的平方成正比。
因此,可以通过降低供电电压来降低功耗。
●时钟频率:在不要求进行高速处理的应用中,降低时钟频率可以降低功耗。
●激活的外设数目或使用的MCU功能数目(CSS、BOR、PVD……):激活的外设数目越多,或使用的MCU功能数目越多,则功耗越大。
●工作模式:功耗会随着应用所处的不同功耗模式而改变(CPU开启/关闭,晶振开启/关闭……)。
系统在3v-5.5v之间,其实是比较宽的,看框图有两个稳压器。
就分为内外两种完整的时钟树从这里输入主时钟源(f MASTER )为内核和外设提供时钟,只读寄存器CLK_CMSR包含了当前主时钟源的选择信息。
可以读出来。
这些就是时钟管理STM8S的时钟管理起来比较自由,随便的开关。
给大家表演个封装库。
先搞个转换用的宏函数.从基地址开始+相应的偏移地址就算封装好啦!偏移的地址在数据手册里面,是0。
ABOV单片机定义ABOV单片机是一种嵌入式微控制器,由韩国公司ABOV Semiconductor(现已更名为Silicon Works)设计和生产。
它是一种高性能、低功耗的单片机,广泛应用于各种电子设备和工业自动化系统中。
单片机的基本概念单片机是一种集成了处理器核心、存储器和各种外设接口的微型计算机系统。
相比于传统的计算机系统,单片机具有体积小、功耗低、成本低等特点,适合用于嵌入式系统中。
ABOV单片机是基于CISC(Complex Instruction Set Computing)架构设计的,它采用了8位或16位的数据总线,具有丰富的指令集和强大的计算能力。
它还内置了各种外设接口,如通用输入输出口(GPIO)、串行通信接口(UART、SPI、I2C)、定时器/计数器、模拟数字转换器(ADC)等,可以满足不同应用场景的需求。
ABOV单片机的特点ABOV单片机具有以下几个特点:1.高性能:ABOV单片机采用了先进的制程工艺和优化的架构设计,具有高运算速度和强大的计算能力。
它可以处理复杂的算法和实时任务,适用于要求高性能的应用场景。
2.低功耗:ABOV单片机在设计时考虑了功耗优化,采用了节能技术和智能功耗管理策略。
它可以在低电压和低功耗模式下工作,延长电池寿命,降低能源消耗。
3.丰富的外设接口:ABOV单片机内置了多种外设接口,如GPIO、UART、SPI、I2C等,可以方便地连接和控制各种外部设备。
这些接口可以满足不同应用场景的需求,提供了灵活的扩展性。
4.强大的软件支持:ABOV单片机支持多种编程语言和开发工具,如C语言、汇编语言和集成开发环境(IDE)。
开发人员可以使用这些工具进行程序开发、调试和测试,提高开发效率。
5.可靠性和稳定性:ABOV单片机经过严格的质量控制和可靠性测试,具有良好的稳定性和可靠性。
它可以在恶劣的工作环境中正常工作,具有较高的抗干扰能力和抗电磁干扰能力。
ABOV单片机的应用领域ABOV单片机广泛应用于各种电子设备和工业自动化系统中,包括但不限于以下领域:1.消费电子产品:ABOV单片机可以用于智能手机、平板电脑、电视机、音频设备等消费电子产品中。
ST STM32L072CZ超低功耗32位ARM MCU开发方案ST公司的stm32L072xx系列产品是超低功耗32位基于ARM®-based Cortex®-M0+的MCU,集成了多达192KB 闪存,20KB SRAM,6KB EEPROM以及USB,ADC和DAC等.工作频率从表32 kHz到高达32 MHz(最大),0.95 DMIPS/MHz.工作电压1.65V-3.6V,工作温度-40到125℃,待机模式功耗0.29 μA,停止模式为0.43 μA,运行模式可低至93 μA/MHz,从闪存的叫醒时间为5 μs,12为ADC转换在10ksps时功耗41 μA,多达84个快速I/O.器件嵌入标致和先进的通信接口包括多达3个I2C,两个SPI,一个I2S,四个USART,一个低功耗UART(LPUART)和一个无晶振的USB.器件提供多达24个容性检测通路,以简化应用时增加触摸检测功能.STM32L072xx还包括实时时钟和一组备份寄存器.主要用在气体/水表和工业传感器,遥控和用户接口,健康和健美设备,PC外设,游戏和GPS设备,告警系统,有线和无线传感器和视频互连.本文介绍了STM32L072xx系列主要特性和框图,时钟树框图和电源方案图,以及B-L072Z-LRWAN1 Discovery套件主要特性,硬件框图,电路图,材料清单和PCB设计图.The ultra-low-power STM32L072xx are offered in 10 different package typesfrom 32 pins to 100 pins. Depending on the device chosen, different sets of peripherals are included, the description below gives an overview of the complete range of peripherals proposed in this family. These features make the ultra-low-power STM32L072xx microcontrollers suitable for a wide range of applications:• Gas/water meters and industrial sensors• Healthcare and fitness equipment• Remote control and user interface• PC peripherals, gaming, GPS equipment• Alarm system, wired and wireless sensors, video inter com.This STM32L072xx datasheet should be read in conjunction with the STM32L0x2xx reference manual (RM0376).The ultra-low-power STM32L072xx microcontrollers incorporate the connectivity power of the universal serial bus (USB 2.0 crystal-less) with the high-performance Arm Cortex-M0+ 32-bit RISC core operating at a 32 MHz frequency, a memory protection unit (MPU), high-speed embedded memories (up to 192 Kbytes of Flash program memory, 6 Kbytes of data EEPROM and 20 Kbytes of RAM) plus an extensive range of enhanced I/Os and peripherals. The STM32L072xx devices provide high power efficiency for a wide range of performance. It is achieved with a large choice of internal and external clock sources, an internal voltage adaptation and several low-power modes.The STM32L072xx devices offer several analog features, one 12-bit ADC with hardware oversampling, two DACs, two ultra-low-power comparators, several timers, one low-power timer (LPTIM), four general-purpose 16-bit timers and two basic timer, one RTC and one SysTick which can be used as timebases. They also feature two watchdogs, one watchdog with independent clock and window capability and one window watchdog based on bus clock. Moreover, the STM32L072xx devices embed standard and advanced communication interfaces: up to three I2Cs, two SPIs, one I2S, four USARTs, a low-power UART (LPUART), and a crystal-less USB. The devices offer up to 24 capacitive sensing channels to simply add touch sensing functionality to any application. The STM32L072xx also include a real-time clock and a set of backup registers that remain powered in Standby mode. The ultra-low-power STM32L072xx devices operate from a 1.8 to 3.6 V power supply (down to 1.65 V at power down) with BOR and from a 1.65 to 3.6 V power supply without BOR option. They are available in the -40 to +125℃temperature range. A comprehensive set of power-saving modes allows the design of low-powerapplications.STM32L072CZ主要特性:• Ultra-low-power platform– 1.65 V to 3.6 V power supply– -40 to 125℃ temperature range–0.29 μA Standby mode (3 wakeup pins)–0.43 μA Stop mode (16 wakeup lines)–0.86 μA Stop mode + RTC + 20-Kbyte RAM retention– Down to 93 μA/MHz in Run mode–5 μs wakeup time (from Flash memory)–41 μA 12-bit ADC conversion at 10 ksps• Core: Arm® 32-bit Cortex®-M0+ with MPU– From 32 kHz up to 32 MHz max.– 0.95 DMIPS/MHz• Memories– Up to 192-Kbyte Flash memory with ECC(2 banks with read-while-write capability)– 20 -Kbyte RAM– 6 Kbytes of data EEPROM with ECC– 20-byte backup register– Sector protection against R/W operation• Up to 84 fast I/Os (78 I/Os 5V tolerant)• Reset and supply management– Ultra-safe, low-power BOR (brownout reset) with 5 selectable thresholds– Ultra-low-power POR/PDR– Programmable voltage detector (PVD)• Clock sources– 1 to 25 MHz crystal oscillator– 32 kHz oscillator for RTC with calibration– High speed internal 16 MHz factory-trimmed RC (+/- 1%)– Internal low-power 37 kHz RC– Internal multispeed low-power 65 kHz to 4.2 MHz RC– Internal self calibration of 48 MHz RC for USB– PLL for CPU clock• Pre-programmed bootloader– USB, USART supported• Development support– Serial wire debug supported• R ich Analog peripherals– 12-bit ADC 1.14 Msps up to 16 channels (down to 1.65 V)– 2 x 12-bit channel DACs with output buffers (down to 1.8 V)– 2x ultra-low-power comparators (window mode and wake up capability, down to 1.65 V) • Up to 24 capacitive sensi ng channels supporting touchkey, linear and rotary touch sensors• 7-channel DMA controller, supporting ADC, SPI, I2C, USART, DAC, Timers• 11x peripheral communication interfaces– 1x USB 2.0 crystal-less, battery charging detection and LPM– 4x USART (2 with ISO 7816, IrDA), 1x UART (low power)– Up to 6x SPI 16 Mbits/s– 3x I2C (2 with SMBus/PMBus)• 11x timers: 2x 16-bit with up to 4 channels, 2x 16-bit with up to 2 channels, 1x 16-bit ultra-low-power timer, 1x SysTick, 1x RTC, 2x 16-bit basic for DAC, and 2x watchdogs (independent/window)• CRC calculation unit, 96-bit unique ID• True RNG and firewall protection• All packages are ECOPACK2图1.STM32L072xx系列框图图2.STM32L072xx系列时钟树框图图3.STM32L072xx系列电源方案图B-L072Z-LRWAN1 LoRa®/Sigfox™Discovery套件The B-L072Z-LRWAN1 Discovery kit embeds the CMWX1ZZABZ-091 LoRa®/Sigfox™ module (Murata). This Discovery kit allows users to develop easily applications with the STM32L072CZ and the LoRa®/Sigfox™ RF connectivity in one single module. The B-L072Z-LRWAN1 Discovery kit has the full set of features available in the STM32L0 Series and offers ultra-low-power and LoRa®/Sigfox™ RF features. The B-L072Z-LRWAN1 Discovery kit is a low-cost and easy-to-use development kit to quickly evaluate and start a development with an STM32L072CZ microcontroller.The B-L072Z-LRWAN1 Discovery kit includes LoRa®/Sigfox™ RF interface, LEDs, push-buttons, antenna, Arduino™ Uno V3 connectors, USB 2.0 FS connector in Micro-B format. The integrated ST-LINK/V2-1 provides an embedded in-circuit debugger and programmer for the STM32L0 MCUs.The LoRaWAN™ stack is certified class A and C compliant. It is available inside theI-CUBE-LRWAN firmware package.TheSigfox™ stack is RCZ1, RCZ2, and RCZ4 certified. It is available inside the X-CUBE-SFOX expansion package.To help users setting up a complete node (LoRaWAN™, Sigfox™, or both), the B-L072Z-LRWAN1 Discovery kit comes with the STM32 comprehensive free software libraries and examples available with the STM32Cube package, as well as a direct acce ss to the Arm® Mbed Enabled™ resources at the website.图4. B-L072Z-LRWAN1 LoRa®/Sigfox™Discovery套件外形图B-L072Z-LRWAN1 Discovery套件主要特性:• CMWX1ZZABZ-091 LoRa®/Sigfox™ module (Murata)– Embedded ultra-low-power STM32L072CZ Series MCUs, based on Arm® Cortex® -M0+ core, with 192 Kbytes of Flash memory, 20 Kbytes of RAM, 20 Kbytes of EEPROM– Frequency range: 860 MHz - 930 MHz– Frequency MHz (min): 860 MHz– Frequency MHz (max): 930 MHz– USB 2.0 FS– 4-channel,12-bit ADC, 2xDAC– 6-bit timers, LP-UART, I2C and SPI– Embedded SX1276 transceiver–LoRa®, FSK, GFSK, MSK, GMSK and OOK modulations (+ Sigfox™ compatibility)– +14 dBm or +20 dBm selectable output power– 157 dB maximum link budget– Programmable bit rate up to 300 kbit/s– High sensitivity: down to -137 dBm– Bullet-proof front end: IIP3 = -12.5 dBm– 89 dB blocking immunity– Low RX current of 10 mA, 200 nA register retention– Fully integrated synthesizer with a resolution of 61 Hz– Built-in bit synchronizer for clock recovery– Sync word recognition– Preamble detection– 127 dB+ dynamic range RSSI• Including 50 ohm SMA RF antenna• 1 user and reset push-buttons• Board connecto rs:– USB FS connector– SMA and U.FL RF• Board expansion connectors:–Arduino™ Uno V3• 7 LEDs:– 4 general-purpose LEDs– 5 V-power LED– ST-LINK-communication LED– Fault-power LED• Flexible power-supply options: ST-LINK USB VBUS or external sources• On-board ST-LINK/V2-1 debugger/programmer with USB re-enumeration capability: mass storage, virtual COM port and debug port• Comprehensive free software libraries and examples available with the STM32Cube package• Support of a wide choice of Integrated Development Environments (IDES) including IAR™, Keil®, GCC-based IDEs, Arm® Mbed™(a)• Arm® Mbed Enabled™ compliant图5. B-L072Z-LRWAN1 Discovery套件硬件框图图6. B-L072Z-LRWAN1 顶层布局图图7. B-L072Z-LRWAN1 底层布局图图8. B-L072Z-LRWAN1电路图(1)图9. B-L072Z-LRWAN1电路图(2)图10. B-L072Z-LRWAN1电路图(3)图11. B-L072Z-LRWAN1电路图(4)图12. B-L072Z-LRWAN1电路图(5)图13. B-L072Z-LRWAN1电路图(6)图14. B-L072Z-LRWAN1 PCB设计图(1)图15. B-L072Z-LRWAN1 PCB设计图(2)图16. B-L072Z-LRWAN1 PCB设计图(3)图17. B-L072Z-LRWAN1 PCB设计图(4)图18. B-L072Z-LRWAN1 PCB设计图(5)图19. B-L072Z-LRWAN1 PCB设计图(6)图20. B-L072Z-LRWAN1 PCB设计图(7)图21. B-L072Z-LRWAN1 PCB设计图(8)图22. B-L072Z-LRWAN1 PCB设计图(9)图23. B-L072Z-LRWAN1 PCB设计图(10)图24. B-L072Z-LRWAN1 PCB设计图(11)图25. B-L072Z-LRWAN1 PCB设计图(12)图26. B-L072Z-LRWAN1 PCB设计图(13)图27. B-L072Z-LRWAN1 PCB设计图(14)图28. B-L072Z-LRWAN1 PCB设计图(15)图29. B-L072Z-LRWAN1 PCB设计图(16)图30. B-L072Z-LRWAN1 PCB设计图(17)。
单片机系统的低功耗设计策略 摘要:嵌入式系统的低功耗设计需要全面分析各方面因素,统筹规划。在设计之初,各个因素往往是相互制约、相互影响的,一个降低系统功耗的措施有时会带来其他方面的“负效应”。因此,降低系统整体功耗,需要仔细分析和计算。本文从硬件和应用软件设计两个方面,阐述一个以单片机为核心的嵌入式系统低功耗设计时所需考虑的一些问题。 关键词:低功耗设计 硬件设计 应用软件设计 低功耗模式 在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。 随着越来越多的嵌入式应用使用了实时操作系统,如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。限于篇幅,本文仅从硬件设计和应用软件设计两个方面讨论。 1 硬件设计 选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。 1.1 选用尽量简单的CPU内核 在选择CPU内核时切忌一味追求性能。8位机够用,就没有必要选用16位机,选择的原则应该是“够用就好”。现在单片机的运行速度越来越快,但性能的提升往往带来功耗的增加。一个复杂的CPU集成度高、功能强,但片内晶体管多,总漏电流大,即使进入STOP状态,漏电流也变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。 1.2 选择低电压供电的系统 降低单片机的供电电压可以有效地降低其功耗。当前,单片机从与TTL兼容的5 V供电降低到3.3 V、3 V、2 V乃至1.8 V供电。供电电压降下来,要归功于半导体工艺的发展。从原来的3 μm工艺到现在的0.25、0.18、0.13 μm工艺, CMOS电路的门限电平阈值不断降低。低电压供电可以大大降低系统的工作电流,但是由于晶体管的尺寸不断减小,管子的漏电流有增大的趋势,这也是对降低功耗不利的一个方面。 目前,单片机系统的电源电压仍以5 V为主,而过去5年中,3 V供电的单片机系统数量增加了1倍,2 V供电的系统也在不断增加。再过五年,低电压供电的单片机数量可能会超过5 V电压供电的单片机。如此看来,供电电压降低将是未来单片机发展的一个重要趋势。 1.3 选择带有低功耗模式的系统 低功耗模式指的是系统的等待和停止模式。处于这类模式下的单片机功耗将大大小于运行模式下的功耗。过去传统的单片机,在运行模式下有wait和stop两条指令,可以使单片机进入等待或停止状态,以达到省电的目的。 等待模式下,CPU停止工作,但系统时钟并不停止,单片机的外围I/O模块也不停止工作;系统功耗一般降低有限,相当于工作模式的50%~70%。 停止模式下,系统时钟也将停止,由外部事件中断重新启动时钟系统时钟,进而唤醒CPU继续工作,CPU消耗电流可降到μA级。在停止模式下,CPU本身实际上已经不消耗什么电流,要想进一步减小系统功耗,就要尽量将单片机的各个I/O模块关掉。随着I/O模块的逐个关闭,系统的功耗越来越小,进入停止模式的深度也越来越深。进入深度停止模式无异于关机,这时的单片机耗电可以小于20 nA。其中特别要提示的是,片内RAM停止供电后,RAM中存储的数据会丢失,也就是说,唤醒CPU后要重新对系统作初始化。因此在让系统进入深度停止状态前,要将重要系统参数保存在非易失性存储器中,如EEPROM中。深度停止模式关掉了所有的I/O,可能的唤醒方式也很有限,一般只能是复位或IRQ中断等。 保留的I/O模块越多,系统允许的唤醒中断源也就越多。单片机的功耗将根据保留唤醒方式的不同,降至1μA至几十μA之间。例如,用户可以保留外部键盘中断,保留异步串行口(SCI)接收数据中断等来唤醒CPU。保留的唤醒方式越多,系统耗电也就会多一些。其他可能的唤醒方式还有实时钟唤醒、看门狗唤醒等。停机状态较浅的情况下,外部晶振电路还是工作的。 图1以Freescale的HCS08单片机为例,给出不同运行模式下的系统功耗。HCS08是8位单片机,有多个系列,各系列I/O模块数目有所不同,但低功耗模式下的电流消耗大致相同。
图1 HCS08单片机各模式下的耗电 以R系列单片机为例:在室温(25℃)下,不包括I/O口的负载,以2 V供电,将可编程锁相环时钟设为16 MHz(总线时钟8 MHz),典型电流值为2.6 mA,当温度升高到85℃时,供电电流也升高到3.6 mA;而采用3 V供电,这一组数据升高至3.8 mA和4.8 mA。用2 V供电,直接使用外部晶振2 MHz(总线时钟1 MHz)时,典型运行电流降至450 μA。在等待状态下,因时钟并没有停止,耗电情况和时钟频率有很大关系,节省的功耗有限;而进入轻度停止(stop3),以外部中断唤醒,电流消耗在0. 5 μA左右。在中度停止态(stop2),功耗可进一步降低。使用内部1 kHz的时钟,保持1个运行的时钟,周期性唤醒CPU,所增加的电流约为0.3 μA。在深度停止态(stop1),RAM的数据也不再保留,只能通过外部复位重启系统,此时的电流消耗可降到20 nA。以上数据都是在室温下测量所得。当环境温度升高到85℃时,电流消耗可能增加3~5倍。 1.4 选择合适的时钟方案 时钟的选择对于系统功耗相当敏感,设计者需要注意两个方面的问题: 第一是系统总线频率应当尽量低。单片机内部的总电流消耗可分为两部分——运行电流和漏电流。理想的CMOS开关电路,在保持输出状态不变时,是不消耗功率的。例如,典型的CMOS反相器电路,如图2所示,当输入端为零时,输出端为1,P晶体管导通,N晶体管截止,没有电流流过。而实际上,由于N晶体管存在一定漏电流,且随集成度提高,管基越薄,漏电流会加大。温度升高,CMOS翻转阈电压会降低,而漏电流则随环境温度的增高变大。在单片机运行时,开关电路不断由“1”变“0”、由“0”变“1”,消耗的功率是由单片机运行引起的,我们称之为“运行电流”。如图2所示,在两只晶体管互相变换导通、截止状态时,由于两只管子的开关延迟时间不可能完全一致,在某一瞬间会有两只管子同时导通的情况,此时电源到地之间会有一个瞬间较大的电流,这是单片机运行电流的主要来源。可以看出,运行电流几乎是和单片机的时钟频率成正比的,因此尽量降低系统时钟的运行频率可以有效地降低系统功耗。 图2 典型的CMOS反相器 第二是时钟方案,也就是是否使用锁相环、使用外部晶振还是内部晶振等问题。新一代的单片机,如飞思卡尔的HCS08系列单片机,片内带有内部晶振,可以直接作为时钟源。使用片内晶振的优点是可以省掉片外晶振,降低系统的硬件成本;缺点是片内晶振的精度不高(误差一般在25%左右,即使校准之后也可能有2%的相对误差),而且会增加系统的功耗。 现代单片机普遍采用锁相环技术,使单片机的时钟频率可由程序控制。锁相环允许用户在片外使用频率较低的晶振,可以很大地减小板级噪声;而且,由于时钟频率可由程序控制,系统时钟可以在一个很宽的范围内调整,总线频率往往能升得很高。但是,使用锁相环也会带来额外的功率消耗。 单就时钟方案来讲,使用外部晶振且不使用锁相环是功率消耗最小的一种。 2 应用软件方面的考虑 之所以使用“应用软件”的说法,是为了区分于“系统软件”或者“实时操作系统”。软件对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件上的缺陷并不像硬件那样容易发现,同时也没有一个严格的标准来判断一个软件的低功耗特性。尽管如此,设计者仍需尽量将应用的低功耗特性反映在软件中,以避免那些“看不见”的功耗损失。 2.1 用“中断”代替“查询” 一个程序使用中断方式还是查询方式对于一些简单的应用并不那么重要,但在其低功耗特性上却相去甚远。使用中断方式,CPU可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,CPU必须不停地访问I/O寄存器,这会带来很多额外的功耗。 2.2 用“宏”代替“子程序” 程序员必须清楚,读RAM会比读Flash带来更大的功耗。正是因为如此,低功耗性能突出的ARM在CPU设计上仅允许一次子程序调用。因为CPU进入子程序时,会首先将当前CPU寄存器推入堆栈(RAM),在离开时又将CPU寄存器弹出堆栈,这样至少带来两次对RAM的操作。因此,程序员可以考虑用宏定义来代替子程序调用。对于程序员,调用一个子程序还是一个宏在程序写法上并没有什么不同,但宏会在编译时展开,CPU只是顺序执行指令,避免了调用子程序。唯一的问题似乎是代码量的增加。目前,单片机的片内Flash越来越大,对于一些不在乎程序代码量大一些的应用,这种做法无疑会降低系统的功耗。 2.3 尽量减少CPU的运算量 减少CPU运算的工作可以从很多方面入手:将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效地降低CPU的功耗(很多单片机都有快速有效的查表指令和寻址方式,用以优化查表算法);不可避免的实时计算,算到精度够了就结束,避免“过度”的计算;尽量使用短的数据类型,例如,尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。 2.4 让I/O模块间歇运行 不用的I/O模块或间歇使用的I/O模块要及时关掉,以节省电能。RS232的驱动需要相当的功率,可以用单片机的一个I/O引脚来控制,在不需要通信时,将驱动关掉。不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。因为如果引脚没有初始化,可能会增大单片机的漏电流。特别要注意有些简单封装的单片机没有把个别I/O引脚引出来,对这些看不见的I/O引脚也不应忘记初始化。 3 结论 一个成功的低功耗设计应该是硬件设计和软件设计的结合。从硬件设计开始,就应该充分意识到一个低功耗应用的特性,选择一款合适的单片机,通过对其特性的了解,设计系统方案;在软件设计上,要考虑到低功耗编程的特殊性,并尽量使用单片机的低功耗模式。 限于篇幅,仅仅讨论了低功耗设计中的一些常见问题,更多的问题只能靠设计者去实际分析和解决了。