许多人说PIC单片机一大的优势就是低功耗,那我们就来讨论,讨论低功耗的实现。
1,睡眠(sleep)
睡眠方式是我们最常用的一种方式来降低功耗,但睡眠期间单片机不能做任何的事情。对于那些没事情就睡着,有事情就做一下的情况睡眠无疑是功耗最低的处理方式。
比如:
睡眠+ I/O电平变化中断唤醒 当按键没按下时,单片机睡眠,当按键按下后,执行相应的工作。
睡眠+数据接收中断唤醒 这样单片机就可以再没有接收到数据时候进入睡眠状态,接收到数据的时候就唤醒然后处理数据。当然首先单片机要有相关的外设比如SPI ,I2C,USART,等这些支持这些通讯的模块。
睡眠+看门狗唤醒 这个可以用在需要定时唤醒做事情的场合
2,降低时钟频率
如果即想功耗低,又想单片机在能低功耗的情况下工作。这无疑是个最好的选择。
PIC单片机 比如PIC16F1823 /1829可以选择从32MHz到31KHz的内部时钟频率,我们通常可以将单片机设置在 4MHz 以上的频率下工作,如果需要单片机降低功耗的时候可以降低频率比如在31KHz的频率下工作。
虽然PIC16F1823数据手册中写到,单片机在睡眠电流只有只纳安,在31KHz的电流有几微安。但事实纳安只是个幻想。在项目一个中我使用降频得到的最低功耗是50微安左右,采用睡眠也是50微安。因为在如此低的频率下,功耗主要是流失在I/O口上了。
3,电流大户
单片机工作时钟频率,要降低功耗首先要不就睡眠(关掉时钟),要么就降低频率。
最耗电流的模块 就数ADC模块,其实模块的耗电和他比起来就是小巫见大巫。所以要低功耗ADC模块绝对不能开。
还有个用电大户就是I/O口,I/O要不上拉,要不下拉,不能悬空,除此之外还有其他因素,比如I/0口的输入输出状态,比如和其它芯片连接要串个电阻。
|