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

STM32G4高精度定时器的HALF输出模式示例

[复制链接]
STMCU小助手 发布时间:2021-8-17 10:03
1.png 0 h$ v& g# V8 h' i5 {8 }! b
% V' d- L9 I$ z; Y
. q) {  _. Q4 N0 G: S
有人想使用STM32G474芯片做Half模式的PWM输出,发现有点问题,明明配置了定时器A的两路输出, 结果总是只有1路输出。这里简单演示下实现过程。【顺便提醒下,并非STM32G4全系列都内置高精度定时器】2 b. J6 K: u- \2 Q  q8 U1 c

  i* r; ~$ a* |2 i1 ?9 D' ]
0 {3 o  d, s$ Y9 B1 q8 W
所谓Half模式就是指硬件基于给定的计数周期值自动输出占空比为50%的方波,用户无须对比较寄存器的值再进行设置,这里硬件默认使用比较寄存器1【cmp1】,硬件自动将用户设置的PERIOD值的一半赋给CMP1寄存器。换言之,用户此时无法对CMP1寄存器进行赋值。
+ @' r1 `  i1 Y6 |( `" t* s
2 h9 C8 ?) b2 K( J. D
# e& g4 F- O# t/ U* P" Y
另外,对于输出配置必须使用CMP1比较事件和定时器的Period周期事件。
2 b$ O+ R  A7 t 2.png
7 f3 N- Y" N5 D1 P& F* I- `
" _2 w) {, t- G  c" }
" s1 w, j3 X6 M4 T2 J: E- ^
关于HALF模式的原理就介绍到这里,下面就使用STM32G474RE的Nucleo开发板演示下实现过程,主要是软件配置,硬件没啥要处理的,有块开发板就行。
5 U( j: @7 m" y 3.png
4 T' g  A2 h; ]+ f" l$ x: ~& N
! Q/ U1 n2 q! v6 o( L" J" E# o
0 P6 n. R- U5 q; j! U. q0 E5 I
先使用STM32CubeMx进行配置【其它RCC等的配置此处就不说了】。/ \' V, c1 J# M) W# M- Z
4.png
  B6 X& R6 X2 _5 _! U+ [0 q" F0 E7 W
' U; i5 P9 I, Z4 ~/ \8 _- F
下面截图橙色框中的配置是必须的,有关定时器的时间参数我随便配置的,毕竟这里只是演示一下功能。  e# m0 `7 s- I1 h" y. K' ?
5.png $ V, V- e- P: O% i

1 P. M# g/ {6 l$ t, B: U

% [# b, Y. i) X1 E4 K这里的比较单元1必须使能,使能即可,无须参数配置。- v/ Z# x2 V. Z
6.png
7 G' Y0 w) D: u' s! @: N- g3 ^
3 w6 c/ {( D6 m) l# {) d$ ?
8 K8 s; a- G& V( T+ ?) O
下面关于TA1/TA2输出的配置,也是必须的关键配置。
$ a: `  K# |* K% P* f 7.png 1 Y6 d) X) z/ {& X  j* e
( C: d% W7 w2 `

4 J2 g. q0 n; D1 K/ {- z) r至于定时器的其它配置,保持默认即可。配置完成后,生成初始化代码,然后加入合适的用户代码。
+ L: M) w3 \* X/ l% D9 G
/ S; T! g" S  Z1 ?) B
9 |& x1 w7 J4 ?
HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);- ?) L$ L" R- E3 z
* ~0 Q  a# d% C7 O  i
0 b: J+ Q1 m7 b& F
  HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);
( V: |' F- L, w" o& t
# d2 }$ g: c: i) Q* O
4 h+ F. A7 Z# G( r+ }7 ^& k5 Y/ q
  HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2);4 y  l% u3 t: U5 X% ]
: u, `( l$ ?5 O: e; _

. j0 Y# k( l! ?( i! s+ t编译运行看结果:! i4 n! e+ [, ?# B; f7 }% J* P
8.png ) ^9 g6 ]# H9 D% L% R5 k

) R+ i+ J& c- L% s/ `8 [% O0 \

1 T4 y0 t' {" n5 l因为我把TA1/TA2极性选择是相反的,所有此时输出的是两路互补波形,如果二者极性选择一致,输出的就是两路占空比为50%的相同波形。4 j! R, C0 Y5 x% u) t3 r

) y3 X) \8 Z/ ?5 c" _3 z  m) u& J7 o* {
0 x  g$ V. w2 n, P9 |, a) F* z- H: {

3 M- U% L& J& V# W" S& f. u/ ~
赞 收藏 评论0 发布时间:2021-8-17 10:03

举报

0个回答

所属标签

相似技术帖

官网相关资源

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