tag 标签: 低功耗

相关博文
  • 热度 4
    2021-3-10 15:25
    386 次阅读|
    1 个评论
    – 新型PG22微控制器支持大批量、低功耗的消费和工业产品 – 中国,北京 - 2021年3月4日 - Silicon Labs(亦称“芯科科技”)宣布推出EFM32PG22(PG22)32位微控制器(MCU),这是一款低成本、高性能的解决方案,拥有业界领先的低功耗、性能及安全性。凭借易于使用且高精度的模拟功能,PG22非常适合于快速开发尺寸受限且对低功耗运行有严苛要求的消费和工业应用。 Silicon Labs物联网副总裁Matt Saunders表示:“市场对大批量、低功耗物联网(IoT)产品的需求一直在快速增长。PG22是一款经过精心设计的32位MCU,其价格贴近8位MCU市场,在尺寸和代码方面与其对应的无线产品保持兼容。” PG22通过一系列独特的产品功能为市场提供领先的32位MCU性能,包括: · 超低功耗:运行模式下27 µA/MHz和EM2低功耗模式下1.1 µA(带有8k RAM保持); · 76.8 MHz的Arm® Cortex®-M33内核; · 具有64k / 128k / 256k / 512k闪存和32k RAM; · 紧凑的封装:5 mm x 5 mm QFN40(26 GPIO)或4 mm x 4 mm QFN32(18 GPIO); · 领先的设备安全性,包括具有信任根和安全加载程序(RTSL)的安全启动; · 多种外设,例如16位ADC、PDM、内置睡眠晶体和温度传感器。 PG22与屡获殊荣的EFR32xG22无线SoC(BG22、MG22和FG22)保持引脚及软件兼容,使设计人员可以利用可扩展的嵌入式平台来简化产品开发,提高成本效益。凭借与xG22 SoC完全一致的外形尺寸和代码,开发人员能够进行应用程序共享,并以即插即用的方式升级产品来支持低功耗蓝牙(Bluetooth Low Energy)、Zigbee或专有(2.4 GHz)无线连接。 价格与供货 EFM32PG22 MCU现已可供货,支持5mm x 5mm QFN40和4mm x 4mm QFN32封装。PG22 MCU是低成本的嵌入式MCU,批量价格低于1美元。PG22开发套件也已经准备就绪,此款小尺寸原型开发板零售价格为19.99美元。
  • 热度 5
    2021-1-18 20:20
    897 次阅读|
    1 个评论
    从事嵌入式相关的工作也好几年,陆陆续续做过几个项目的。在这里借此机会,也回顾一下这些年的低功耗探索之路。感谢以下文章给我的提醒 一. 关于低功耗的要点 首先是选型,这个选型包括mcu的选型,包括外设的选型,其中,比如STM328L,或者stm32L 这种就是有着明显区别于同系列其他产品的特质,在于“L” 也就是低功耗,如果他本身达不到这个要求,那你再怎么折腾也无济于事。特别的,选外设的时候,要注意看datasheet,一般都会告诉你他们的功耗可以做到多低。 实现低功耗绝不只是单独的程序或者硬件,需要两者协同。硬件这方面我懂些皮毛,不足以指导各位,软件部分接下来说道说道。 程序的角度来说,低功耗对于设备而言,大家可能都会想到 比如关闭外设时钟,设能外设的低功耗使他进入低功耗模式等等,还有就是降频,这也是行之有效的一种手段。这个就总结为模块本身需要达到低功耗所需要做的准备。 硬件电路部分本人涉及不算多,但从程序角度而言,有些IO需要明确状态。尽量避免设置为悬浮输入,这样会有漏电流。还有就是走线也要注意,这方面大神很多,我就不献丑了。 如果只是以上几点,只能说是进入低功耗的一种手段,但是程序之间各个功能的区分,各个状态之间的转换也是很重要,不能单独把低功耗作为一种"炫技",什么时候可以进入低功耗,什么时候不可以,时序图怎么走,开放人员要很清楚,也要让mcu很清楚。 实现思路,一般来说,有以下2种主要的做法 周期唤醒模式,比如说1s钟唤醒100ms(根据具体的应用场景而定),RTC唤醒。你想想,你一天大半时间都在睡觉,自然功耗就低了。 一直处于睡眠状态,有中断了才去唤醒,比如按键中断等 这个就好像你一直在睡觉 闹钟叫你才起来,你安心睡觉就行,这样功耗也是很低。而且响应及时,是常见的做法。针对这个问题,大多数是通过外设去唤醒的。 二. 关于低功耗的误区 低功耗是用电池供电才需要做的,这显然是错误的,程序一直在高速运行,一直在高温的情况下运行,对于模块本身的寿命也是有很大的损耗。 三. 关于低功耗的注意事项 在设计初期,应该先用最小系统进行测试,保证能达到datashee上面的低功耗要求。然后再逐个添加外设。 有些mcu的低功耗是会丢数据,这样需要做好数据的保存,比如写道flash 四. 关于低功耗的测试方法 据之前做过的一个例子,你需要用到一下两款设备,万用表和直流电源,具体的做法是将 设备串联起来,将万用表打至合适量程的电流档,然后正极接万用表黑色版,万用表红色接模块正极,模块负极接到直流电源负极。注意不要短路!! 打开电源,将电源调整至设备正常工作电压,一般是3.3v或者5v 观察电流表上的度数,可以做些简单计算(正常运行时的电流 * 电压 * 运行时间 + 休眠电流 * 电压 * 休眠时间 ) /(休眠时间 + 运行时间),得到一个单位时间内消耗的功率有多少 感谢大家,有问题望不吝赐教,期待您的回复
  • 热度 2
    2020-7-4 06:23
    1111 次阅读|
    0 个评论
    电源供应 1.8V~3.6V,用于内部电压调整器和IO供电,通过外部管脚引入 1.2V~1.8V ,用于内部的各数字外围模块、SRAM和FLASH供电,通过内部电压调整器供电。依据不同的VDD输入电压,该调整器输出电压可通过软件进行配置 1.8V~3.6V,用于内部ADC模块(包括温度传感器等)、复位模块、RC晶振、PLL供电 内部线性电压调整器 该调整器电压用于给内部所有数字电路提供电源(待机电路除外),它有三种工作模式:全开模式MR,低功耗模式LPR以及关机模式。 MCU处于运行模式或睡眠模式时,调整器工作在MR模式;MCU处于低功耗运行模式或低功耗睡眠模式时,调整器工作在LPR模式;MCU进入停止模式时,调整器可通过软件配置,选择进入MR模式还是LPR模式;MCU处于待机模式时,调整器进入关机模式 待机电路:包括Wakeup logic,IWDG,RTC,LSE 32K OSC, RCC 动态电压调节范围 Range1:高性能配置,调整器输出1.8V。当VDD输入低于2V时,CPU频率调节必须遵循2个原则:1. 调节目标频率小于当前频率的4倍,2.频率切换后,必须等待5us,然后再执行下一次调节 Range2:中等性能配置,调整器输出1.5V,此时FLASH读取周期会延长 Range3:低性能配置,调整器输出1.2V,FLASH读取周期最长,同时FLASH不具备擦除或编程操作 电压调节步骤:1. 确认VDD的输入电压是否适合调节,2. 检查PWR_CSR:VOSF标志位,直到其为0, 3.配置PWR_CSR:VOS位,4. 再次检查PWR_CSR:VOSF标志位,直到其为0。在电压调节过程中(VOSF=1时),系统时钟会处于停止状态,对于高实时性需求的应用需要特别注意 电源监控 POR: 上电复位,上电电压如果高于VPOR(1.5V),MCU开机运行(仅在BOR关闭时运行,BOR使能时由BOR接管),否则处于复位状态 PDR: 掉电复位,工作电压如果低于VPDR(1.5V),MCU进入复位状态 BOR: 欠压复位,上电时总是处于激活状态。上电电压超过VBOR(1.8V)时,MCU开始加载选项字节数据,然后检查并修改默认的门限电压(有5个可选级别),或者也可以永久关闭BOR功能 内部电压参考源VREFINT 该参考源电压为BOR,ADC以及比较器提供稳定的参考电压。PWR_CR:ULP位置1时,MCU在进入STOP模式时会关闭该参考源以节约功耗,但注意退出STOP模式时需要约3ms的启动恢复时间,而当快速唤醒标志位PWR_CR:FWU位置1时,MCU退出STOP模式时不会等待VREFINT稳定,而交由用户进行判定 低功耗模式(不同模式的区别点在于功耗、性能、恢复运行时间以及可用的唤醒源) 低功耗运行模式:电压调整器工作在低功耗运行模式,有限的主频支持以及外围模块支持 睡眠模式:Cortex-M0核心停止运行,外围模块保持运行,FLASH/RAM和其它外围模块可以通过软件选择关闭 低功耗睡眠模式:Cortex-M0核心停止运行,电压调整器工作在低功耗运行模式,有限制的主频,有限制的外围可用功能,FLASH停止使用 停止模式:所有时钟停止运行(PLL,HSI,HSE,MSI均关闭),电压调整器工作在低功耗运行模式。退出时根据配置可以选择MSI或HSI作为时钟源 休眠模式:所有时钟停止运行(PLL,HSI,HSE,MSI均关闭),电压调整器关闭。退出时选择MSI作为时钟源。
  • 热度 3
    2020-7-1 11:03
    1573 次阅读|
    0 个评论
    ADC电压调整器: 清除ADRDY。 2. ADC电压调整器开启方式:写ADVREGEN=1或写ADCAL=1或ADEN=1 3. ADC电压调整器关闭方式:确保ADC已关闭(ADEN=0),写ADVREGEN=0 ADC参考电压源: 该参考电压源连接在ADC IN17通道,出厂校准时,VDDA被设定在3.3V,因此实际的VDDA值可以通过测试该参考电压源的方式来进行校准:VDDA = 3V * VREFINT_CAL / VREFINT_DATA(其中VREFINT_CAL为出厂时的校准值,VREFINT_DATA为通道17读到的值) 通道电压=VDDA * ADC_DATA / FULL_SCALE(12位分辨率时,FULL_SCALE=2^12 - 1 = 4095) ADC校准: 通过写ADCAL=1(确保ADEN=0)开启校准,等待ADCAL=0(或者EOCAL=1),校准完成,校准值可通过ADC_DR 获得。ADC关闭或电压调整器关闭不会导致校准值丢失,只有在MCU进入STANDBY模式(ADC电源被移除)时或ADC执行外围复位时才会被清除。当VDDA发生改变时,建议重新做一次校准。ADC校准值可以通过软件读取和写入。 ADC开关控制: 开启:清除ADRDY标志位,写入ADEN=1开启ADC,ADRDY标志表示ADC已经被开启,可以执行进一步的操作了(电压调整器未被开启的话也会被自动开启) 关闭:确保ADSTART=0(没有正在进行的转换),ADDIS=1关闭ADC,成功关闭后ADEN和ADDIS位都会被硬件自动清0,清除ADRDY标志位 注意:在自动关闭模式(AUTOFF=1)下,ADC开关是硬件自动控制的,此时ADRDY标志不会被置位 ADC时钟: ADC模块有2路时钟可供选择,一路为异步时钟,另外一路为MCU外围同步时钟PCLK。当ADC时钟频率低于3.5MHz时,必须打开低频模式(ADC_CCR:LFMEN=1) ADC配置: 1. 软件写入ADCAL(校准ADC)和ADEN(开启ADC)位时必须确保ADEN=0 2. 软件写入ADSTART(启动采样转换)和ADDIS(关闭ADC)位时必须确保ADEN=1,并且ADDIS=0(没有关闭ADC的请求发生)。ADC操作执行过程中,ADSTART位会持续为1,当ADSTART=0时,表示ADC处于空闲状态,此时可以重新进行ADC配置 3. 软件写入ADSTP(停止采样转换)位时必须确保ADCEN=1,且ADSTART=1、ADDIS=0(没有关闭ADC的请求发生) 注意:ADC对于以上操作没有硬件保护,任何违反规则的操作可能使ADC进入未定义状态 ADC转换时间: ADC转换时间=ADC采样时间+12.5个ADC时钟周期(12位转换精度时) 假设ADC时钟为16M,采样时间为3.5个时钟周期,则转换时间为16个时钟周期,即1us ADC单次转换(CONT=0): 对于配置有多个通道序列的情况下,每个通道转换完成后,转换数据会被存储到ADC_DR寄存器,EOF(end of conversion)标志会被置位;当所有通道都转换完成后,EOS(end of sequence)标志会被置位;然后ADC停止(当ADC由软件启动时,此时ADSTART=0;否则,ADSTART仍然保持为1,并在下个触发事件发生时立即启动采样转换),等待新的软件启动或触发启动 ADC连续转换(CONT=1): 同ADC单词转换,去别在于每一轮转换结束后,ADC立即启动新一轮转换(ADSTART始终为1)。 ADC断续转换(DISCEN=1): 每个软件或硬件触发事件仅启动一个通道的转换,该通道转换完成后置位EOC标志;当所有通道转换完成后,EOS标志会被置位;然后接下来的触发事件,ADC重新从第一个通道开始新一轮的转换操作 注意:禁止将连续转换(CONT)标志和断续转换(DISCEN)标志同时置1 停止ADC转换(ADSTP): 通过写入ADC_CR:ADSTOP=1,软件能够停止正在进行的转换操作,这将复位ADC并使ADC处于空闲状态。 在执行ADSTOP=1写入后,软件可通过读取ADSTOP位确定停止操作是否完成,当该位为0时,表示ADC已停止,此时ADSTART位也会被清0 ADC转换状态标志位: EOC标志:只要有新的转换数据写入ADC_DR,该标志便会被置位。该位可以通过软件清除或者通过读取ADC_DR寄存器清除 EOSMP标志:采样完成后该标志会被置位。该标志可用于进行转换同步(由于采样结束到转换结束间的时间非常短,建议采用轮询方式或WFE指令,而不是采用中断或WFI指令) EOS标志:所有通道序列转换完成后,该标志置位 OVR标志:当上次转换的数据没有被读出,而新的转换已经结束时,该标志会被置位(即新的转换完成同时EOC标志等于1时)。ADC发生溢出后,还会继续保持运行。通过软件配置,可以选择在溢出发生时,是覆盖上一次的数据(OVRMOD=1)还是保持上一次的转换数据(OVRMOD=0)。 注意:当使用DMA方式读取数据时,DMAEN位必须被置1。如果DMA请求不能及时处理转换数据,发生溢出后,ADC停止产生DMA请求,新的转换数据将不会再被DMA进行传输。DMA只有在清除了OVR标志后才会再次启动传输。 DMA模式: 单次模式:每次新的转换数据产生后,ADC产生DMA请求;当所有字节传输完成后,ADC停止产生DMA请求(即使新的转换已再次启动)。当DMA传输完成后,ADC数据寄存器的内容会被冻结,任何接下来的转换数据会被丢弃,序列扫描也会被停止和复位。 环形模式:该模式下,DMA数据传输不会停止,数据会被循环存储 ADC低功耗特性: WAIT模式:当该模式位被置1时,每次转换结束后,只有ADC_DR寄存器被读取或者EOC标志被清除后,才会发起新的转换。这种模式可以使ADC的转换速度进行自动调整以适应系统速度(当转换正在进行时或者ADC正在等待时,硬件触发信号会被忽略) AUTOFF模式:当该模式位被置位时,当不需要进行转换时,ADC会被自动关闭;当需要进行转换时,ADC会自动唤醒,启动时间也会被自动插入。该模式可以结合WAIT模式以适应低功耗应用。 ADC过采样: 过采样功能可以进行数据平均,降低数据率,改善信噪比(SNR),简单滤波。过采样率N可以配置为2X~256X,除数因子M由8位的右移位(除数=2^M)表示。过采样模式下,转换时间将被延长N倍。EOC标志会在N次转换后(过采样结果产生时)被置位,EOCSEQ在所有通道的过采样结果产生后被置位。 可结合过采样的ADC操作:单次或连续转换模式、软件或硬件触发启动、ADC停止转换、CPU或DMA读取数据、低功耗模式、可编程的分辨率
  • 热度 4
    2020-6-21 07:56
    549 次阅读|
    0 个评论
    部分特性说明: NOISE ERROR FLAG(NF,START位噪音探测标志):仅在START位时进行判断,RX下降沿启动检测,在START位的中间位置检测到1时则置位该标志,然后丢弃当前START位,等待下一个START开始条件 FRAMING ERROR FLAG(帧错误):当收到一个BREAK字符、大量噪音或者数据非同步(波特率错误),会被认为是帧错误,置位该位 OVERRUN FLAG(溢出错误):当RXNE标志置位时,又收到新字符。此时新收到的字符会被丢弃,RX寄存器中数据不会被覆盖。该位为1说明至少漏掉了1个字符数据。如果该位为1时,RXNE为0,表明数据丢弃正好发生在读取上一个数据的过程中 IDLE字符:RX一次下降沿后收到全1值(TE位关闭到开启也会在TX线上产生一个IDLE字符) BREAK字符:RX一次下降沿后收到全0值(发送器会在BREAK帧后插入2个停止位) 发送中断包括:传输完成、CTS、发送寄存器空、帧错误 接收中断包括:IDLE线天策、溢出错误、接收寄存器非空、极性校验错误、噪音错误、帧错误、字符匹配等 UART低功耗模式使用注意: 1. 为了能够支持STOP模式下唤醒串口,UART时钟必须为HSI或者LSE 对于HSI作为串口时钟:STOP模式下,RX上的下降沿触发HSI启动。根据唤醒配置(开始条件、地址匹配以及RXNE置位),满足条件则唤醒Core,否则HSI被关闭。 对于LSE作为串口时钟:类似HSI的情况,区别在于RX下降沿会开通LSE作为串口时钟,满足唤醒条件时则唤醒Core,否则断开LSE(为了达到9600波特率,CR3:UCESM必须置位) 2. 如果使用RXNE中断作为唤醒条件,则进入STOP模式前RXNEIE位必须被置位(即必须允许RX非空中断) 3. CR1:UECM在进入STOP模式前必须置位 4. 探测到唤醒事件时,WUF标志被硬件置位(无论当前Core处于STOP模式还是运行模式),如果WUFIE置位的话,也会产生一个wakeup中断(仅在STOP模式时产生中断,运行模式不会) 5. RX下降沿将置位BUSY标志(有效开始位置位,接收完成时复位),但BUSY标志不能保证Core不会进入STOP模式 6. 发送数据时必须判断TC=1时(发送结束),才能进入STOP模式 CR3:UCESM: 该位可使STOP模式下串口时钟一直开启(即不会断开LSE或不会关闭HSI) CR1:UESM: STM32建议在进入STOP模式前置位,在退出STOP模式后复位(该位复位后,WUF标志也会被清除) 进入STOP模式前注意点: 1. BUSY标志应该为0,该位为1时说明串口正在接收数据 2. 用户自定义的接收缓冲区为空。缓冲区有数据的话,应该处理完再进入STOP模式。 3. 如果使用了RS485-RTU模式,要确保超时定时器未工作。如果定期器在工作,表明正在的等待T3.5过程中
相关资源
广告