充分利用省电模式和功能
大多数单片机都设有多种模式,可提供各种省电选项。尽管模式的名称可能各不相同,但是几乎所有MCU都会提供“运行”、“空闲”和“休眠”三种典型模式。图1给出了许多单片机上可用模式的汇总。在一些情况下,何时使用哪种模式是显而易见的;例如,对于主要的处理工作,只能使用运行模式。在处理工作完成后,如果需要长时间等候外部事件,显然应该选择休眠模式。何时适合选择空闲模式并不容易判定,但是在发送或接收大批量的数据时最常选择该模式。在保留其他功能的同时等候较短时间延迟来关闭CPU,也会使用空闲模式。
对于特定架构的多种其它模式和功能的熟悉程度非常重要。虽然仅使用上述一些熟悉的模式也可以使设计功耗达到可接受的水平,但是要使应用的电流消耗达到绝对的最低水平,最好是利用器件的独特功能。例如,某些MCU采用了一种新型断电模式,该模式取消对MCU的内核供电以最大程度地降低功耗,从而使功耗低于常规断电模式下的功耗。这种模式通常被称为“深度休眠”。图2中显示的PIC24F16KA 16位MCU便是深度休眠器件的一个实例。
MCU内核断电时RAM也将断电,这样会导致其它低功耗模式(如休眠)下仍然可以保留的某些信息丢失。既然代价如此高昂,那么什么情况下才适合使用深度休眠模式呢?使用深度休眠模式的好处是取消器件的大部分供电时产生的漏电流很小,这可以显著降低掉电电流——某些情况下可以降到50 nA以下,如图1所示。小漏电流还使得深度休眠模式在高温或高压应用中的表现更好,高温和高压常常导致休眠模式电流增加。深度休眠模式的另一个主要优点是可以实现设计尺寸更小且性能更佳的芯片,同时不用放弃低功耗目标。这种模式最适用于掉电时间较长的应用,这些应用中减小掉电电流的重要性远远超过使应用重新初始化的成本。
设计人员对器件的熟悉度变得重要的另一个原因是,不仅只有低功耗模式才能降低功耗,很多用于提升性能的功能也有利于降低功耗。例如,如果某个器件有内部振荡器,则用户可以在主晶振开始运行初始化代码的同时使用该内部振荡器,这样便可以缩短器件唤醒所需的总时间。
数字外设的功耗
集成外设有助于显著提升MCU的性能并允许移除外部元件,这两点都有利于降低功耗。但是,如果使用不当,运行外设的成本会高过所节省的功耗。可以通过几种简单的技巧使外设自身的供电成本最小化,以维持低功耗应用。
一般来说,单片机中使用的最耗电的外设是串行通信总线。I2C和SPI通信均使用多条高速线路。驱动这些线路的供电成本非常高。SPI在高速运行时消耗的电流会达到毫安级,因为它需要驱动三条高速I/O总线。驱动这些总线时的开关损耗会导致极大的电流消耗。相比而言,I2C运行速度较慢,但是因为它使用了上拉