PIC单片机之探讨低功耗
2013-05-18 11:43
190 查看
许多人说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口的输入输出状态,比如和其它芯片连接要串个电阻。
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口的输入输出状态,比如和其它芯片连接要串个电阻。
相关文章推荐
- MSP430的低功耗探讨
- PIC单片机(PIC16F877A)定时器
- 关于三维重建Cosplayer手办应用探讨
- presentModalViewController实现机制探讨
- 探讨AngularJs中ui.route的简单应用
- 程序员职业生涯探讨
- llbird的MFC串口操作库CnComm断言问题探讨及vs2015修正
- 关于STM32 SPI NSS问题的探讨
- 深入探讨Android异步精髓Handler
- 关于Java事务原理的探讨
- 从一个logger引发的lib和dll探讨
- 栈与堆的区别及其探讨
- ZooKeeper学习总结 第二篇:ZooKeeper深入探讨
- iPhone消息推送机制实现与探讨(转)
- 低功耗蓝牙(BLE)
- <<探讨linux/unix>>之运行程序
- linux 低功耗模式中的中断链
- 探讨如何做好网络贸易
- javascript闭包传参和事件的循环绑定示例探讨(转载)
- C++:探讨i++和++i