STM32 L0 系列作为一款低功耗芯片,具有丰富的外设和高温下保持极低功耗的特性,广泛应用于各种节能设备上和消费类电子产品中。
客户计划使用 STM32L051 作为移动电子产品的某功能主控芯片,控制步进马达。移动产品要求运行和待机都要有较低的功耗,并且能输出一定数量的脉冲。 STM32L051 具有 4个普通定时器,每个定时器具有数个输出通道,可以产生 PWM,但是不具有重复计数器。
通常,我们实现 PWM 信号往往利用定时器的比较输出功能,若要控制 PWM 输出个数,如果使用 STM32 高级定时器就比较方便。因为它有个的重复计数器功能(TIMx_RCR寄存器),结合单脉冲模式实现起来就简单方便。但是问题来了,STM32L051 本身不具备这样的高级定时器,那么如何控制输出的脉冲个数呢,就要考虑间接的方法。我们从定时器章节的定时器外部触发与同步章节中可以看到,工作在门控从模式的定时器的计数可以被触发控制信号的电平来控制。那我们是否可以基于这个机制来实现指定PWM 脉冲个数的输出呢?
根据这一原理,如果设定的这个使能计数的时间窗口恰好等于所有输出的脉冲时间总和,理论上就可以将实现指定个数的 PWM 输出。
LAT1073_STM32L0无高级定时器输出固定脉冲方式之一 v1.0.pdf
(435.32 KB)
|