关于lpc1112深睡眠(低功耗)的调试报告

发布者:温柔心情最新更新时间:2017-12-01 来源: eefocus关键字:lpc1112  深睡眠  低功耗 手机看文章 扫描二维码
随时随地手机看文章

由于产品为移动设备,所以功耗要求是比较严格的。目前采用了大MCU+小MCU的方式实现,小MCU主要是控制大MCU的电源,以实现系统的最低功耗。当然也就要求小单片机也在不工作的时候,进入低功耗状态。

       大MCU目前采用的是LPC1788,掉电模式理论最低功耗为65uA,但是实际调试并没有达到那么小(因为外设没有完全断电)。所以用小MCU来控制大MCU的电源,在需要的时候,在给大MCU供电。

       小MCU采用的是LPC111x(lpc1112/28pin),深睡眠模式的理论值约为6uA(这个。)。

       Lpc1112在不接外设的情况下,首先对深睡眠功耗进行测试,目前达到了5uA左右。

 

以下为源代码:

 

#include "nxplpc11xx.h"

#include "pmu.h"

 

 

#define NVIC_LP_SLEEPDEEP 1<<2

extern int key_value;

void WAKEUP6_IRQHandler(void)

{

       //PMU->PCON = (1<<8); //清除标志

 

       SYSCON->STARTRSRP0CLR = 1<<6;           /*清除唤醒中断标志    */

       __nop();

       key_value=2;

 

}

void WAKEUP5_IRQHandler(void)

{

       //PMU->PCON = (1<<8); //清除标志

 

       SYSCON->STARTRSRP0CLR = 1<<5;           /*清除唤醒中断标志    */

       __nop();

       key_value=1;

 

}

 

 

void config_ios(void);

void PMU_DeepSleep(void)

{

//reset IOs

config_ios();

 

/* Specify peripherals to be powered up again when returning from deep sleep mode */

SYSCON->PDAWAKECFG = SYSCON->PDRUNCFG;

SYSCON->PDRUNCFG |=(1<<3);     //BOD power down

 

/* Switch MAINCLKSEL to IRC */

SYSCON->MAINCLKSEL = 0;

SYSCON->MAINCLKUEN = 0;

SYSCON->MAINCLKUEN = 1;

while (!(SYSCON->MAINCLKUEN & 0x01));

 

/* Ensure DPDEN is disabled in the power control register */

PMU->PCON = (1<<11); //Clear DPDFLAG if it was set

/* Clear the Deep Sleep Flag */

PMU->PCON = (1<<8);

 

/* All OFF */

//SYSCON->PDSLEEPCFG = 0x000018FF;

SYSCON->PDSLEEPCFG = 0x0000ffFF;

/* Specify peripherals to be powered up again when returning from deep sleep mode */

 

//SYSCON->PDAWAKECFG = SYSCON->PDRUNCFG;

 

///GPIO0-6

 

IOCON->PIO0_6 &= ~0x07;

IOCON->PIO0_6 |= 0x20;

GPIO0->DIR  &= ~(0x01 << 6);

 

IOCON->PIO0_5 &= ~0x07;

IOCON->PIO0_5 |= 0x20;

GPIO0->DIR  &= ~(0x01 << 5);

 

 

/* Only edge trigger. activation polarity on P0.5  p0.6 is FALLING EDGE. */

SYSCON->STARTAPRP0 &=~(1<<6|1<<5); //0x00000000;

 

/* Clear all wakeup source */

SYSCON->STARTRSRP0CLR |=(1<<6|1<<5); //0xFFFFFFFF;

 

/* Enable Port 0.4 as wakeup source. */

SYSCON->STARTERP0 = (0x1<<6|1<<5);

 

NVIC_ClearPendingIRQ(WAKEUP6_IRQn);

NVIC_EnableIRQ(WAKEUP6_IRQn); // P0.6 as wakeup

 

NVIC_ClearPendingIRQ(WAKEUP5_IRQn);

NVIC_EnableIRQ(WAKEUP5_IRQn); // P0.5 as wakeup

 

SCB->SCR = NVIC_LP_SLEEPDEEP; //0x04

 

/* Enter Deep Sleep mode */

 __wfi();

 

}

 

 

 

 

 

 

 

void config_ios(void)

{

/* Configure all IOs as GPIO w/o pull-up & pull-down resistors */

IOCON->RESET_PIO0_0 = 0xC8; // RST_BOOT/P0_0

IOCON->PIO0_1 = 0xC8; //0xC0; // CLKOUT/CT32B0_MAT2/USB_SOF

IOCON->PIO1_8 = 0xC8;

IOCON->PIO0_2 = 0xC8; // SSEL/CT16B0_CAP0 //Trigger input

 

IOCON->PIO0_3 = 0xC8; //

IOCON->PIO0_4 = 0x80; // PIO

IOCON->PIO0_5 = 0x80; // PIO

IOCON->PIO1_9 = 0xC8; // CT16B1_MAT0

 

IOCON->PIO0_6 = 0xC8; // SCK0

IOCON->PIO0_7 = 0xC8;

 

 

IOCON->PIO0_8 = 0xC8; //0xC0; // SSP_MISO/CT16B0_MAT0/TRACE_CLK; MISO

IOCON->PIO0_9 = 0xC8; //0xC0; // SSP_MOSI/CT16B0_MAT1/TRACE_SWV; MOSI

IOCON->PIO0_10 = 0xC8; // JTAG_CLK/P0_10/SSP_CLK/CT16B0_MAT2

//IOCON->PIO1_10 = 0xC8; // ADCIN6/CT16B1_MAT1

 

 

 

IOCON->PIO0_11 = 0xC9; // JTAG_TDI/P0_11/ADCIN0/CT32B0_MAT3

IOCON->PIO1_0 = 0xC9; // JTAG_TMS/P1_0/ADCIN1/CT32B1_CAP0

IOCON->PIO1_1 = 0xC9; // JTAG_TDO/P1_1/ADCIN2/CT32B1_MAT0

IOCON->PIO1_2 = 0xC9; // JTAG_TRST/P1_2/ADCIN3/CT32B1_MAT1

 

 

IOCON->PIO1_3 = 0xC9; // ARM_SWD/P1_3/ADCIN4/CT32B1_MAT2

IOCON->PIO1_4 = 0xC8; // ADCIN5/CT32B1_MAT3/WAKEUP

//IOCON->PIO1_11 = 0xC8; // ADCIN7

 

 

IOCON->PIO1_5 = 0xC9; // UART_DIR/CT32B0_CAP0

IOCON->PIO1_6 = 0xC9; // UART_RXD/CT32B0_MAT0

IOCON->PIO1_7 = 0xC9; // UART_TXD/CT32B0_MAT1

 

 

/* GPIOs at outputs */

GPIO0->DIR = ~0; //Trigger Pin input only 

GPIO1->DIR = ~0; //WAKEUP Pin and PIO1_6/RXD input only

 

 

/* GPIO outputs to LOW */

GPIO0->DATA = 0x0;

GPIO1->DATA = 0X0;

 

/* GPIOs at inputs */

GPIO0->DIR = 0;

GPIO1->DIR = 0;

return;

}

 

 

1、  需要对io重新配置,函数config_ios:

a)         配置位普通的io口功能,并且是下拉

b)        将io设置为输出模式,并输出信号为0;

c)         再将io口设置为输入。(实验证明如果不再设置为输入模式,功耗将增加)

注意:对io口的配置,也是在lpc1788芯片上进行过实验的,通过以上操作会使功耗比较低。所以目前对单片机要进入低功耗状态,暂时对io配置都如上方式进行。

 

 

2、以上配置,并没有每一行代码进行调试,一些配置可能可以配置为其他值。

      其中:

SYSCON->PDRUNCFG |=(1<<3);     //BOD power down//

//SYSCON->PDSLEEPCFG = 0x000018FF;

SYSCON->PDSLEEPCFG = 0x0000ffFF;

这两条代码不能去掉。

SYSCON->PDSLEEPCFG  配置为0x00000aff,也会增加功耗,配置位0x000018FF功耗较低,所以看了看寄存器,在没什么大问题的情况下,索性都配置为0x0000ffFF。

 

因为昨天才开始建工程,找资料,所以对LPC1112还不是很熟悉,但是基本能满足功耗要求,暂时先记录下来,后续还是需要对这款单片机低功耗配置进行更深入的了解。


关键字:lpc1112  深睡眠  低功耗 引用地址:关于lpc1112深睡眠(低功耗)的调试报告

上一篇:LPC1788单沿pwm原理和配置
下一篇:lpc1788的地址空间分配

推荐阅读最新更新时间:2024-03-16 15:47

基于8051增强型单片机的RJM8L系列超低功耗MCU介绍
对于一些采用电池供电的产品需要长达数年不换电池情况下能连续工作,系统低功耗设计就尤为重要。MCU微控制器的低功耗设计决定系统的成败关键。MCU微控制器的低功耗技术涉及到软件、系统和底层的硬件工艺等。对于应用来说,在空闲的时候,可以将其时钟关闭以节省动态功耗,或小部分电路以低速低功耗的方式运行,SRAM的读写动态功耗相当可观,因此应该尽量减少读写SRAM。 瑞纳捷针对低功耗应用推出了RJM8L151S和RJM8L003系列产品,已大量应用到各领域,如:烟雾报警器,LoRa模组,智能门锁,灯控设备,GPS定位器,安防探测器,电子烟等应用领域。 RJM8L151S和RJM8L003系列产品是基于8051增强型单片机,工作电压2.
[单片机]
基于8051增强型单片机的RJM8L系列超<font color='red'>低功耗</font>MCU介绍
CC1110在低功耗无线传感器网络中的应用研究
引言 随着无线传感器网络应用的日趋广泛,越来越多的应用领域要求节点模块不仅拥有更小的体积,而且能够持续工作更长的时间,低功耗的设计已成为无线传感器网络应用研究的一个重要方面。 无线传感器网络低功耗设计可从三个方面进行:一是硬件设计低功耗,即通过低功耗芯片选型、低功耗电路设计技巧运用等多种手段降低系统功耗;二是工作模式低功耗,这是低功耗设计中最主要的手段,也是最有效的,它通过转换节点模块 休眠-唤醒 的工作状态实现功耗控制,可以采用节点时间同步、主机模式控制等方法达到降低功耗的目的;三是软件设计低功耗,即在无线传感器网络开发过程中,从软件着手,通过优化程序设计、切换芯片功耗模式、采用中断驱动模式等手段降低系统功耗,从原理上讲工作
[单片机]
CC1110在<font color='red'>低功耗</font>无线传感器网络中的应用研究
ST推出超低功耗性能STM32WB双核无线MCU
意法半导体的STM32WBx5 *双核无线微控制器(MCU)配备Bluetooth® 5、OpenThread和ZigBee®3.0**连接技术,同时兼备超低功耗性能。 通过整合意法半导体的STM32L4 Arm® Cortex®-M4 MCU的功能与意法半导体内部开发的由一颗Cortex-M0 +专用内核管理的射频芯片,STM32WBx5既注重节能降耗,又能同时执行无线协议和实时任务,是远程传感器、可穿戴跟踪器、楼宇自动化控制器、计算机外围设备、无人机和其它物联网设备的理想选择。 数据安全功能强化了STM32WBx5的物联网首选微控制器的美誉度。安全功能包括客户密钥存储(CKS)、公钥授权(PKA)以及无线MAC层
[单片机]
ST推出超<font color='red'>低功耗</font>性能STM32WB双核无线MCU
一种轨至轨输入的低压低功耗运放的设计
引言    电源电压逐步下降,晶体管的阈值电压并没有减小,但是运放的共模输入范围越来越小,这使设计出符合低压低功耗要求,输入动态幅度达到全摆幅的运放成为一种必须。本文所设计的具有轨至轨 (R-R) 输入功能的低压低功耗 CMOS 运算放大电路,在各种共模输入电平下有着几乎恒定的跨导,使频率补偿更容易实现,适合应用于 VLSI 库单元及其相关技术领域。 理论模型 基本的轨至轨输入结构    在较低的电源电压下,运算放大器的输 入级设计是非常重要的。传统的 PMOS 差动输入级的共模输入电压范围 V CM 可表示为 : 740)this.width=740" borde
[模拟电子]
CEVA蓝牙5 IP助力安森美用于超低功耗无线电系统集成芯片
原文标题:CEVA蓝牙 5低功耗IP助力安森美半导体用于物联网和医疗和保健电子互连设备的超低功耗无线电系统集成芯片 RSL10已经通过了蓝牙认证,依托于RivieraWaves蓝牙5低功耗IP大大地增强其连接性 集微网消息,全球领先的智能和互连设备信号处理IP授权许可厂商CEVA公司(纳斯达克股票交易所代码:CEVA)宣布安森美半导体(ON Semiconductor)已经获得授权许可,在其新型产品RSL10无线电系统级芯片(SoC)上部署使用RivieraWaves蓝牙5低功耗技术。RSL10支持IoT及医疗和保健电子互联设备的高级无线功能,是获得蓝牙技术联盟认证的首批低功耗蓝牙5.0芯片之一。 安森美半导体高级总监Michel
[手机便携]
基于MSP430的超低功耗电子温度计的设计
本文设计的超低功耗电子温度计能够通过温度传感器测量和显示被测量点的温度,并可进行扩展控制。该温度计带电子时钟,其检测范围为l0℃~30℃,检测分辨率为1℃,采用LCD液晶显示,整机静态功耗为0.5μA。其系统设计思想对其它类型的超低功耗微型便携式智能化检测仪表的研究和开发,也具有一定的参考价值。    1元器件选择   本系统的温度传感器可选用热敏电阻。在10~30℃的测量范围内,该器件的阻值随温度变化比较大,电路简单,功耗低,安装尺寸小,同时其价格也很低,但其热敏电阻精度、重复性、可靠性相对稍差,因此,这种传感器对于检测在1℃以下,特别是分辨率要求更高的温度信号不太适用。   显示部分可以采用笔段式LCD液晶显示。特别是黑白
[单片机]
基于MSP430的超<font color='red'>低功耗</font>电子温度计的设计
AD7416在低功耗温度检测系统中的应用
   0 引言   在测量与仪器仪表中,温度的检测几乎成为必不可少的一部分。传统的模拟温度传感器或是外围电路复杂,或是需要设计A/D转换、操作烦琐,在使用上都受到一定的限制,用数字温度传感器AD7416设计各种控制系统,体积小、功耗低、编程简单操作方便。芯片带有自动比较、可编程控制输出端OTI,在温控系统设计中有很大优势,另外,AD7416功耗低,可以编程控制工作与休眠状态的切换,在低功耗系统设计中也有广泛应用。    1 AD7416的结构功能   1.1 管脚功能   AD7416共8个管脚,采用SOIC/MSOP封装。1脚为数据输入输出口,IIC总线双向数据端口;2脚为IIC总线时钟端口;3脚OTI为温度比较输出端
[模拟电子]
3.5V电源、工作稳定的低电压、低功耗基准电压发生电路
3.5V电源、工作稳定的低电压、低功耗基准电压发生电路 电路的功能 三端式电路可广泛用于需要恒流置偏的场合,可则外接电阻RSET在1UA~10MA范围内随意设定输出电流。 I+=10UA时,要保证恒流,必须的端电压为0.7V,比较低。在低电源电压的电池驱动电路中则可提高电压利用率。 电路工作原理 国际半导体公司LM334是三端子调节器,可用外接电阻RSET设定I+=66.7*10的-3/RSET的电流,如RSET=6.8欧~68千欧,则可获得1UA~10MA的恒定电流,调整率为0.02%/V。 具体应用实例有:用3.5V以上的电压置偏电流带隙基准电压二极管。如果工作电流在10UA以上,则决定恒流电路的电
[电源管理]
3.5V电源、工作稳定的低电压、<font color='red'>低功耗</font>基准电压发生电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved