在线时间66 小时
UID3239593
注册时间2016-4-20
NXP金币0
TA的每日心情 | 开心 2016-10-25 10:29 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 272
- 最后登录
- 2019-6-10
|
问题如题目。我先是参考例程自己写了一个关于VLPR的程序,然后按照我的方法测量电流为5.7mA左右,跟数据手册的相差实在太远,就用例程直接进入VLPR模式,然后测量电流也是5.7mA左右,所以我就怀疑自己的测量方式是否有问题。路过的版友知道怎么测的,麻烦你指点一下小弟。
SDK.2.0例程里是通过串口输入来选择模式,但我关闭串口选择,直接让例程进入VLPR。并且让程序进入死循环,方便测量。
我的程序(没使用任何外设):
//内核和总线时钟限定为 4 Mhz
//Flash 频率限定为 1 Mhz
void enter_vlpr()
{
// FBI mode
MCG->C1 |= MCG_C1_CLKS(1); // Internal reference clock is selected
MCG->C2 |= MCG_C2_IRCS_MASK; // Fast internal reference clock selected,4MHz
MCG->SC = 0x0; // 4M/1
delay();
// BLPI mode
MCG->C2 |= MCG_C2_LP_MASK; // FLL is disabled in bypass modes (lower power), BLPI
SIM->CLKDIV1 |= SIM_CLKDIV1_OUTDIV1(0) | // core clock 4M/1
SIM_CLKDIV1_OUTDIV4(3); // Bus clock 4M/1/4
SMC->PMPROT = SMC_PMPROT_AVLP_MASK; // VLPR, VLPW and VLPS are allowed
SMC->PMCTRL = SMC_PMCTRL_RUNM(2); // 10:Very-Low-Power Run mode (VLPR),00:normal run
}
int main(void)
{
enter_vlpr();
while (kSMC_PowerStateVlpr != SMC_GetPowerModeState(SMC)) //等待进入VLPR
{
}
while(1)
{}
}
|
|