现代单片机(MCU)拥有丰富的外设和功能,极大地方便了设计的功耗预算。全面了解器件的相关知识对于嵌入式设计人员非常重要,只有这样,设计人员才能充分利用可用的模式和外设来降低设计功耗。
充分利用省电模式和功能
大多数单片机都设有多种模式,可提供各种省电选项。尽管模式的名称可能各不相同,但是几乎所有MCU都会提供“运行”、“空闲”和“休眠”三种典型模式。
对于特定架构的多种其它模式和功能的熟悉程度非常重要。虽然仅使用上述一些熟悉的模式也可以使设计功耗达到可接受的水平,但是要使应用的电流消耗达到绝对的最低水平,最好是利用器件的独特功能。例如,某些MCU采用了一种新型断电模式,该模式取消对MCU的内核供电以最大程度地降低功耗,从而使功耗低于常规断电模式下的功耗。这种模式通常被称为“深度休眠”。
MCU内核断电时RAM也将断电,这样会导致其它低功耗模式(如休眠)下仍然可以保留的某些信息丢失。既然代价如此高昂,那么什么情况下才适合使用深度休眠模式呢?使用深度休眠模式的好处是取消器件的大部分供电时产生的漏电流很小,这可以显着降低掉电电流——某些情况下可以降到50 nA以下。小漏电流还使得深度休眠模式在高温或高压应用中的表现更好,高温和高压常常导致休眠模式电流增加。深度休眠模式的另一个主要优点是可以实现设计尺寸更小且性能更佳的芯片,同时不用放弃低功耗目标。这种模式最适用于掉电时间较长的应用,这些应用中减小掉电电流的重要性远远超过使应用重新初始化的成本。
设计人员对器件的熟悉度变得重要的另一个原因是,不仅只有低功耗模式才能降低功耗,很多用于提升性能的功能也有利于降低功耗。例如,如果某个器件有内部振荡器,则用户可以在主晶振开始运行初始化代码的同时使用该内部振荡器,这样便可以缩短器件唤醒所需的总时间。
数字外设的功耗
集成外设有助于显着提升MCU的性能并允许移除外部元件,这两点都有利于降低功耗。但是,如果使用不当,运行外设的成本会高过所节省的功耗。可以通过几种简单的技巧使外设自身的供电成本最小化,以维持低功耗应用。
一般来说,单片机中使用的最耗电的外设是串行通信总线。I2C和SPI通信均使用多条高速线路。驱动这些线路的供电成本非常高。SPI在高速运行时消耗的电流会达到毫安级,因为它需要驱动三条高速I/O总线。驱动这些总线时的开关损耗会导致极大的电流消耗。相比而言,I2C运行速度较慢,但是因为它使用了上拉电阻,而当低电阻上拉用于实现高速时会造成相当大的电流,因此电流消耗会更大。
降低这些串行通信外设功耗的最简单的方法是降低速度;但是,并不是所有情况下都可以这样做。既然运行串行通信的大部分成本来自于驱动总线,那么我们就应该将焦点放在驱动总线上。对于SPI而言,采用走线较短的简洁电路板布局来最小化线路阻抗很重要。而I2C则相反——在总线上采用值较高的上拉电阻可以降低电流消耗,并且在某些情况下并不会减慢最大速度。要最小化这两种情况下的功耗,可以减少总线上的器件数量或关闭未使用的器件的电源,而不是在选择芯片上费脑筋。在软件中,如果某个应用正在等候串行数据,可以通过禁止CPU来降低这些外设的功耗。另外,也可以将串行传输数据组合成集群,而不是持续传输,这样应用就可以更长时间保持在省电模式,而在更少时间处于唤醒状态以发送和接收数据。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
推荐STM8L+STM32L系列,具体外设需求可以下载ST MCU finder这个软件自行选择。
一周热门 更多>