LPC802低功耗问题

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC802低功耗问题

787 Views
vector123456
Contributor I

各位好:

我正在使用LPC802,我在测试power down模式,但是功耗一直无法降低,始终在50uA左右,我使用的是SDK_2.5.0_LPCXpresso802。我直接使用了SDK下 SDK_2.5.0_LPCXpresso802\boards\lpcxpresso802\demo_apps\power_mode_switch_lpc 这个demo测试,测试发现功耗很高,我又翻阅了社区帖子根据帖子,我优化如下:

第一,设置管脚功能:

CLOCK_EnableClock(kCLOCK_Swm); SWM_SetFixedPinSelect(SWM0,kSWM_RESETN,false); SWM_SetFixedPinSelect(SWM0,kSWM_SWCLK,false); SWM_SetFixedPinSelect(SWM0,kSWM_SWDIO,false); SWM_SetFixedPinSelect(SWM0,kSWM_CLKIN,false); SWM_SetFixedPinSelect(SWM0,kSWM_ACMP_INPUT1,false); SWM_SetFixedPinSelect(SWM0,kSWM_ACMP_INPUT2,false); SWM_SetFixedPinSelect(SWM0,kSWM_ACMP_INPUT3,false); SWM_SetFixedPinSelect(SWM0,kSWM_ACMP_INPUT4,false); SWM_SetFixedPinSelect(SWM0,kSWM_WKCLKIN,false); SWM_SetFixedPinSelect(SWM0,kSWM_VDDCMP,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_0_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_1_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_2_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_3_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_4_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_5_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_6_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_7_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_8_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_9_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_10_MASK,false); SWM_SetFixedPinSelect(SWM0,SWM_PINENABLE0_ADC_11_MASK,false);

第二,所有管脚配置为不使用上下拉:

CLOCK_EnableClock(kCLOCK_Iocon);
const uint32_t IOCON_INDEX_PIO_config = (0x0 );
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_0, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_1, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_2, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_3, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_4, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_5, IOCON_INDEX_PIO_config);

IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_7, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_8, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_9, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_10, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_11, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_12, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_13, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_14, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_15, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_16, IOCON_INDEX_PIO_config);
IOCON_PinMuxSet(IOCON, IOCON_INDEX_PIO0_17, IOCON_INDEX_PIO_config);

第三,所有IO设置为输出低模式(外围硬件电源已经关断)。

第四,关闭一些时钟

POWER_DisablePD(kPDRUNCFG_PD_BOD);
POWER_DisablePD(kPDRUNCFG_PD_FRO_OUT); /*!< Ensure FRO is on */
POWER_DisablePD(kPDRUNCFG_PD_FRO); /*!< Ensure FRO is on */
POWER_DisablePD(kPDRUNCFG_PD_ADC0);
POWER_DisablePD(kPDRUNCFG_PD_ACMP);

  POWER_DisablePD(kPDRUNCFG_PD_LPOSC);   

但是,电流仍然在50uA 左右,请问,还有哪些操作需要做?

Labels (1)
Tags (1)
0 Kudos
1 Reply

570 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

There are several low power mode. sleep mode, deep-sleep mode, power-down mode, and deep power-down mode.

can you measure the current value for each of the mode with demo, can you see current value change?

deep-power down mode has the lowest current value.


Have a great day,
Jun Zhang

-------------------------------------------------------------------------------
Note:

This thread is continued as a private discussion with the submitter,
NXP support is not following the thread anymore.
-------------------------------------------------------------------------------

0 Kudos