在讨论之前我们先明确以下两个问题:
1 使用低功耗单片机的目的是降低整个单片机应用系统的功耗,因此单片机系统外围电路的设计和外围器件的选择以及接口设计是实现低功耗的重要因素。所以,单纯地讲单片机本身的功耗是没有意义的。很多设计者在达不到功耗指标时往往说单片机不能实现低功耗,其实很多情况下是系统设计处理得不好或单片机低功耗特性使用不当所致。讨论低功耗必须结合整个系统电路及软件设计来进行。
2 低功耗单片机系统最典型的应用有两种情况:其一是系统能够实现间断性工作甚至在大部分情况下系统处于空闲或掉电模式之下。第二种情况是系统必须长期处于连续工作状态之下。这两种情况的低功耗设计不尽相同,本文讨论的是第一种情况第二种情况下的低功耗设计见文档“P87LPC764 单片机的低功耗设计之二”。
一 P87LPC764 低功耗系统的硬件设计
1 外围器件的选择
在间断工作的低功耗系统中,外围器件的静态功耗是首选指标,另一个选择标准是单片机与外围器件的接口方式,应尽量选择具有I2C 总线接口的外围器件,因为在口的低功耗处理上要简单一些。本例选用荷兰PHILIPHS 公司生产的工业级微控制器P87LPC764和具有I2C 总线接口的时钟芯片PCF8563 及LCD 驱动器PCF8566,EEPROM 选用真正0 功耗的芯片CAT24WC02。
2.电源电压选择
对于电池供电的低功耗系统应该尽量选择低的电源电压,这样能够充分利用单片机和外围器件的低电压低功耗的特性。本例选用3.6VDC电源供电。
3.工作频率的选择
通常选择低的工作频率来降低功耗,但这一点对掉电模式下工作的系统是没有意义的,因为掉电状态下振荡器已经停振。而在唤醒工作的时候,高的工作频率可以快速的执行任务,然后再返回到掉电状态。这样降低了工作时间,从而降低了系统的平均功耗。若选择低的工作频率,在唤醒工作的时侯执行任务的时间延长,但降低了工作电流,同样也能降低平均功耗。通常按照设计越简单越好的原则选择内部振荡功能,即工作频率6MHz。
4.口的处理
a P87LPC764共有18条口线,除P1.2/P1.3/P1.5不能选择输出方式外,其余口线都可配置为准双向口,开漏输出,强上拉模式(亦称推挽模式)和施密特输入模式准双向口和推挽模式。由于内部有上拉电阻故可不接外部上拉电阻。
b P1.2/P1.3只有开漏输出模式,因此若此两口被使用,应将其接上拉电阻。若不使用,可以接下拉电阻使其固定为低电平,以防止口线悬浮。P1.5不用作外部复位功能时只有输入功能,这时口使用时需加上拉电阻,不用时可加下拉电阻使其固定为低电位以防止电路出现振荡消耗电流。
c. 模拟I2C总线接口的特殊处理
为保证I2C总线的正确工作,一般设有外部上拉电阻.在掉电方式下,口线上既存在外部上拉电阻又存在外部I2C总线器件,这样口线无论置高还是置低都将消耗一定的电流(视外界电阻大小和I2C器件的功耗而定),因而I2C口线的上拉电阻也需加电源管理,本设计采用一个I/O口接在上拉电阻的一端为其提供电源.若口线紧张,可只对数据线SDA 进行电源管理。
5.外围器件的电源管理
a. LCD驱动器PCF8566的电源由I/O口完成,不用时由软件将其关掉。
b.电池低压检测的电源由一独立I/O口通过PNP型三极管提供,也可直接由I/O口来提供,但其精度会有所降低。
二 P87LPC764低功耗系统的软件设计
低功耗系统的软件设计任务之一就是如何降低系统的功耗。首先要尽量缩短工作时间,延长掉电时间。其次就是配合外部电路来降低系统的功耗,即进入掉电方式前要进行一些设置:
1. 关掉未使用外围器件的电源,例如关掉PCF8566的电源(停止显示);关掉电池低压检测回路的电源等。
2. 对口进行处理:对作为准双向口使用的I/O口,若口线具有外部上拉电阻,则在进入掉电方式前应置高关闭内部下拉晶体管;若口线未接外部上拉电阻(采用内部上拉),则进入掉电方式前应置低以关闭内部上拉晶体管对开漏输出配置的口线进入掉电方式前应置高。当然这些操作应首先保证口的外部功能。
3. 模拟I2C口线的处理:进入掉电方式前将口本身和上拉口线全部置低。在唤醒且需要I2C总线工作时才将其置高。
4. 关掉某些不使用的功能如掉电检测,模拟比较器等。看门狗功能较特殊,只能在编程时配置,程序中一旦使用就不能将其关掉。若不需看门狗功能,在编程时不使能其功能即可。
三 P87LPC764低功耗系统的特殊设计

在实际低功耗系统的设计中,上述方法应灵活使用。另外还可以配合外围元件采取一些特殊措施。上面的电路中利用PCF8563内部定时器功能实现了LCD的定时显示,在显示期间单片机仍然处于睡眠状态。显示期间的电流主要视LCD功耗而定,若选2u ALCD上述电路系统在显示期间的功耗为11 uA,不显示期间为0.3u A。

