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

【经验分享】STM32G4高精度定时器的HALF输出模式示例

[复制链接]
STMCU小助手 发布时间:2021-12-8 22:00
有人想使用STM32G474芯片做Half模式的PWM输出,发现有点问题,明明配置了定时器A的两路输出, 结果总是只有1路输出。这里简单演示下实现过程。【顺便提醒下,并非STM32G4全系列都内置高精度定时器】1 l1 m$ C5 I2 S9 g

% M- F3 q& `% R所谓Half模式就是指硬件基于给定的计数周期值自动输出占空比为50%的方波,用户无须对比较寄存器的值再进行设置,这里硬件默认使用比较寄存器1【cmp1】,硬件自动将用户设置的PERIOD值的一半赋给CMP1寄存器。换言之,用户此时无法对CMP1寄存器进行赋值。
' r* W. `, g0 w6 r2 t$ a  o7 o8 c% u
另外,对于输出配置必须使用CMP1比较事件和定时器的Period周期事件。: R; G' ]- z0 v& |6 [7 \2 t

( i6 f7 Z8 F0 P4 @" t" ^% J
808614ccc90f45f5bb8833c0c4d5ded7.png
0 I) P5 e2 Z  j- `+ q/ n

. b- B- o# O( p: n1 r关于HALF模式的原理就介绍到这里,下面就使用STM32G474RE的Nucleo开发板演示下实现过程,主要是软件配置,硬件没啥要处理的,有块开发板就行。8 c# B9 g9 F7 Q- l, J  m
* R6 q1 O  R3 V  }+ E) i4 L
9fb0e153afce61810bb409f94a4994e0.png
' L6 i  s6 l* h5 u' s
9 e' n& B& W7 G8 N' a
先使用STM32CubeMx进行配置【其它RCC等的配置此处就不说了】。5 k1 e8 G! C' v* j  M: ]6 a7 O+ r
5 t6 h; g- J7 r
4460249ac1fc05a1777bd130ef283448.png

3 s. _' j6 [6 I
7 b% l9 m! C5 l  x5 M- u0 D# h5 ^8 Y下面截图橙色框中的配置是必须的,有关定时器的时间参数我随便配置的,毕竟这里只是演示一下功能。4 L1 ?( ^/ W' A# R) x) `- J* p

! x7 h; c/ M) n" \
0710b542946312b5ce1c483be1ad5e3d.png

( L$ V& {! x& ?: z* w- q1 K% V. h
这里的比较单元1必须使能,使能即可,无须参数配置。) T4 j2 k4 R1 p
% w% b( B' {' c1 _3 _
456cf41ee55b528de4505cc838f4aff0.png

+ {0 e4 Z2 h# e' I& @$ w! S( E8 x) J4 J& Q- C2 p* @' d, d% i' z
下面关于TA1/TA2输出的配置,也是必须的关键配置。# G8 h# ?7 Z2 L$ n

3 H# P- c' b+ N  R0 U9 j
3771ff10d27e6e8491f23a004e708233.png

" n8 y7 ~/ N3 i* O( ]- ]
! A3 i: X7 s! V至于定时器的其它配置,保持默认即可。配置完成后,生成初始化代码,然后加入合适的用户代码。( N. X& e7 b7 g+ C0 w

- R/ S  x4 E3 w0 k' ~ HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);5 b, [9 J* y1 L9 Z9 t% n

7 e+ s# z! V! U6 \- Q) b
7 V) v+ N, z$ H0 Z
# d' V0 F/ X$ s+ p% Y  HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);8 k! P8 [) ~1 l$ N+ g

; u  l) ^: W! i1 l  HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2);
) z/ t$ h; t& C( k2 n
, R7 \) w* V. E0 H1 y3 I- N$ e9 p8 L
7 {/ S. }1 |5 `- E编译运行看结果:
2 U" Q" p4 O5 L( B% ^( Y( x% Y$ J  l: W9 Z! D$ Y* I
647065895cf34eb2b894b34b9b135da9.png
8 x, O# S3 v2 o
; O6 D- H' T% H9 d2 Y4 K
因为我把TA1/TA2极性选择是相反的,所有此时输出的是两路互补波形,如果二者极性选择一致,输出的就是两路占空比为50%的相同波形。
: }' x0 ^9 H5 Y! M2 Y8 G. }- |9 J
. M, z7 m) X& ~% e# x4 a4 g, g+ N  U( Z; C+ g0 A4 \8 l

# }, \5 ~2 O3 ?+ N- g1 c
赞 收藏 评论0 发布时间:2021-12-8 22:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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