M0+低功耗测试

需要注意的点。

1.测试低功耗需要断开 调试器 SWCLK SWDAT.

2.注意复位脚,复位脚的电压要和MCU供电一致。(不一致测试多了几微A)

GPIO设置。

所有没有使用的GPIO 全部置为高,或者是内部上拉。

对于晶振口 和SWD口  需要设置为低电平.

测试3.3V供电功耗是0.375uA。5V 低功耗为0.41uA.

.测试2.8V 低功耗0.37uA.

2.0V 供电,低功耗0.35uA.

单个不能说明,一般在0.41uA

测试过程钟怀疑 串联电路中的电阻会不会影响,最终简化出测试模型,MCU是一个变化的电阻。

如果低功耗是0.4ua.那么低功耗的时候的等效阻抗在3.3V下差不多是8.25M欧姆。

杜邦线测试一个也才0.45欧姆。回路中两个也才0.9欧姆,基本上可以忽略。

	GPIO_PullUp_Enable(&PORT->P0, 0xFF);
	GPIO_PullUp_Enable(&PORT->P1, 0xFF);
	GPIO_PullUp_Enable(&PORT->P2, 0xFF);
	GPIO_PullUp_Enable(&PORT->P3, 0xFF);
	GPIO_PullUp_Enable(&PORT->P4, 0xFF);
	GPIO_PullUp_Enable(&PORT->P5, 0xFF);
	GPIO_PullUp_Enable(&PORT->P6, 0xFF);
	GPIO_PullUp_Enable(&PORT->P7, 0xFF);
	GPIO_Output_Enable(&PORT->P12, 0x1F);	// P120, P121/X1, P122/X2, P123/XT1, P124/XT2 output low level
	GPIO_PullUp_Enable(&PORT->P13, 0xFF);
	GPIO_PullUp_Enable(&PORT->P14, 0xFF);

 

唤醒中断有两种方式,一种是WFI,使用中断唤醒,

这里是pending 信号就可以唤醒,用户可以直接屏蔽全局中断,只有开启对应的中断开关即可。

还有一种是WFE,事件唤醒,这种就不需要写中断服务程序。

有的IP可以产生事件也可以产生中断。开启NVIC_EnableIRQ 可以产生中断。


            __SEV();
			__WFE();  // Clear event from SEV and then begin test	
        // 用户低功耗中断或者事件源配置

            SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk|SCB_SCR_SEVONPEND_Msk;
			__WFE(); 

SEV 是手动产生一个事件,执行WFE发现 事件为1 就会清除事件标志位置位为0,再执行WFE 程序就会进入深度睡眠。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值