你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L0 无高级定时器输出固定数脉冲方式之一

[复制链接]
STMCU小助手 发布时间:2022-8-1 21:15
1. 引言3 k  Z  l' n# D+ u6 Z
STM32 L0 系列作为一款低功耗芯片,具有丰富的外设和高温下保持极低功耗的特性,广泛应用于各种节能设备上和消费类电子产品中。$ M3 |3 h; Q; d4 s. V) _' @

7 F- r5 M6 @% Z- D1 z6 [. b- i

' w2 ~  j7 \, Z/ N2. 问题描述  N* q, h0 v! p# V# B" ?5 x
客户计划使用 STM32L051 作为移动电子产品的某功能主控芯片,控制步进马达。移动产品要求运行和待机都要有较低的功耗,并且能输出一定数量的脉冲。 STM32L051 具有 4个普通定时器,每个定时器具有数个输出通道,可以产生 PWM,但是不具有重复计数器。
& ]2 V) Y) |  Y: _/ a) n0 {% u3 K+ h+ R# i3 p2 Q- R) l

$ V: ?5 q* }7 r" f0 w) k3. 实现机制# Z: r" R+ _% Z/ ^$ k. ?
通常,我们实现 PWM 信号往往利用定时器的比较输出功能,若要控制 PWM 输出个数,如果使用 STM32 高级定时器就比较方便。因为它有个的重复计数器功能(TIMx_RCR寄存器),结合单脉冲模式实现起来就简单方便。
4 _, l5 G; X$ D9 _: X1 q; B但是问题来了,STM32L051 本身不具备这样的高级定时器,那么如何控制输出的脉冲个数呢,就要考虑间接的方法。8 E7 Y. i) V; m
我们从定时器章节的定时器外部触发与同步章节中可以看到,工作在门控从模式的定时器的计数可以被触发控制信号的电平来控制。那我们是否可以基于这个机制来实现指定PWM 脉冲个数的输出呢?' l' Z1 Y' L. F1 j/ X$ v) z+ B) U5 C9 I

% M. W& V# p, L

' I7 ~+ o# \+ K. L, R BQCD)(O4`EFM$G}7I$YPMEN.png 2 [" r- o1 u& |1 `/ j
8 P4 K2 _0 ]9 E! Q* A
8 q. k, r; s7 c9 x9 h: u
根据这一原理,如果设定的这个使能计数的时间窗口恰好等于所有输出的脉冲时间总和,理论上就可以将实现指定个数的 PWM 输出。- t: W5 s- [1 f/ w; c; p
8 a7 P6 l. M5 d/ E/ N: x, w

  y5 I: t4 M0 ?! {4. 实现方式
  k# h) {" \% h, {( x0 j 首先配置定时器 21 作为门控定时器,输出门控信号,控制输出脉冲个数(即计数时长)。设置去触发定时器 22 的信号选择 OC1REF,即比较信号 1. 系统主频 32M, 输出控制信号总长度为 270us。我们来看看相关实现过程。
/ h9 V5 }- _3 X2 O. K
( ?: o+ V" j3 g7 c$ p
$ r, {5 \3 h* ]# e: v6 ~0 }
K}T09}HLVTH)W{DXDKC4.png
' d& v2 M; {7 n3 ]" U
9 \- }  j, J5 T8 L
2 D5 s$ O" m0 Q7 E7 r& |1 e
( [: z! X4 w- S$ ^! l
其次配置定时器 22 为从定时器,也就是输出脉冲的定时器。定时器配置从模式的 GATEDMODE. 接收的控制触发信号来自于定时器 21 的 OC1REF。 输出脉冲单个周期 27us,如下图所示2 }+ ~! e5 C" @6 {

5 {3 e! q" c, K8 L; J% L
' r) q7 X5 Z: _5 d$ m$ b6 w8 }
O1Z}`0142YVDM)U$G9)5MI5.png 5 S# ]. h, @& P9 B+ Q4 e0 h

: n8 V$ Y; O. V- N* Y 9{SLGUO0RK81M70F1`}GG02.png
- q' N+ O  A; {9 h0 e  n
0 K" p# Z% l  A2 D" d$ u
# h' }8 u7 P% B 再次,由于只需要一次门控,也就是发出固定数量的脉冲(上例中为 10 个),相对于主控定时器来说,只发出一次控制信号,即单脉冲模式。所以在启动代码前需要配置为单脉冲方式。
0 T' H3 g3 Q/ a& L7 Y3 E8 R$ a, a8 ^6 W) ]3 V: i

- D# B. q1 _6 Q5 b 8 n' W2 ^( z7 @

$ n' b- z: g5 D! _3 ]- B& `1 U
# }/ r' P2 `+ l+ X$ Q. q3 u$ z
最后测试结果如下,所对应的时间刚刚好。通过为连续波形查看门控时间的准确度。由PWM 的计数完成刚好和门控时间完成。. S" k' J5 r% q, s6 S

4 K, N' d7 c% s# Q

& W8 \' m1 a! V& J8 W Z_K0BY1_]%J4UFPHJ9{SV8F.png
3 z1 i" G; W& _. k' E: l/ j& [  x
% @: G; Z/ Y1 D/ O) \! V! l
( n& D) `) g8 Y# l5 j6 G# Y: V) K- S! E2 i
" R4 x0 d# j/ W' c
完整版请查看:附件" O. y$ E" r9 H; F8 `, M
& M/ h& j. t- b3 D9 H! C
6 @; U" e$ c; q% f  a

LAT1073_STM32L0无高级定时器输出固定脉冲方式之一 v1.0.pdf

下载

435.32 KB, 下载次数: 0

赞 收藏 评论0 发布时间:2022-8-1 21:15

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版