澎湃微PT32x033系列 | 血糖仪专题技术文章连载_04

2022-07-18

 

 

 

丨  概 述 

 

PT32L033在非掉电低功耗的性能上充分为血糖/尿酸计的产品使用周期保驾护航,一颗纽扣电池至少能保障仪器正常工作3年。

本文针对PT32L033在低功耗方面的软硬件配置进行阐述。

 

表1. PT32L033在超低功耗上的性能参数

 

PT32L033有两种工作模式,正常工作模式以及低功耗模式,其中低功耗模式根据休眠的程度又分为普通休眠低功耗模式和深度休眠低功耗模式。

▶  普通休眠

Cortex™-M0内核停止,但包括Cortex-M0核心的外设在内的所有外设,如NVIC、SysTick等仍在运行,FLASH无法访问。

▶  深度休眠

除LSI外的所有时钟均已停止工作,相关的片内电源以及外设被强制关闭。

 

此外,在正常工作模式下,还可以通过以下方式降低功耗:

①  失能未被使用的时钟源
②  失能未被使用但已被使能的外设
③  将不使用的GPIO配置为输入同时做下拉处理

 

 

 

 
 低功耗

 

1.1.1  低功耗功能

 

使用ARM Cortex-M0的Wait for Interrupt (WFI)和wait for Event (WFE)两条指令可以使芯片进入休眠模式或深度睡眠模式。当执行WFI或WFE指令后,芯片进入哪种低功耗模式,由系统控制寄存器(SCR)的SLP位决定,具体请参考下文关于系统寄存器(SCR)的描述。

 

 注  WFI和WFE区别:执行WFI指令后,内核会立即进入低功耗模式,直到 WFI的唤醒源发生。而WFE则稍微不同,执行WFE指令后,内核会根据Event Register的状态来决定是否进入低功耗,如果Event Register为1,该指令会把它清零,然后执行完成(此时不会进入低功耗模式);如果Event Register为0,和WFI类似,进入低功耗模式,直到有WFE Wakeup events发生。

 

普通休眠模式可以通过以下方式唤醒:

①  外部复位
②  调试模式请求
③  所有使能的中断源(WFI)或者事件唤醒(WFE)

 

深度休眠模式可以通过以下方式唤醒:

①  外部复位
②  外部中断(GPIO的电平中断以及双边沿中断)
③  内部中断或事件(低功耗定时器中断(事件),独立看门狗中断(事件),比较器中断(事件),RTC中断(事件))
④  调试模式请求

 

 

1.1.2  低功耗寄存器概述

 

PT32L033进入低功耗模式主要配置内核系统控制寄存器同时配合WFI或WFE指令实现。

SCR(地址:0x E000_ED10)

 

 

 

 

 

 
 编程示例

 

2.1.1  示例概述

 

本示例以血糖仪Demo为载体,针对进入深度休眠在软件编写方面的一些注意事项提供参考。本示例正常使用到的外设有:LCD、RTC(使用外部crystal)、DAC(使用内部参考)、ADC等关键外设资源,而这些外设除了RTC在低功耗模式下正常使用之外,其他外设均不工作,本示例使用事件唤醒的休眠方式(WFE)。 

 

 

 

2.1.2  注意事项

 

超低设计注意事项:

▶  PB9管脚由于作为Crystal_OUT管脚内部存在下拉反馈电阻,因此休眠过程不能存在外部或者内部上拉电阻导致漏电

▶  超低功耗模式下,不相关的模拟外设软件需要主动关闭,比如内部2V参考以及OPA;

▶  超低功耗模式下,不相关的引脚复用功能全部清除并且软件做下拉处理;

▶  WFE为事件唤醒方式,那么只需要配置NVIC以及中断类型(无需响应中断)即可产生唤醒;如配置为WFI中断唤醒方式,那么需要使能中断(需要响应中断)才可产生唤醒;