[原创] [LPC54100]当nxp谈论低功耗时nxp在谈论什么

freebsder   2015-5-23 17:35 楼主
感谢 @nmg 隔天一次的威逼利诱和一天一次的鸡血注入,我要是EEworld领导就给你加工资,发奖金,所以下面的文字不管对错都献给你。。。 由于评估、评测、选型等行为和个人的经验相关,里面涉及到一些我只阅读过手册而没有实际操作过的芯片如最新的AtmelL21MSP432,虽简单使用过LPC54102KL17EFM32GG,但距离精通还差很远距离,因此以下扯的不正确和模糊的地方属于自己的扯淡,还请海涵并指出。手里有的器件在简单的实际测试后发现我个人的测试环境导致数据没有太多参考价值(如电流表精度的影响),所以文字里各种数据来源于器件的数据手册和用户手册。 我整理这篇文字的时候想过捎带没实际操作过的芯片是否会导致一些不确定,有两个原因我还是把他们列了上来,一是针对器件,L21Low Power相关的部分看起来和EFM32十分相像,MSP432Low 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、还有很多影响功耗的因素未能体现,如pinflashsram的各种设置、使用、测量,各种外设的运行功耗,各种时钟频率下的功耗组合等; 2、低功耗系统的设计与产品的硬件电路和软件设计整体相关。功耗模式、运行和休眠功耗作为Low Power能力的一个维度, 数字上的对比能说明一些问题,但说明不了大部分问题; 3、唤醒时间和休眠电流来自数据手册,各器件在各种条件下数值有很大不同,上面表里的数据只作为感性的一种范围感觉; 4、每一种器件都能在各种休眠模式中被设定的某些外设唤醒,唤醒源虽有差异,却大同小异,这里不作为主要考虑因素; 5、时钟部分只考虑外设可以使用的时钟源,没有考虑时钟具体乘除出来的具体数值,一些通过多极通路选择之后换掉名字且没有进行分频的时钟源,只保留器件时钟源,比如lpc54102pll来自其他几种器件时钟源,则作为器件时钟而去除;时钟源各不相同,可能有遗漏或重复; 6freescaleM4FK系列中,主打性能的同时也提供L系列中的部分Low Power能力;EFM32M4FWonder Gecko系列中,M0+Zero GeckoHappy Gecko系列;AtmelM4F4L系列中提供。 外设
LPC54102 KL17 EFM32GG L21 MSP432
低功耗应用的支撑外设 Comparators Peripheral Reflex System Pulse Counter LowEnergySensorInterface Opamp Comparators Event System Comparators Opamp Comparators
主观的说,LPC54102除了各种唤醒源外,在低功耗外设上没有看到支持(可能与我个人能力相关),LPC54102宣传的1.62V ADC,似乎在其他器件的直观对比上也看不出多少突出点(当然,至于LPC541021.62VADC表现怎样,留待项目需要时再实际评估)。EFM32低功耗应用的外设支持很实用,以至于看到L21Event System有一种似曾相识的感觉。另外,L212种模式P0P2,与KLnormalvery low power 2种模式虽有不同,却也有一种似曾相识的感觉,KLpartial stop感觉上和L218种组合类似,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在谈论低功耗时它其实谈的是异构双核。 本帖最后由 freebsder 于 2015-5-23 17:47 编辑
默认摸鱼,再摸鱼。2022、9、28

回复评论 (17)

分析的真专业,选取的比较对象很典型。
我个人越来越喜欢这颗IC了,低功耗方面看怎么用,在提供合理的CPU性能的情况下功耗能控制得很合理,起码NXP给我考虑的很周到了。
其次对于内置的BAKUP SRAM区域可以说是一大特色,相比TI或者其他厂家的全部保持的做法有不少新意。
最后关于文档和CODE,虽然不足够多,但是给出的基本上也足够用了,关键还是要用心看,对于新手可能会有一些问题,其实我真正打算把这颗IC用起来是从昨天晚上开始的,已经在移植6lowpan了,接触了蛮多的外设,对他的文档和官方的驱动有了更深刻的认识,。
恩,要是有机会的话,以后要是允许我会重点把LPC54102平台化,作为项目中低功耗/传感/运算场合的通用平台,好好去维护。
电工
点赞  2015-5-23 19:40
讲的很全呢 不错 NXP好像就是双核而已 低功耗谈不上呢
www.yiboard.com 一板网
点赞  2015-5-23 19:44
引用: lyzhangxiang 发表于 2015-5-23 19:40
分析的真专业,选取的比较对象很典型。
我个人越来越喜欢这颗IC了,低功耗方面看怎么用,在提供合理的CPU性能的情况下功耗能控制得很合理,起码NXP给我考虑的很周到了。
其次对于内置的BAKUP SRAM区域可以说是一大特色,相比TI或者其他厂家的全部保持的做法有不少新意。
最后关于文档和CODE,虽然不足够多,但是给出的基本上也足够用了,关键还是要用心看,对于新手可能会有一些问题,其实我真正打算把这颗IC用起来是从昨天晚上开始的,已经在移植6lowpan了,接触了蛮多的外设,对他的文档和官方的驱动有了更深刻的认识,。
恩,要是有机会的话,以后要是允许我会重点把LPC54102平台化,作为项目中低功耗/传感/运算场合的通用平台,好好去维护。

我刚好和你看法相反 我看这芯片针对lowpower的东西,不管是时钟源,低功耗时钟,休眠时的外设等,看起来都很匮乏(不是说没有,而是相比较其他芯片匮乏),运行功耗和休眠功耗也不是很突出,甚至我在其他LPC系列里面最喜欢的SWM配置矩阵都不支持了。LPC54101是单核M4,除开M0+这颗协处理器之后退化成一颗普通M4,LPC54102提供了两颗芯片的独立并行处理能力,但是同时也带来双核本身的复杂性和资源开销,最简单说这种独立双核要同时维护两套代码、烧录两套bin来着,所以到底能在时间、调试、开发、设计上占到多大便宜,我个人觉得不太乐观。
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-23 21:00
引用: freebsder 发表于 2015-5-23 21:00
我刚好和你看法相反 我看这芯片针对lowpower的东西,不管是时钟源,低功耗时钟,休眠时的外设等,看起来都很匮乏(不是说没有,而是相比较其他芯片匮乏),运行功耗和休眠功耗也不是很突出,甚至我在其他LPC系列里面最喜欢的SWM配置矩阵都不支持了。LPC54101是单核M4,除开M0+这颗协处理器之后退化成一颗普通M4,LPC54102提供了两颗芯片的独立并行处理能力,但是同时也带来双核本身的复杂性和资源开销,最简单说这种独立双核要同时维护两套代码、烧录两套bin来着,所以到底能在时间、调试、开发、设计上占到多大便宜,我个人觉得不太乐观。

时钟源确实蛮少的,不过基本上低功耗也就几个等级

有两颗用感觉很好啊,软件上可变性很大,如果足够熟悉的情况下,用起来还是很爽的,关于双核通信途径也很简单就MBOX了,就想着是两个IC吧,要用两个就用两个,不用就用适合的那颗,我是这么想的。

低功耗没有实际去看,手册中提供的数据是好的,模式也不太复杂。调试上还是中规中矩的好,开发和设计上还是需要花一点时间来熟悉下的,我刚刚看了下PINT确实强大到爆,倒不是说如何强大,设计上很优秀,起码是用过N多芯片和对比过其他家产品的特点以及经过深刻思考之后设计出来的,每个外设都很优秀。

  1. /**
  2. * @brief        Enables a pin's (PINT) wakeup logic
  3. * @param        periphId        : Peripheral identifier
  4. * @return        Nothing
  5. */
  6. STATIC INLINE void Chip_SYSCON_EnableWakeup(CHIP_SYSCON_WAKEUP_T periphId)
  7. {
  8.         uint32_t pid = (uint32_t) periphId;

  9.         if (pid < 32) {
  10.                 LPC_SYSCON->STARTERSET[0] = (1 << pid);
  11.         }
  12.         else {
  13.                 LPC_SYSCON->STARTERSET[1] = (1 << (pid - 32));
  14.         }
  15. }
低功耗还没有实际测试过,希望以后有时间,我会好好评估一下这方面,起码比fsl的看起来清晰一些,那玩意太复杂了,功耗还不一定真的能控制的很好。NXP的片子目的性很强,一眼看穿。
电工
点赞  2015-5-23 21:33
顺便问一下,“对于非板载测量电路未找到二次使用资料”这句话是什么意思?
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2015-5-26 10:58
低功耗小白围观大神口水,话说低功耗大势所趋啊。前几天用老掉牙的mega8做了个数码管温度显示,在CR2032供电情况下,实测掉电模式休眠电流才10几不到20uA(渣万用表),太好玩了。 本帖最后由 ljj3166 于 2015-5-26 11:33 编辑
点赞  2015-5-26 11:31


就是说没看到资料讲怎么用IDE带的那些能耗支持功能来支持自己开发的板子(官方的板子都能很好的支持)。没有说使用前置条件(比如电路需不需要什么接口,测量范围频率等),也没有说协议(虽然按道理是swo输出来,但是没看到资料说这些插件怎么接收、控制这些数据,或者是自动的根本就不需要控制数据)。
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-26 12:17


忽悠 @soso 他们找L21的活动
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-26 12:19


所得司内,一酷一库
So TM what......?
点赞  2015-5-26 12:23
分析的很到位,两位各有见地,仁者见仁吧,学习了!54102因为工作和生活原因没怎么详细测试,有时间了向两位请教 本帖最后由 wo4fisher 于 2015-5-26 12:38 编辑
点赞  2015-5-26 12:36
加油!在电子行业默默贡献自己的力量!:)
点赞  2015-5-26 13:26


>>>于双核通信途径也很简单就MBOX了,就想着是两个IC吧,要用两个就用两个,不用就用适合的那颗

双核程序比单核复杂,异构双核比同构复杂,这很多工程证明过。因为双核同步、互斥本身就是个很棘手的问题,包括二级存储的可见性和可见周期,互斥粒度,单核流水线乱序导致的barrier升级到两个核自己乱序barrier之后还要同步,这在同构双核里都是比较复杂的问题,更何况这颗异构的M0+对sram的访问没限制啊没限制。。。简单的应用可能体现不出来,一旦有复杂性了,程序本身的正确性的测试都是很大一个问题了。这个如同算法,数据很少的时候几个for可能比各种算法显得简单的多,只有在数据多了算法才会有体现。
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-26 13:27


是滴是滴
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-26 13:27


这个板子优势说说
加油!在电子行业默默贡献自己的力量!:)
点赞  2015-5-26 13:28


我没用过,只是看资料来说,初步看来这芯片的功能和时钟控制个人感觉是比较有竞争的。比如他号称的梦游,这个比54102号称的always online落实的多,为微弱检测配备的几级运放,那么多低功耗时钟源,再加上看起来确实很有优势的休眠和运行功耗等等,应该比较强大。
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-26 13:32


已经发送给我们同事,争取下试试。有结果再通知大家。
加油!在电子行业默默贡献自己的力量!:)
点赞  2015-5-26 13:37
引用: soso 发表于 2015-5-26 13:37 已经发送给我们同事,争取下试试。有结果再通知大家。
一个月前,L21这U号称业界最低功耗 不过很快被另外一厂家的U给夺去最低功耗的宝座 不过,还是相对信赖ATMEL的U 功耗和时钟这块,很有特点,值得折腾 以上都属道听途说 本帖最后由 ljj3166 于 2015-5-26 14:42 编辑
So TM what......?
点赞  2015-5-26 14:40
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复