[LPC54100]当nxp谈论低功耗时nxp在谈论什么
[复制链接]
本帖最后由 freebsder 于 2015-5-23 17:47 编辑
感谢 @ nmg 隔天一次的威逼利诱和一天一次的鸡血注入,我要是 EEworld 领导就给你加工资,发奖金,所以下面的文字不管对错都献给你。。。
由于评估、评测、选型等行为和个人的经验相关,里面涉及到一些我只阅读过手册而没有实际操作过的芯片如最新的 AtmelL21 与 MSP432 ,虽简单使用过 LPC54102 , KL17 , EFM32GG ,但距离精通还差很远距离,因此以下扯的不正确和模糊的地方属于自己的扯淡,还请海涵并指出。手里有的器件在简单的实际测试后发现我个人的测试环境导致数据没有太多参考价值(如电流表精度的影响),所以文字里各种数据来源于器件的数据手册和用户手册。
我整理这篇文字的时候想过捎带没实际操作过的芯片是否会导致一些不确定,有两个原因我还是把他们列了上来,一是针对器件, L21Low Power 相关的部分看起来和 EFM32 十分相像, MSP432 的 Low Power 毕竟继承自 MSP430 ;二是产品选型阶段不一定会有时间和资金支持把候选器件都实际操作一遍进行验证,做到局部最优解很多时候被证明是各方面都很满意的一种结果。另外还有 ST 等其他厂的一些 Low Power Cortex ,个人原因没有关注。
内核
cortex 内核的低功耗设计基本遵循时钟+外设的思路:
1、 在休眠中提供多种开关外设组合的能力,包括划分休眠模式本身作为更精细的能耗控制手段。外设几乎囊括了包括backuppower和lowvoltage detect在内的所有功能器件。有器件提供打包一起开关的,有器件提供单独开关的。
2、 划分多种时钟和频率,提供功耗和性能的平衡。
3、 有器件为休眠外设提供功能支持以尽可能减小这些外设operation的时候唤醒内核的次数和时间,同时针对内核对低功耗器件的读写提供进一步支持。
LPC54102
KL17
EFM32GG
L21
MSP432
内核配置
CortexM4F/
CortexM0+
CortexM0+
CortexM3
CortexM0+
CortexM4F
功耗模式
Run,
Sleep, Deep-sleep, Power-down,
Deep power-down
Normal Run,
Normal Wait,
Normal Stop,
VLPR,
VLPW,
VLPS,
LLS,
VLLS3,
VLLS1,
VLLS0
EM0(Run),
EM1(Sleep),
EM2(Deep Sleep),
EM3(Deep Sleep),
EM4(stop)
2 种性能级别,4种休眠模式,和KL17类似,8种组合。5个能耗域,用于组合功能外设的(de)active。
Active Mode (Run)
LPM0 (Sleep)
LPM3 (Deep Sleep)
LPM4 (Deep Sleep)
LPM3.5
(Stop)
LPM4.5
(Stop)
时钟
IRC
CLKIN
Watchdog
RTC
MCGPCLK
MCGIRCLK
MCGOUTCLK
OSCERCLK
ERCLK32K
LPO
AUXHFRCO
HFPERCLK
HFCORECLK
LFACLK
LFBCLK
WDOGCLK
GCLK_IN
XOSC
GCLK_GEN1
OSCULP32K
OSC32K
XOSC32K
OSC16M
DFLL48M
DPLL96M
CLK_RTC_OSC
CLK_WDT_OSC
CLK_ULP32K
ACLK
MCLK
HSMCLK
SMCLK
BCLK
LFXTCLK
VLOCLK
REFOCLK
MODCLK
SYSCLK
虽然器件使用的功耗模式与时钟的名字不太一样,但是Low Power相关部分几乎就是对Sleep模式和Clock的划分,区别在谁家更精细,Sleep划分之后谁家提供更多的唤醒源,谁家提供更好的休眠外设支持(后叙),谁家提供更低的cpu唤醒机制,Clock划分之后谁家在Run和Sleep的时候能提供更多的时钟源选择,谁家能针对一些应用提供更具能耗的时钟。
运行电流
M4 5.7mA
M0 3.6mA
48M ,3V,Flash, CoreMark
NormalRun:5.76-8.08mA,48M,3V,Flash,CoreMark
VLPR:0.826mA,4M,3V,Flash,CoreMark
48M*219uA=10.5mA,48M,3V
P0:
12M*35uA=0.42mA,3.3V,CoreMark,DC-DC(PL0 最大12M,比例缩放到48M,则为1.68mA)
12M*75uA=0.9mA,3.3V,CoreMark,LDO(PL0 最大12M,比例缩放到48M,则为3.6mA)
P2:
48M*45uA=2.16mA,3.3V,CoreMark,DC-DC
48M*100uA=4.8mA,3.3V,CoreMark,LDO
7.6mA,48M,3V,LDO,Flash
4.6mA,48M,3V,DC-DC,Flash
90uA,128K,3V,LF,Flash
休眠电流
Sleep:990uA,12M
Deep-Sleep:306uA,3V ,SRAM ON
PowDown:5-9uA
DeepPD:135-280nA
Sleep(Wait):1.81mA,48M
Sleep:1.21mA,24M
Deep-Sleep(VLPW):172uA,4M
:69uA,2M
PowDown(Stop): 161.93uA,3V
DeepPD(VLPS,LLS[0-3]):179nA-3.31uA,3V
Sleep(EM1):48M*80uA=3.84mA,3V
Deep-Sleep(EM2,EM3):0.8-1.1uA
Stop(EM4):20nA
Sleep(IDLE):12M*13uA=156uA(PL0 最大12M,比例缩放到48M,则为624uA)
Deep-Sleep(Standby):0.9-2.2uA
Stop(Off):22nA
Sleep(LPM0):
LPM0:1.13mA,48M,LDO,3V
LPM0:0.8mA,48M,DC-DC,3V
LPM0:0.625mA,128K,LF,3V
Deep-Sleep(LPM3,LPM4):0.85- 1.67uA
Stop(LPM3.5,LPM4.5):0.1-1.3uA
各器件测试条件、范围、运行频率、运行程序、外设模式等不太一样,数值对比选择模式中测试模式最接近者做范围参考。
唤醒时间
Sleep:1.6us
Deep-Sleep:18us
PowDown:70us(Flash 运行)
Sleep:7.5us
DeepPD: 93us,152us
Sleep:0us
DeepSleep:2us
Stop:163us
Sleep:1.2us
DeepSleep P0:2.1us,5.1us
DeepSleep P2:15-75us,16-76us
Off:2200us
Sleep:62.5ns(3 个MCLK tick,48M)
Deep-Sleep :10us,22us
Stop:22us-1.7ms
操作电压
1.62-3.6
1.71-3.6
1.98-3.8
1.62-3.63
1.62-3.7
说明:
1 、还有很多影响功耗的因素未能体现,如 pin , flash , sram 的各种设置、使用、测量,各种外设的运行功耗,各种时钟频率下的功耗组合等;
2 、低功耗系统的设计与产品的硬件电路和软件设计整体相关。功耗模式、运行和休眠功耗作为 Low Power 能力的一个维度, 数字上的对比能说明一些问题,但说明不了大部分问题;
3 、唤醒时间和休眠电流来自数据手册,各器件在各种条件下数值有很大不同,上面表里的数据只作为感性的一种范围感觉;
4 、每一种器件都能在各种休眠模式中被设定的某些外设唤醒,唤醒源虽有差异,却大同小异,这里不作为主要考虑因素;
5 、时钟部分只考虑外设可以使用的时钟源,没有考虑时钟具体乘除出来的具体数值,一些通过多极通路选择之后换掉名字且没有进行分频的时钟源,只保留器件时钟源,比如 lpc54102 的 pll 来自其他几种器件时钟源,则作为器件时钟而去除;时钟源各不相同,可能有遗漏或重复;
6 、 freescale 的 M4F 在 K 系列中,主打性能的同时也提供 L 系列中的部分 Low Power 能力; EFM32 的 M4F 在 Wonder Gecko 系列中, M0+ 在 Zero Gecko 和 Happy Gecko 系列; Atmel 的 M4F 在 4L 系列中提供。
外设
LPC54102
KL17
EFM32GG
L21
MSP432
低功耗应用的支撑外设
Comparators ;
Peripheral Reflex System ;
Pulse Counter ;
LowEnergySensorInterface ;
Opamp ;
Comparators ;
Event System ;
Comparators ;
Opamp ;
Comparators ;
主观的说, LPC54102 除了各种唤醒源外,在低功耗外设上没有看到支持(可能与我个人能力相关), LPC54102 宣传的 1.62V ADC ,似乎在其他器件的直观对比上也看不出多少突出点(当然,至于 LPC54102 在 1.62V 的 ADC 表现怎样,留待项目需要时再实际评估)。 EFM32 低功耗应用的外设支持很实用,以至于看到 L21 的 Event System 有一种似曾相识的感觉。另外, L21 的 2 种模式 P0 和 P2 ,与 KL 的 normal 与 very low power 2 种模式虽有不同,却也有一种似曾相识的感觉, KL 的 partial stop 感觉上和 L21 的 8 种组合类似, L21 做的更可控一些。
环境
LPC54102
KL17
EFM32GG
L21
MSP432
应用手册 / 软件
缺乏
丰富
丰富
一般
一般
参考来源:官网文档数量,官网配套软件数量,手册详细程度等
官方开发平台
LPCxpresso(win/linux/osx ,256k免费限制,gcc)
LPCOpen 库
无GUI配置
KDS
PE (win/linux/osx,免费, GUI配置,代码生成,gcc)
Simplicity studio (win/linux/osx,免费,GUI配置,代码生成,gcc)
em-cmsis-softwar e 库
(atmel器件我只用过iar,官方的不了解)
CCS(win/linux ,收费,ticc,gcc)
MSPware
调试
双核,调试目前只有LPCLink2和ULink支持,显然LPCLink2几乎没人使用,ULink被限制在Keil,仿真器的使用人数也不及JLink(Jlink还能跨平台)
单核,各种仿真器和IDE都对cortex提供很好的支持
能耗支持
Power Managment Tool (对于非板载测量电路未找到二次使用资料)
无
Energy Profiler (SWO输出,对于非板载测量电路未找到二次使用资料)
ULP Advisor ;
EnergyTrace
LPC54102 在资料建设上十分匮乏, LPC 系列之间的参考资料也十分有限,与之相应的参考设计和参考代码实在屈指可数,再对比较其他器件的使用手册,显得十分不专业。
经过对比,我 70% 猜测 nxp 在谈论低功耗时它其实谈的是异构双核。