低功耗 新唐单片机_单片机低功耗 - CSDN
  • N76E003低功耗的处理

    千次阅读 2018-04-26 16:50:00
    低功耗是项目中非常重要的一部分,尤其是对于一些使用电池供电的设备。 N76E003支持两种低功耗模式,一种是空闲模式,一种是掉电模式,从字面意思一看就知道如果要最求最低的功耗,一定是需要使用掉电模式。在掉电...

        低功耗是项目中非常重要的一部分,尤其是对于一些使用电池供电的设备。

        N76E003支持两种低功耗模式,一种是空闲模式,一种是掉电模式,从字面意思一看就知道如果要最求最低的功耗,一定是需要使用掉电模式。在掉电模式下,作者对当前的项目应用中测试出来的最低的功耗是5uA,这个值本人认为已经是非常不错的。针对N76E003如何实现低功耗谈谈个人的经验。

        首先肯定是配置掉电模式,一条set_PD语句都可以直接将MCU进入到POWER DOWN(掉电模式),如果你准备让你的设备从此不再醒来,只有这一条语句还是可以满足你的要求的,因为进入到POWER DOWN模式之后所有的外设都关闭,定时器也不会再跑,如果你无法判断你是否进入到了低功耗模式,那么有一个很简单的方法,本人使用的是KEIL FOR C51的开发工具,进入到调试模式,如果成功进入到POWER DOWN 模式,那么在调试窗口中就会不断的刷新"MCU POWER DOWN"直到将MCU唤醒。

        所以现在就该说说唤醒的事情。

        N76E003提供了管脚触发中断,可以有管脚高电平中断触发,低电平触发,上升沿触发,下降沿触发,但是在使用这个中断的时候一定需要注意下面的一个问题,如果你需要有多个管脚触发中断,那么你的IO口就一定要选对,因为,N76E003的管脚触发必须是在同一个PORT口下才能触发,这个可以去查看N76E003的管脚中断的框图以及PICON寄存器,换句话说,如果需要两个管脚触发中断,假设一个是P0.1,一个是P1.0,那么你到底是使能哪一个PORT口呢?回到去看PICON寄存器的PIPS[1:0]两位,你会发现,怎么会有四种情况,所以,从这里就可以推出,假设你先使能P0.1再使能P1.0的管脚中断,最后P0.1的配置就被P1.0覆盖了。所以,这个地方是需要注意的,尤其是在画PCB板的时候,需要用到管脚中断的IO脚,都放在同一个PORT种,比如全部放在P0口。否则之后你只能使用飞线的办法,并且需要重新改板。

        当然N76E003还支持其他的一些唤醒,但是作者的项目中一般都只要用到按键唤醒和USB充电唤醒,这些都是通过管脚中断唤醒。

    我的低功耗的处理方法;

    (1)关闭BOD,一个是使用clr_BOD;另一个是在下载选项中,将欠压检测使能去掉,两个都做吧。

    (2)关闭ADC,将ADC的使能为关闭,并且关闭ADCS位

    (3)寻找到功耗最低的IO口配置的方法,首先必须确保IO口的初始的配置能保证你的系统正常的运行,然后在进入休眠之前该IO口的配置,并将其赋值为1或者0,这样说的原因是为什么呢,因为有一些IO口是你需要正常操作的时候必须配置的模式,但是进入休眠前可以选择更加低功耗的方式,这些都是可以根据你的硬件来进行判断的。但是一定需要注意有上拉电阻的那个IO口吗,优先去设置这些IO口,然后看静态电流的大小。

    (4)在唤醒之后第一时间“恢复现场”,重新初始化最开始的配置。

       

        

        

        

    展开全文
  • 32位低功耗MCU的设计

    2014-04-22 17:33:31
    近年智能生活的抬头、物联网的建立,便携式消费性电子产品与无线功能需求越来越高、设计越来越复杂,要提高性能的同时又要兼顾低功耗,需要有一款高性能低功耗的主控MCU来作为平台。另一方面,工业上的智能化也在...

    作者: 新唐科技


    1 前言


    传统的低功耗MCU设计都是以8位MCU为主,因为8位内核逻辑门数相对较少,运行或泄露电流低,售价也相对低廉。但是,许多新兴的应用都需要比8位内核更大的处理效率。近年智能生活的抬头、物联网的建立,便携式消费性电子产品与无线功能需求越来越高、设计越来越复杂,要提高性能的同时又要兼顾低功耗,需要有一款高性能低功耗的主控MCU来作为平台。另一方面,工业上的智能化也在展开,如远程监控、数字化、网络化等。简单说来,就是人物连接(云端应用)、物物连接(物联网)需求越来越多,导致产品功能越来越复杂,计算量越来越高,2009年ARM发表了32位Cortex-M0内核,提供给MCU厂商一个强而有力的平台,加上工艺微缩技术的进步,嵌入式闪存工艺普及化及降价,主要成本来自内存大小及模拟外设和IO引脚数量,CPU内核的成本差异已大幅缩短,更促进了高性价比32位低功耗MCU的快速发展。

    2 MCU功耗来自何处?


    在开始讨论低功耗MCU设计前,必须先探讨MCU功耗的来源,其主要由静态功耗及运行功耗两部分组成。考虑实际的应用,最后决定系统功耗性能指针则必须计算平均功耗。

    2.1 运行功耗

    现代MCU已集成相当多的模拟外设,不能单纯考虑数字电路的动态功耗。MCU运行时的总功耗由模拟外设功耗和数字外设的动态功耗相加而得。模拟电路的功耗通常由工作电压及其性能要求指针来决定,例如100ns传输延迟(Propogation Delay)的比较器工作电流可能约为40微安,当允许传递延迟规格为1μs时,工作电流有机会降到几个微安。

    数字电路的动态功耗主要来自开关频率、电压及等效负载电容,其计算公式如下:

    PDynamic(动态功耗) ~ f(工作频率) x CL(等效负载电容) x VDD2(工作电压)

    由以上公式可以理解到降低动态功耗最直接的方式是降低工作电压及工作频率。但MCU实际应用通常要求更宽广的工作电压及更高的性能。在降低工作电压方面,可以选择更新的工艺,并通过LDO让CPU内核、数字电路及与引脚输入输出电压无关的模拟外设在低压工作,IO引脚及需要与其他外部电路连接的模拟外设则在较高的系统电压工作。如此可以兼顾低功耗及宽工作电压的需求。在降低工作频率这项参数上,一个设计优良的32位MCU更能突显其性能优势,除了直觉的MIPS比较之外,32位总线也代表更高的数据存取带宽,能以更低的工作频率达到相同的性能,进而降低整体功耗。另外,如果MCU内置与工作频率相关的模拟外设,例如石英晶体振荡电路、嵌入式闪存或电流式DAC,其电流消耗与转换频率成正比,也要纳入低功耗MCU的动态功耗设计考虑。

    2.2 静态功耗

    传统静态功耗的定义是指系统时钟源关闭时数字电路的漏电流。但是在混合信号低功耗MCU的设计中要同时考虑下列多种漏电流来源,包含数字电路漏电流、SRAM漏电流、待机时已关闭的仿真电路漏电流(例如ADC,嵌入式闪存)、待机时不关闭的仿真电路工作电流(例如LDO、BOD)及IO引脚的漏电流。因为时钟源已关闭,影响静态功耗的主要参数为工艺、电压及温度。因此,降低静态功耗必须选择超低功耗工艺,但是低功耗工艺通常伴随较高的Vt,导致低电压模拟外设设计困难。另外,以MCU待机电流1微安的规格,代表数字电路漏电 + RAM保持电流 + LDO工作电流 + BOD(掉电检测或重置电路)工作电流总和必须小于1微安,对于Flash,RAM越来越大及功能越来越多的低功耗MCU设计厂商而言,是十分艰巨的挑战。

    2.3 平均功耗

    在系统级要兼顾低功耗及高性能,必须考虑实际应用的需求,例如无线环境传感器可能让MCU主时钟及CPU关闭,只开启低频时钟,定时唤醒外围电路进行检测,当符合设定条件的事件发生时快速启动CPU进行处理,即使没有任何事件发生,也必须定时激活CPU维持无线传感器网络的联机。在遥控器的应用中,则可能完全将所有时钟源都关闭,当用户按键时快速唤醒时钟源及CPU进行处理。另外,许多应用都会加入一个MCU作为主机处理器的协处理器,用于监控键盘或红外线输入、刷新显示器、控制主处理器电源以及智能电池管理等任务。此时平均功耗比单纯的运行功耗或待机功耗更具指标性意义。

    平均功耗由下列主要参数组合而成:运行功耗及运行时间,静态待机功耗及待机时间,不同运行模式之间的切换时间。兹以下图进行说明:

    1.JPG

    f1.JPG

    因为进入待机模式时间很短,忽略此段时间的电流消耗,公式可以简化为:

    f2.JPG

    由以上公式观察到除了降低运行电流及静态待机电流外,降低运行时间、唤醒时间及高低速运行模式切换时间也是降低整机功耗的重要手段。另外,上图同时指出,低功耗MCU支持动态切换运行时钟频率是必要的功能。

    3 低功耗MCU设计考虑

    3.1 工艺选择

    为了达到低功耗的运作,并能有效地在低耗电待机模式下达到极低的待机功耗,可以通过对工艺的选择而达到基本的要求门槛。在不强调速度极致的某些工艺分类,选择极低组件截止电流工艺(如下图)进行逻辑门制作,并进行数字设计是方法之一。选择这种策略的额外效益是,通常也能在降低动态工作电流上,达到较好的表现。另外,由于高温大幅增加静态电流,当温度由摄氏25度增加到摄氏85度时,一个典型比例约增加10倍的静态电流,以非低功耗0.18微米工艺开发的32位MCU,逻辑门数200K、4KB SRAM在核心电压1.8V、摄氏25度的静态耗电约为5~10微安,当温度升高到摄氏85度时,静态待机电流将会飙升到50~100微安。而低功耗工艺在摄氏85度仅约10微安静态电流。

    2.JPG

    3.2 低功耗高性能的CPU内核

    早期低功耗MCU受限于成本及工艺技术,大都选择8位CPU内核,但随着工业上的智能化也在展开,如远程监控,数字化、网络化等。简单说来,就是人物连接(云端应用)、物物连接(物联网)的需求越来越多,导致产品功能越来越复杂,计算量越来越高,8位MCU已逐渐无法满足性能需求。为了兼顾低功耗高性能,选择适用的32位CPU内核是大势所趋。

    选择低功耗CPU内核,除了单位频率耗电流外,还需要综合考虑紧凑的低内存代码,相同功能所需的代码越长,除了增加内存成本,也代表更长的运行时间及功耗。另外,由于软件开发成本在后期将会越来越高,大量的参考代码及更多的第三方开发商的支持,都可以有效降低软件的开发时间及成本。所以选择一款更多人使用的CPU内核也是重要的考虑之一,ARMCortex-M0逻辑门数仅27K,使用的电量在1.8V,超低泄漏180ULL (Ultra Low Leakage)仅约50μA/MHz。M0内核采用Thumb2指令集架构,产生出非常紧凑的低内存代码,进一步降低了电源需求。ARM自2009年发表了32位Cortex-M0内核以来,包括NXP、新唐科技、STFreescale等多家国内外MCU大厂相继投入Cortex-M0 MCU开发,不论供货或者品种的齐全度都已十分成熟,投入Cortex-M0的MCU开发商也在持续增加中。

    3.3 低功耗数字电路

    对于一般的同步数字电路设计,要使数字单元有效降低工作电流,通过控制时钟的频率或截止不需要的时钟跳动,也是重要的方法。低功耗MCU通常配备丰富的时钟控制单元,可对个别的数字外设单元依照需求做降频或升频的工作调整,在达到工作能力的同时,用最低的频率来运行。但为了达到更弹性的时钟源配置,可能导致CPU内核和外围电路时钟不同步的现象,此时必须仔细考虑电路设计,保证跨时钟领域数据存取的正确性。

    另外,为了尽量降低CPU介入处理的时间或降低CPU工作频率而节省下来的功耗,可以提供DMA或外围电路相互触发电路进行数据的传递,例如Timer定时自动触发ADC或DAC,并通过DMA进行数据由ADC到RAM或者RAM到DAC的搬移,同时在ADC的输入可以增加简单的数字滤波及平滑化电路,这样可不需要CPU经常介入处理,也不会因为需要实时处理ADC或DAC事件导致中断程序占用太多时间,降低系统的实时性及稳定性。

    3.4 支持多种工作模式

    为了配合不同的应用需求,并达到系统平均功耗的最小化,低功耗MCU需要提供多种工作模式,让用户灵活调配应用,常见的工作模式有下列几种:

    ● 正常运行模式:CPU内核及外设正常工作,能实时改变CPU及外设的工作频率(On the Fly)或关闭不需要的时钟源以获得最佳的工作性能。

    ● 低频工作模式:CPU内核及外设工作于低频的时钟源,例如32.768K晶振或内部低频10K RC振荡器。通常此时最大的耗电来源为嵌入式闪存及LDO本身的耗电流。如果此时的执行程序不大,可以考虑将程序运作于RAM以降低平均功耗。请注意并不是所有MCU都能支持在RAM执行程序。

    ● Idle模式:CPU内核停止,时钟源和被致能的外围电路持续工作,直到外围电路符合设定条件唤醒CPU进行数据处理或控制执行流程。通常高频的运行模式,CPU及嵌入式闪存消耗相当大比例的电流,故Idle模式能有效降低平均功耗。

    ● 待机RAM保持模式:CPU内核及所有时钟源关闭,内置LDO切换到低耗电模式,但是RAM及IO引脚持续供电,维持进入待机之前的状态。

    ● RTC模式:CPU内核及高频时钟源关闭,内置LDO切换到低耗电模式,由于此时LDO供电能力降低,仅能提供低耗电的外围电路运行,例如32.768K晶振、RTC(实时时钟计数器)、BOD(掉点检测或重置电路)、TN单色LCD直接驱动电路等。

    ● 深层待机模式:CPU内核及所有时钟源关闭,关闭RAM及LDO、BOD等所有外围电路的电源,仅IO引脚(或部分IO引脚)持续供电,由IO引脚或重置(Reset)引脚唤醒CPU。因为此模式下,RAM的数据已丢失,通常会进行内部电源切割,提供数十个状态记录缓存器作为系统重启时的初始状态参考源。此模式的优点是更低的静态电流,通常仅需100nA~500nA,其缺点是并非所有的应用都可以忍受RAM数据丢失及系统重启。

    3.5 电源系统的考虑

    在多电源系统的应用上,必须考虑低功耗MCU的内部电源规划或自动切换,以下以市电/备用电池双电源系统及内置USB接口,但平常由电池供电的移动设备来举例说明。

    ● 市电/备用电池双电源系统:MCU平常由市电经由交直流转换电路供电,当市电断电时,经由连接在备用电源的独立供电引脚进行供电,同时在MCU内部进行电源切割,并提供一个可靠的备用电源自动切换开关,确保市电正常供电时备用电池不会持续被消耗。但仔细考虑,其实有两种状况可能发生,一种是备用电池仅供电给部分低耗电的外围电路,例如32.768K晶振、RTC时钟电路、数据备份寄存器等。当市电来时MCU将重新启动。另外一种状况是当市电断电时,有可能MCU及部分外围电路会被唤醒工作,然后再次进入待机模式。智能型电表就是此类应用的典型代表。在此种应用中,备用电池需要供电给整颗MCU,所以电源自动切换开关必须能承受更高的电流,相对成本也较高。

    ● 内置USB接口移动设备:此类设备平时由两节电池供电或锂电池供电,工作电压可能为2.2V到3V,当连接到USB时,USB接口转由VBUS供电。此类低功耗MCU如果没有内置5V转3V的USB接口LDO将会产生下列问题,当连接USB时必须由外挂的LDO将USB VBUS的5V电源转换为3V电源同时提供给MCU VDD及USB接口电路,但又必须避免LDO输出的3V电源与脱机工作时的电池电源发生冲突,将会需要外加电源管理电路,增加系统成本及复杂度。

    3.6 丰富的唤醒机制及快速唤醒时间

    有许多的系统应用场合,需要由外部的单一信号、键盘或甚至串行通信信号来激发MCU启动整体系统的运作。在未被激发的时候,微控制器或甚至大部分的整机需要处于最低耗电的待机状态,以延长电池的寿命。能够在各种需求下被唤醒,也成为微控制器的重要特征。MCU能拥有各式不同的唤醒方式,包括各I/O可作为激发唤醒的通道,或是由I2C、UART、SPI的信道作为被外界组件触发唤醒,或使用内、外部的超低耗电时钟源,通过Timer来计时唤醒。诸多的唤醒机制,只要运用得当,并配合微控制器的低功耗工作切换模式,可以使MCU几乎时时处于极低功耗的状况。

    配有快速、高效率内核的MCU,可以在每次唤醒的当下短暂时间里,完成应有的工作与反应,并再次进入深层的低待机模式,以此达到平均耗能下降的目的。但是,如果唤醒后开始执行微指令的时间因为某些因素而拖延得很长,将会使降低总体耗电的目标大打折扣,甚至达不到系统反应的要求。因此,有些MCU,配合起振时间的改进,逻辑设计的配合,使得唤醒后执行指令的时间至少降到数个微秒之内。

    3.7 低功耗模拟外设及内存

    低功耗MCU在运行时除了CPU内核及被使能的数字外围电路在工作外,越来越多被集成到内部的模拟外围电路也是耗电的主要来源。以最简单的while (1);执行语句来分析运行功耗,共包含下列耗电来源:CPU内核、时钟振荡器、嵌入式闪存内存、及LDO本身的消耗电流。代入以下典型值数据将会更清楚显示各个部分对耗电的影响:

    ● 工作频率12MHz,MCU电压3V,LDO输出1.8V供给CPU内核、内存及其他数字电路

    ● 低功耗Cortex-M0内核:600μA

    ● 嵌入式闪存内存:1.5mA

    ● 低功耗12MHz晶振电路:230μA

    ● LDO本身的静态消耗电流:70μA

    ● 总和 = 0.6 + 2 + 0.23 + 0.07 = 2.4mA,平均功耗约200μA/MHz

    其中耗电比例最高的是嵌入式闪存内存。如果要工作在更高频率,通常会启动内置的PLL提供更高频率的时钟源,在1.8V供电的典型PLL,12MHz输入输出48MHz工作电流约为1~2mA,如果不能有效降低PLL耗电,对高频工作的低功耗MCU将是一大电流负担。

    LDO的最低静态功耗、32.768kHz晶振电路、BOD及TN LCD驱动电路的工作电流,都会大大影响到待机或RTC模式的功耗指针。以低功耗应用的热能表为例,RTC加LCD显示的功耗要求在3V/8μA以下,这代表可以预估分配给下列电路的电流预算为:LDO静态功耗0.5μA + 32.768kHz晶振及RTC电路1μA + BOD 1μA + TN LCD驱动4μA + LCD玻璃1μA + 所有数字电路及模拟外设漏电流0.5μA。这些模拟外设除了低耗电要求,同时必须兼具要求批量生产及温度变化时的一致性,这对模拟设计人员将是一大挑战。

    快速唤醒这个性能指针也会影响到下列模拟外设的稳定时间。当MCU从低耗电的待机模式唤醒时,首先要将LDO快速切换到高供电模式,启动内部高速RC振荡器,使能嵌入式闪存及CPU,以上所有电路的稳定时间总和必须在数个微秒内完成,才能符合快速唤醒的需求。

    另外一个容易被忽略的设计是外围电路启动电流,因为相当多的便携设备采用CR2032小型锂电池,瞬间推动力仅有数mA,尤其使用一段时间瞬间推动力会更低,当MCU被唤醒时果外围电路启动电流总和太大时,将会导致CR2032输出电压骤降而导致MCU重置(Reset)或工作不正常。为了避免此问题,除了降低外围电路的启动电流,另一种方法是分时分段启动外围电路,不要集中开启太多耗电的电路。

    4 平均功耗计算范例

    为了让读者更具体了解平均功耗的计算,以新唐科技的低功耗32位MCU Nano系列及血糖计应用为例,进行使用年限的预估。新唐的Nano系列低功耗32位MCU的CPU内核为Cortex-M0,具有200uA/MHz低运行功耗、待机电流仅需1uA、7uS快速唤醒、多重时钟信号来源及多种工作模式,多达128KB Flash、16K SRAM及12位ADC、12位DAC、SPI、I2C、I2S、UART、LCD、Touch Key等丰富外设,符合低功耗、高性能MCU应用需求。

    此血糖计范例采用CR2032 230mAh电池,使用方式、运行功耗及静态功耗如下表所示。

    t1.JPG

    使用年限的计算方式请参考下表。量测时间比例、显示时间比例及待机时间比例可由上表求得。例如,量测时间比例为“6次 x 0.25分钟 / (60 x 24)分钟 = 0.1%”。其余时间比例依此类推。量测平均电流为“量测时间比例 x (MCU工作耗电流 + 外部量测电路耗电流 + 待机(含RTC)耗电流 + LCD耗电流 + CR2032自放电)”。显示平均电流为“显示时间比例 x (待机(含RTC)耗电流 + LCD耗电流 + CR2032自放电)”。待机平均电流为“待机时间比例 x (待机(含RTC)耗电流 + CR2032自放电)”。最后计算出使用年限约为2.77年。由于待机时间比例高达99%,故血糖计应用待机电流为延长使用年限最重要的参数。

    t2.JPG

    5 结论

    低功耗MCU设计是一个需要多面向考虑的复杂工作,本文仅阐述基本设计理念。开发低功耗MCU产品时,不只要挑战电路设计的高困难度,更要由客户应用的角度考虑性价比,功能最强的不一定是最好的。往往性价比最适合的才能在市场上取得成功。由于智能电网、物联网、远程控制、自动化管理等低功耗高性能应用需求量持续增加,在可以预见的未来,32位低功耗MCU将逐渐取代8/16位低功耗MCU,成为市场主流。
    展开全文
  • N76E003为新唐高速1T 8051 单片机系列产品,支持2.4V 至 5.5V宽工作电压,超低功耗,可完美替代STM8L,本代码为全套DEMO源码,可以直接运行,也可移植,可快速入门此mcu开发。
  • 最新的选型指南,多增加了nuc123、nuc200系列,其他系列flash和SRAM都有所增大
  • 单片机开发入坑指南

    千次阅读 2019-01-14 19:44:34
    什么是单片机 单片机英文名Microcontrollers,即微控制器,英文简称MCU。 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口...

    入坑前了解

    什么是单片机

    单片机英文名Microcontrollers,即微控制器,英文简称MCU。
    单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
    简单点说单片机就好比是个微型电脑,可以接收外部消息,可以处理消息,可以向外部反馈。而我们开发单片机就是从程序角度来实现消息接收、处理、反馈等功能。

    为什么用单片机

    • 体积小:单片机就是颗芯片,一般都不大,甚至有些单片机需要用放大镜才能看得清;
    • 功耗低:一般的单片机大多工作电压在3.3V或5V,工作电流在几到上百毫安左右。相比手机或电脑处理器来说功耗是非常低的了;
    • 价格便宜:常见的单片机大多价格在几块钱到几十块钱左右;
    • 功能多:单片机集成的功能较多(虽然不一定强),可以大大简化电路设计,变相节省成本;

    常见的单片机

    • 51/52系列单片机;
    • STM系列单片机(ST意法半导体)(它家的STM32系列低端的单片机也可以选国产的http://cn.gigadevice.com/product-category/1.html?locale=zh_CN);
    • AVR系列单片机(ATMEL);
    • PIC系列单片机(Microchip);
    • LCP系列单片机(NXP恩智浦);
    • MSP430系列单片机(TI德州仪器);
    • 瑞萨电子的单片机;

    入坑学习涉及内容

    内容总览

    这里写图片描述

    内容说明

    一般来说初学单片机最好找个教程入门(书籍、视频等)。大多数单片机的入门书籍中上图的东西或多或少都会涉及。
    入门书籍包含内容一般如下:

    • C语言基础讲解(一般不包含指针,但基础的学习中也用不到;早些年的书中可能不是讲C语言的,而是讲汇编的);
    • 基本功能及外设(这部分所有单片机入门书籍中都有,入门主要学的就是这个);
    • 上层软件库(有些入门书籍中把这部分当作单片机开发的高级功能部分);
    • 电子基础(一般穿插在例程中电路说明部分,这部分对于写代码的人来说需要了解的知识很简单);
    • 系统硬件组成(一般会在入门书籍最开始或是功能及外设讲解前做简单说明,或是直接用在例程中);
    • 程序设计(这个有些入门书中有,有些书中没有);

    上面几块内容中C语言是单片机开发的开发的基础,但是单片机开发中用到的C语言很简单的,不用刻意去学习,唯一需要深入一点的知识就是指针了 ,但常用的也就一个函数的指针
    基本功能及外设是重点,学单片机无非就是学习这个,所有入门书籍大部分内容讲的就是这个。这块内容就是让你知道单片机具体可以做些什么,怎么做;
    程序设计这块一般入门书籍要不就是非常简单的讲一下,要不干脆就没讲,这块内容在入门学习单片机时也没什么用。但你如果不懂这块,就算其它几块都学好了,一旦正式进行项目开发你也许就不知道该从何下手了,很大的原因可能就是你不知道该怎么来协调单片机中各个功能外设,怎么来处理用户事务。这就需要好好做需求分析,好好设计程序逻辑了。这块可以参考https://blog.csdn.net/hello__xs/article/details/60142492,先有个简单的了解,更详细的内容可以在需要的时候自行百度。

    学习捷径

    这里写图片描述
    别做梦了!学习哪有什么捷径!
    开发单片机是有那么一点点考验综合能力的(还是比很多开发工作要简单的),想要学好只能别偷懒,动起手来,动起脑来。

    总结

    如果你不是有意向从事电子产品开发,对产品体积、功耗、价格等没有要求,或是对功能有特殊要求的话,不推荐学单片机。

    展开全文
  • 低功耗MCU设计理念

    千次阅读 2018-12-06 11:36:16
     在开始讨论低功耗MCU设计前,必须先探讨MCU功耗的来源,其主要由静态功耗及运行功耗两部分组成。考虑实际的应用,最后决定系统功耗性能指针则必须计算平均功耗。  运行功耗  现代 MCU 已整合相当多的的模拟...

     转自:http://www.eeworld.com.cn/mcu/article_2018031938316_2.html

    MCU功耗来自何处

        在开始讨论低功耗MCU设计前,必须先探讨MCU功耗的来源,其主要由静态功耗及运行功耗两部分组成。考虑实际的应用,最后决定系统功耗性能指针则必须计算平均功耗。

        运行功耗

        现代 MCU 已整合相当多的的模拟外围,不能单纯考虑数字电路的动态功耗。MCU 运行时的总功耗由模拟外围功耗和数字外围的动态功耗相加而得。模拟电路的功耗通常由工作电压及其性能要求指针来决定,例如 100 ns 传递延迟 (Propogation Delay) 的比较器工作电流可能约为 40 微安,当允许传递延迟规格为 1 μs 时,工作电流有机会降到个位数微安。

     

        数字电路的动态功耗主要来自开关频率、电压及等效负载电容,其计算公式如下:

        PDynamIC (动态功耗) ~ f (工作频率) x CL (等效负载电容) x VDD2 (工作电压)

        由以上公式可以理解到降低动态功耗最直接的方式为降低工作电压及工作频率。但 MCU 实际应用面通常要求更宽广的工作电压及更高的效能。在降低工作电压方面,可以选择更新近的制程,并透过 LDO CPU 内核、数字电路及与管脚输出入电压无关的模拟外围在低压操作,IO 管脚及需要与其他外部电路连接的模拟外围则在较高的系统电压操作。如此可以兼顾低功耗及宽工作电压的需求。在降低工作频率这项参数上,一个设计优良的 32 MCU更能突显其效能优势,除了直觉的 MIPS 比较之外,32 位总线也代表更高的数据存取带宽,能以更低的工作频率达到相同的效能,进而降低整体功耗。另外,如果 MCU 内建与操作频率相关的模拟外围,例如石英晶体震荡电路、嵌入式闪存或电流式 DAC,其电流消耗与转换频率成正比,也要纳入低功耗 MCU 的动态功耗设计考虑。

        静态功耗

        传统静态功耗的定义是指系统时钟源关闭时数字电路的漏电流。但是在混合信号低功耗 MCU 的设计中要同时考虑下列多种漏电流来源,包含数字电路漏电流、SRAM 漏电流、待机时已关闭的仿真电路漏电流 (例如 ADC,嵌入式闪存)、待机时不关闭的仿真电路工作电流 (例如 LDOBOD) IO 管脚的漏电流。因为时钟源已关闭,影响静态功耗的主要参数为制程、电压及温度。所以降低静态功耗必须选择超低功耗制程,但是低功耗制程通常伴随较高的 Vt,导致低电压模拟外围设计困难。另外,以MCU待机电流 1微安的规格,代表数字电路漏电 + RAM 保持电流 + LDO 工作电流 + BOD (降压侦测或重置电路) 工作电流总和必须小于 1微安,对于 Flash,RAM 越来越大及功能越来越多的低功耗 MCU 设计厂商而言,是十分艰巨的挑战。

        平均功耗

        在系统级要兼顾低功耗及高效能,必须考虑实际应用面的需求,例如无线环境传感器可能让 MCU 主时钟及 CPU 关闭,只开启低频时钟,定时唤醒外围电路进行侦测,当符合设定条件的事件发生时快速启动 CPU 进行处理,即使没有任何事件发生,也必须定时激活 CPU 维持无线传感器网络的联机。在遥控器的应用中,则可能完全将所有时钟源都关闭,当用户按键时快速唤醒时钟源及 CPU 进行处理。另外,许多应用都会加入一个 MCU 作为主机处理器的协处理器,用于监控键盘或红外线输入、刷新显示器、控制主处理器电源以及智能电池管理等任务。此时平均功耗比单纯的运行功耗或待机功耗更具指标性意义。

        平均功耗由下列主要参数组合而成: 运行功耗及运行时间,静待功耗及待机时间,不同运行模式之间的切换时间。兹以下图进行说明:     

    http://www.eeworld.com.cn/uploadfile/2018/0319/1521466223559419.jpg

        平均电流 (IAVG) =(I1 x T1+I2 x T2+I3 x T3+I4 x T4+I5 x T5+I6 x T6)/(T1+T2+T3+T4+T5+T6)

        因为进入待机模式时间很短,忽略此段时间的电流消耗,公式可以简化为:

        均电流 (IAVG) =(I1 x T1+I3 x T3+I4 x T4+I5 x T5+I6 x T6)/(T1+T3+T4+T5+T6)

        由以上公式观察到除了降低运行电流及静态待机电流外,降低运行时间、唤醒时间及高低速运行模式切换时间也是降低整机功耗的重要手段。另外,上图同时指出,低功耗 MCU 支持动态切换运行时钟频率是必要的功能。

        低功耗 MCU 设计考虑

        制程选择

        为了达到低功耗的运作,并能有效地在低耗电待机模式下,达到极低的待机功耗,可以透过对制程的选择而站上基本的要求门坎。在不强调速度极致的某些制程分类,选择极低组件截止电流制程 (如下图) 进行逻辑闸制作,并进行数字设计是方法之一。选择这种策略的额外效益是,通常也能在降低动态操作电流上,达到较佳的表现。 另外,由于高温大幅增加静态电流,当温度由摄氏 25度增加到摄氏 85度时,一个典型比例约增加 10 倍的静态电流,以非低功耗 0.18 微米制程开发的 32 MCU,逻辑阀门数 200K4KB SRAM 在核心电压 1.8V、摄氏25度的静态耗电约为 5 ~ 10 微安,当温度升高到摄氏 85度时,静待电流将会飙高到 50 ~100 微安。而低功耗制程在摄氏85度仅约 10微安静态电流。

    http://www.eeworld.com.cn/uploadfile/2018/0319/1521466225266736.jpg

        低功耗高效能的 CPU 内核

        早期低功耗 MCU 受限于成本及制程技术,大都选择 8 CPU 内核,但随着工业上的智能化也在展开,如远程监控,数字化、网络化等。简单说来,就是人物之连结 (云端应用)、物物之连结 (物联网) 需求越来越多,导致产品功能越来越复杂,运算量越来越高,8 MCU 已逐渐无法满足效能需求。 为了兼顾低功耗高效能,选择适用的 32 CPU 内核乃大势所趋。

        选择低功耗 CPU 内核,除了单位频率耗电流外,还需要综合考虑紧凑的低内存代码,相同功能所需的代码越长,除了增加内存成本,也代表更长的运行时间及功耗。另外,由于软件开发成本在后期将会越来越高,大量的参考代码及更多的第三方开发商的支持,都可以有效降低软件的开发时间及成本。所以选择一款更多人使用的 CPU 内核也是重要的考虑之一ARM CortexTM-M0 阀门数仅 27K,使用的电量在 1.8V,超低泄漏 180ULL (Ultra Low Leakage) 仅约 50μA/MHz.M0 内核采用 Thumb2 指令集架构,产生出非常紧凑的低内存代码,进一步降低了电源需求。ARM 2009 年发表了 32 CortexTM-M0 内核以来,包括 NXP、新唐科技、STFreescale 等多家国内外 MCU 大厂相继投入 CortexTM-M0 MCU 开发,不论供货或者品种的齐全度都已十分成熟,投入 CortexTM-M0 MCU 开发商也在持续增加中。

        低功耗数字电路

        对于一般的同步数字电路设计,要使数字单元有效降低操作电流,透过控制时钟的频率或截止不需要的时钟跳动,也是重要的方法。低功耗MCU通常配备丰富的时钟控制单元,可对各别的数字外围单元,依照需求做降频或升频的操作调整,在达到运作能力的同时,用最低的频率来运行。但为了达到更弹性的时钟源配置,可能导致 CPU 内核和外围电路时钟不同步的现象,此时必须仔细考虑电路设计,保证跨时钟领域数据存取的正确性。

        另外为了尽量降低 CPU 介入处理时间或降低 CPU 工作频率而节省下来的功耗,可以提供 DMA 或外围电路相互触发电路进行数据的传递,例如 Timer 定时自动触发 ADC DAC,并透过 DMA 进行数据由 ADC RAM 或者 RAM DAC 的搬移,同时在 ADC 的输入可以增加简单的数字绿波及平滑化电路,如此不须要 CPU 经常介入处理,也不会因为需要实时处理 ADC DAC 事件导致中断程序占用太多时间,降低系统的实时性及稳定性。

        支持多种工作模式

        为了配合不同的应用需求,并达到系统平均功耗的最小化,低功耗 MCU需要提供多种操作模式,让用户灵活调配应用,常见的操作模式有下列数种:

        正常运行模式:CPU 内核及外围正常工作,能实时改变 CPU 及外围的工作频率 (On the Fly) 或关闭不需要的时钟源以获得最佳的工作效能。

        低频工作模式:CPU 内核及外围工作于低频的时钟源,例如 32.768K 晶震或内部低频 10K RC 震荡器。通常此时最大的耗电来源为嵌入式闪存及 LDO 本身的耗电流。如果此时的执行程序不大,可以考虑将程序运作于 RAM 以降低平均功耗。请注意并不是所有 MCU 都能支持在 RAM 执行程序。

        Idle 模式:CPU 内核停止,时钟源和被致能的外围电路持续工作,直到外围电路符合设定条件唤醒 CPU 进行数据处理或控制执行流程。通常高频的运行模式,CPU 及嵌入式闪存消耗相当大比例的电流,故 Idle 模式能有效降低平均功耗。

     

        待机RAM 保持模式:CPU 内核及所有时钟源关闭,内建LDO 切换到低耗电模式,但是RAM IO 管脚持续供电,维持进入待机之前的状态。

        RTC 模式:CPU 内核及高频时钟源关闭,内建LDO 切换到低耗电模式,由于此时 LDO 供电能力降低,仅能提供低耗电的外围电路运行,例如 32.768K 晶振、RTC (实时时钟计数器)BOD (降压侦测或重置电路)TN 单色LCD 直接驱动电路等。

     

    深层待机

    深层待机模式:CPU 内核及所有时钟源关闭,关闭 RAM LDOBOD 等所有外围电路的电源,仅IO 管脚(或部分IO管脚)持续供电,由IO管脚或重置 (Reset) 管脚唤醒 CPU.因为此模式下,RAM 的数据已丢失,通常会进行内部电源切割,提供数十个状态记录缓存器作为系统重启时的初始状态参考源。此模式的优点是更低的静态电流,通常仅需 100nA ~ 500nA,其缺点是并非所有的应用都可以忍受 RAM 数据丢失及系统重启。

        电源系统的考虑

        在多电源系统的应用上,必须考虑低功耗 MCU 的内部电源规划或自动切换,以下以市电/备用电池双电源系统及内建 USB 接口,但平常由电池供电的行动装置来举例说明。

        市电/备用电池双电源系统:MCU 平常由市电经由交直流转换电路供电,当市电断电时,经由连接在备用电源的独立供电管脚进行供电,同时在 MCU 内部进行电源切割,并提供一个可靠的备用电源自动切换开关,确保市电正常供电时备用电池不会持续被消耗。但仔细考虑,其实有两种状况可能发生,一种是备用电池仅供电给部分低耗电的外围电路,例如 32.768K 晶振、RTC 时钟电路、数据备份寄存器等。当市电来时 MCU 将重新启动。另外一种状况是当市电断电时,有可能 MCU 及部分外围电路会被唤醒工作,然后再次进入待机模式。智能型电表就是此类应用的典型代表。在此种应用中,备用电池需要供电给整颗 MCU,所以电源自动切换开关必须能承受更高的电流,相对成本也较高。

        内建 USB 接口行动装置:此类装置平时由两节电池供电或锂电池供电,工作电压可能为 2.2V 3V,当连接到 USB 时,USB接口转由 VBUS 供电。此类低功耗 MCU 如果没有内建 5V 3V USB 接口 LDO 将会产生下列问题,当连接 USB 时必须由外挂的 LDO USB VBUS 5V 电源转换为 3V 电源同时提供给 MCU VDD USB 接口电路,但又必须避免 LDO 输出的 3V 电源与脱机操作时的电池电源发生冲突,将会需要外加电源管理电路,增加系统成本及复杂度。

        丰富的唤醒机制及快速唤醒时间

        有许多的系统应用场合,需要由外部的单一讯号、键盘或甚至串行通讯信号来激发 MCU 启动整体系统的运作。在未被激发的时候,微控器或甚至大部分的整机需要处于最低耗电的待机状态,以延长电池的寿命。能够在各式需求下被唤醒,也成为微控器的重要特征。MCU 能拥有各式不同的唤醒方式,包括各I/O 可作为激发唤醒的通道,或是由I2CUARTSPI的信道作为被外界组件触发唤醒,或使用内、外部的超低耗电时钟源,透过 Timer 来计时唤醒。诸多的唤醒机制,只要运用得当,并配合微控器的低耗电操作切换模式,可以使 MCU 几乎时时处于极低功耗的状况。

        配有快速、高效率内核的 MCU,可以在每次唤醒的当下短暂时间里,完成应有的运作与反应,并再次进入深层的低待机模式,以此达到平均耗能下降的目的。但是,如果唤醒后开始执行微指令的时间因为某些因素而拖延的很长,将会使降低总体耗电的目标大打折扣,甚至达不到系统反应的要求。因此,有些 MCU,配合起振时间的改进,逻辑设计的配合,使得唤醒后执行指令的时间至少降到数个微秒之内。

        低功耗模拟外围及内存

        低功耗 MCU 在运行时除了 CPU 内核及被致能的数字外围电路在工作外,越来越多被整合到内部的模拟外围电路也是耗电的主要来源。以最简单的 while (1); 执行序来分析运行功耗,共包含下列耗电来源: CPU 内核、时钟振荡器、嵌入式闪存内存、及 LDO 本身的消耗电流。代入以下典型值数据将会更清楚显示各个部分对耗电的影响:

        运行频率 12MHz,MCU 电压 3V,LDO 输出 1.8V 供给 CPU 内核、内存及其他数字电路

        低功耗 CortexTM-M0内核:600 μA

        嵌入式闪存内存:1.5 mA

        低功耗12MHz 晶震电路:230 μA

        LDO本身的静态消耗电流:70 μA

        总和 = 0.6 + 2 + 0.23 + 0.07 = 2.4 mA,平均功耗约 200μA/MHz

        其中耗电比例最高的是嵌入式闪存内存。如果要运行在更高频率,通常会启动内建的 PLL 提供更高频率的时钟源,在 1.8V 供电的典型 PLL,12MHz 输入输出 48 MHz工作电流约为 1 ~ 2mA,如果不能有效降低 PLL 耗电,对高频工作的低功耗 MCU 将是一大电流负担。

        LDO 的最低静态功耗、32.768 kHz 晶振电路、BOD TN LCD 驱动电路的工作电流,都会大大影响到待机或 RTC 模式的功耗指针。以低功耗应用的热能表为例,RTC LCD 显示的功耗要求在 3V/8μA 以下,这代表可以预估分配给下列电路的电流预算为:LDO 静态功耗 0.5μA + 32.768 kHz 晶振及RTC电路 1μA + BOD 1μA + TN LCD 驱动 4μA + LCD 玻璃 1μA + 所有数字电路及模拟外围漏电流 0.5μA.这些模拟外围除了低耗电要求,同时必须兼具要求批量生产及温度变化时的一致性,这对模拟设计人员将是一大挑战。

        快速唤醒这个性能指针也会影响到下列模拟外围的稳定时间。当 MCU 从低耗电的待机模式唤醒时,首先要将 LDO 快速切换到高供电模式,启动内部高速 RC 震荡器,使能嵌入式闪存及 CPU,以上所有电路的稳定时间总和必须在数个微秒内完成,才能符合快速唤醒的需求。

        另外一个容易被忽略的设计是外围电路启动电流,因为相当多的便携设备采用 CR2032 小型锂电池,瞬间推动力仅有数 mA,尤其使用一段时间瞬间推动力会更低,当 MCU 被唤醒时果外围电路启动电流总和太大时,将会导致 CR2032 输出电压骤降而导致 MCU 重置 (Reset) 或工作不正常。为了避免此问题,除了降低外围电路的启动电流,另一种方法是分时分段启动外围电路,不要集中开启太多耗电的电路。

        平均功耗计算范例

        为了让读者更具体了解平均功耗的计算,以新唐科技的低功耗 32 MCU Nano 系列及血糖计应用为例,进行使用年限的预估。新唐的 Nano 系列低功耗 32 MCU CPU 内核为 CortexTM-M0,具有 200uA/MHz 低运行功耗、待机电流仅需1uA7uS快速唤醒、多重时钟讯号来源及多种工作模式,多达 128 KB Flash16K SRAM 12 ADC12 DACSPII2CI2SUARTLCDTouch Key 等丰富外围,符合低功耗、高性能 MCU 应用需求。

        此血糖计范例采用 CR2032 230 mAh 电池,使用方式、运行功耗及静态功耗如下表所示。

         

    http://www.eeworld.com.cn/uploadfile/2018/0319/1521466233922468.jpg

         

        使用年限的计算方式请参考下表。量测时间比例、显示时间比例及待机时间比例可由上表求得。例如,量测时间比例为 “6 x 0.25 分钟 / (60 x 24) 分钟 = 0.1%”.其余时间比例依此类推。量测平均电流为量测时间比例 x (MCU运行耗电流 +外部量测电路耗电流 +待机(RTC)耗电流 + LCD 耗电流 + CR2032 自放电)”.显示平均电流为显示时间比例 x (待机(RTC)耗电流 + LCD 耗电流 + CR2032 自放电)”.待机平均电流为待机时间比例 x (待机(RTC)耗电流 + CR2032 自放电)”.最后计算出使用年限约为 2.77年。由于待机时间比例高达 99%,故血糖计应用待机电流为延长使用年限最重要的参数。     

    http://www.eeworld.com.cn/uploadfile/2018/0319/1521466238427292.jpg

        结论

        低功耗MCU设计是一个需要多面向考虑的复杂工作,本文仅阐述基本设计理念。开发低功耗 MCU 产品时,不只要挑战电路设计的高困难度,更要由客户应用的角度考虑性价比,功能最强的不一定是最好的。往往性价比最适合的才能在市场上取得成功。由于智能电网、物联网、远程控制、自动化管理等低功耗高效能应用需求量持续增加,在可以预见的未来,32位低功耗MCU将逐渐取代8/16位低功耗MCU,成为市场主流。

     

    展开全文
  • #include "N76E003.h" #include "Common.h" #include "Delay.h&...qu
  • MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的...
  • CX32L003这颗MCU是基于cortex M0开发的芯片,与stm8s003 PIN TO PIN兼容。这颗芯片的主要特点是: ...在active情况下功耗是1.5mA @16MHz,在深度休眠情况下,这颗芯片还有低功耗串口LPUART,低功耗定时器L
  • 单片机是单片微型计算机的简称,是由中央处理器(控制器、运算器)、存储器、定时器/计数器、并行I/O接口、串行I/O接口、中断系统等组成的一个大规模或超大规模的集成电路芯片,只要连接晶振、复位电路即可构成...
  • N76E003每个管脚都提供管脚输入中断功能,用于检测管脚电平状态,如按键或键盘是否按下。最多配 置8个I/O管脚用于管脚中断。任何按键按下时通过边沿或电平触发产生一个管脚中断事件。管脚中断能 使MCU从空闲模式或掉...
  • STM32L1学习笔记01 工先利其器之CoIDE

    千次阅读 2018-11-16 21:59:20
    一款免费的ARM Cortex MCU嵌入式集成开发环境。
  • 单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段。单片机由以前的1位、4位、8位、16位,发展到现在的32位甚至64位。 90年代后随着消费电子产品大发展,单片机技术得到了巨大提高,相继诞生了一批经过市场考验获得...
  • LoRa 节点侧学习笔记_汇总

    万次阅读 多人点赞 2019-05-23 20:14:10
    在市场为低功耗广域网开始造势时,我们技术人员就要开始跟上了。IoT小能手在ZigBee、蓝牙、WiFi之后,也终于开始接触LoRa技术,学习过程记录梳理了一些笔记。将LoRa的学习分成了四大部分,循序渐进。
  • 上海灵动微电子MM32F103C8T6使用高性能的ARM® CortexTM-M3 为内核的...具有多种省电工作模式保证低功耗应用的要求。并提供LQFP100、LQFP64、LQFP48、LQFP32 和QFN32 共5 种封装形式,根据不同的封装形式,器件中的外设
  • MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的...
  • 新塘N76E003红外遥控解码程序

    千次阅读 2018-03-24 11:04:30
    一直用的STM8S003的单片机,后来价格涨到三块多不得不换。拿上新塘N76E003芯片,资源中规中矩,相比用习惯Cortex® M 内核微控制器和STM8,用这个芯片资源就有些少了,先来个简单的红外遥控解码。(打算用外部IO中断...
  • MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的...
  • 点击上方“大鱼机器人”,选择“置顶/星标公众号”福利干货,第一时间送达! 0前言MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单...
1 2 3
收藏数 52
精华内容 20
关键字:

低功耗 新唐单片机