概述
LPTIM 是运行在Always-On 电源域下的16bits 低功耗定时/计数器模块。通过选择合适的工作时钟,LPTIM 在在各种低功耗模式下保持运行,并且只消耗很低的功耗。LPTIM 甚至可以在没有内部时钟的条件下工作,因此可实现休眠模式下的外部脉冲计数功能。此外,与外部输入的触发信号结合,可以实现低功耗超时唤醒功能。LPTIM 的主要特性有:
➢ 16bit upcounter
➢ 3bit 异步时钟预分频器,8 种分频系数(1、2、4、8、16、32、64、128)
➢ 可选工作时钟:
- 内部时钟源:LSCLK、RCLP、系统时钟
- 外部时钟源:LPTI(带有模拟滤波)
➢ 16bit 比较寄存器
➢ 16bit 目标值寄存器
➢ 软件/硬件触发
➢ 输入极性选择
➢ 无时钟外部脉冲计数
➢ 外部触发的休眠超时唤醒
➢ 支持16bit PWM
结构框图
工作模式
普通定时器
⚫ 使用内部时钟或外部时钟输入工作
⚫ 使能后有两个计数时钟的同步过程
⚫ 使能后即开始工作,不需要trigger 触发
Trigger脉冲触发计数
⚫ 使用内部时钟工作
⚫ 内部时钟采样外部输入的异步 trigger 信号
⚫ 可以对 trigger 的上升、下降、双边沿计数
⚫ 使能后有两个计数时钟的同步过程
外部异步脉冲计数
⚫ 直接使用外部输入脉冲作为计数工作时钟
⚫ 输入极性可配置,实现上升沿计数或下降沿计数
⚫ 不需要 trigger 触发
⚫ 使能后无同步过程
Timeout模式
⚫ 使用内部时钟或外部输入时钟工作
⚫ 采样外部输入的异步 trigger 信号
⚫ 首次 trigger 启动计数器,启动后采样到 trigger 则清零并重启计数器
⚫ 计数器溢出前没有出现新的 trigger ,则产生溢出中断并 停止计数,清除使能
⚫ 使能后有两个计数时钟的同步过程
计数模式
LPTIM有两种计数模式。
连续计数模式:计数器被触发后保持运行,直到被关闭为止。计数器达到目标值后回到0重新开始计数,并产生溢出中断。
单次计数模式:计数器被触发后计数到目标值后回到0,并自动停止,产生溢出中断。
单次计数模式自动停止并关闭使能信号的波形如下,由于溢出信号和lpten使能信号位于不同的时钟域,关闭使能信号采用异步复位同步释放的方式实现。
外部触发的超时唤醒
LPTIM可以由外部输入的trigger信号触发使能。在Timeout模式下,第一个外部触发输入的有效沿将启动计数器,而后续触发信号将清零计数器。如果在计数器达到比较值之前没有有效触发信号到来,则产生超时中断,唤醒MCU。
外部输入trigger信号的有效沿可以由寄存器配置,外部trigger信号被认为是一个异步输入,因此有效沿的采样和判决有至少2个计数时钟的latency。
16bit PWM
使能PWM模式后LPTIM从0x0000开始计数,计数值等于比较值时输出置高,计数值等于终值寄存器时输出变低;PWM周期由终值寄存器决定,占空比由比较值寄存器决定。
软件工作流程
1:选择时钟源,设置分频值,设置工作模式和计数模式。
2:设置高低位比较寄存器的值。
3:设置高低位目标寄存器的值
4:打开中断标志使能。
5:打开LPTEN使能位,启动计数器。