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

定时器剩余通道是否可以做PWM输出呢?

[复制链接]
攻城狮Melo 发布时间:2024-3-21 18:15
有人问如果STM32定时器外接了正交编码器,该定时器的剩余通道是否可以做PWM输出呢?
5 q2 p3 p# i, n1 o! [' D% n# g' j4 Q' r# T4 A; [+ ^
其实,对于STM32芯片,编码输入信号就是定时器的计数时钟源之一。定时器外接了编码输入,若还有剩余通道的话,剩余通道依然可以实现输入捕获或输出比较功能。此时,该定时器的计数时钟就是由编码器信号提供的。编码器信号从定时器的通道1和通道2同时输入,计数器基于编码信号的边沿事件进行计数,可以有多种计数方式供选择。具体编码器计数方式参见下表。后面实验采用第三种方式。
8 i4 ~* v  J$ \6 k, U1 B
, e/ _1 `  p, @/ |# T
微信图片_20240321181523.png

) ^  U, ]6 D' D5 g" D

0 Q5 i4 p7 S; _$ \( K4 Z* k下面使用STM32C0系列的Nucleo板,从定时器1的通道1、通道2接入正交编码信号,以TI1、TI2的有效跳变沿作为时钟源来实现PWM输出。
0 K! a; `6 M/ J- s9 T9 h, ~3 O' Q% T4 v
我先使用STM32C031芯片内部的TIM3产生两路正交编码信号的输出,然后将这两路输出接到TIM1的CH1、CH2,并令TIM1工作在编码模式,让其CH3输出PWM脉冲。  |5 F; R, U: I: o& T
8 ~- O4 {0 T, T9 H7 J7 x' M
微信图片_20240321181520.png
# R+ k4 C; d7 v5 b/ |

- O! N: ?: X6 Y7 I' K; |

' j4 S9 P0 u! I6 e先看看TIM3的CubeMx配置。为了产生一对相差90°的正交编码信号,我用到了TIM3的三个通道,其中CH2没有做实际输出【当然,若用两个通道也行】。见下面配置。( x, b/ Q% k. O7 E

0 X- O) Z6 i) H. @! D. `! j" X
微信图片_20240321181517.png
4 H" F" U( B0 _
$ J9 u# M: i* ?, B, p! T
微信图片_20240321181513.png
" O" k7 q# z  s* Q: k( E4 w1 D
9 ~- L1 s2 w, X5 L0 c/ z( h
下面波形就是基于上面配置的两路正交编码输出信号:9 N( L5 s  M0 {7 d; P

% A1 W% Y3 e1 E+ W
微信图片_20240321181507.png
# g# N- g: m$ G

7 D2 Y" d. l$ v, Y我们再来看看TIM1的CubeMx配置。工作在编码器模式,CH1、CH2作为编码信号输入,选择针对两路输入的跳变沿进行计数的方式。CH3、CH4做PWM输出。
, h1 |5 w1 P5 V/ q2 _% Y) Q0 N8 M6 ?6 n
微信图片_20240321181504.png
( |. u3 E4 }. {5 _9 `' J* ~+ B1 a4 t

; F5 N/ i. |5 I9 c% ^8 D
微信图片_20240321181501.png

1 e! q2 y, l6 I; B  `2 u+ k
* L! g( c* E7 U在上图中可以看到,TIM1的PSC=0,ARR为19,计数器处于单向计数模式,即每计20个跳变沿就产生溢出。因为对TI1、TI2两路的跳变沿进行计数,在输入信号的1个周期内会做4次计数。这样算下来,TIM1的一个输出周期对应于正交编码输入信号的5个周期。% W0 {8 J( `% M

* \0 D% ~  R* K& ^: D: e0 w
完成配置后创建工程,添加如下必要的用户代码。% H& b% \0 j: N. K
3 ~) P6 m# d; _
微信图片_20240321181458.png

8 b; q7 o6 W: S& D9 @/ Q
0 u0 r1 a! S$ ~- c. }( j; t
稍作调试可以看到如下结果,蓝色的为TIM1-CH3的PWM输出,另外两路为正交编码信号。实验结果跟前面推理的一致。
) k- ~3 I9 M# I3 U
& Q6 D, j- z5 K6 V9 ^0 w
微信图片_20240321181455.png

( ]( K; F  P0 e3 G: D5 |$ l; a

" C) }) l" B  b; x4 r* d& |不难理解,在前面TIM1时基参数不变的前提下,TIM1-CH3的输出频率由外来编码脉冲的频率决定,编码脉冲频率越高,TIM3-CH1的PWM输出频率也越高,反之亦然。【眼尖的人可能发现了此时计数器实际上是处于向下计数模式】
' ^( P6 ^! `. `3 M1 @
/ h- I) n4 p: _- I: v$ l+ N定时器基于编码脉冲作为计数时钟源时,使用CubeMx配置计数器的计数方向时,不要选择中心对齐计数模式,编码器时钟模式不支持该计数模式。至于选择向上计数模式还是向下计数模式无关紧要。因为编码器模式下,计数器是向上计数还是向下计数是硬件决定的,即根据TI1FP1和TI2FP2的相对电平以及所选择的计数方式决定。
* w; t/ O% g5 `% x& X( ]6 r

* b+ c9 }6 q% k* p3 p$ [% K转载自: 茶话MCU
: W* A+ p3 f; q如有侵权请联系删除; M5 W6 K; X: p% ^

9 }& S" u0 t" U7 O; T* F1 s# D
: `6 T  k) Q& C) t$ F

8 x* C3 X( B* H' ?( n; O& _
收藏 评论0 发布时间:2024-3-21 18:15

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版