找回密码
 注册
关于网站域名变更的通知
查看: 905|回复: 3
打印 上一主题 下一主题

STM32 PWM输出

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-8-10 13:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本文将介绍通过STM32的定时器输出PWM,关于定时器的基础功能不再详解。
9 W. [, U6 l. j) I' J2 k2 o' B

该用户从未签到

2#
发表于 2021-8-10 14:09 | 只看该作者
01、PWM介绍% H. t! o# ?% [1 e# n2 N8 Z
PWM定义:脉冲宽度调制(PulseWidthModulation,PWM)简称脉宽调制。通俗讲,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
/ E& i9 i1 j, c占空比定义:占空比就是高电平所占整个周期的时间
+ u$ T; F1 y/ c第一个PWM波,周期为10ms,高电平的时间为4ms,所以占空比为40%,同理第二个PWM波为60%,第三个为80%。
' ?7 W9 U* [9 O' G6 ?PWM的频率: PWM的频率的整个周期的倒数,所以说上图PWM的周期为1/0.01,也就是100HZ。改变PWM的频率是通过改变整个的周期实现的。所以通过改变高低电平总共的时间、改变高电平占总周期的比例就可以实现任意频率、任意占空比的PWM波。
( z/ K; y5 L& [9 d0 R- T! hPWM的用途和优点:电机调速、功率调制、PID调节、通信等等,配置简单、抗干扰能力强,从处理器到被控系统信号都是数字形式的,无需进行数模转换。并且让信号保持为数字形式可将噪声影响降到最小,噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响,这是PWM用于通信的主要原因

该用户从未签到

3#
发表于 2021-8-10 14:26 | 只看该作者
02、STM32的管脚复用
1 g5 R# J% A. a5 ?5 @STM32没有专门的PWM引脚,所以使用IO口的复用模式。首先确认PWM功能的输出管脚,使用定时器9。从下面的框图中得知,timer9只有两个输出通道,所以timer9只能输出两路PWM。在STM32F207数据手册中的Alternatefunction mapping图片中,timer9的两个通道分别可以复用为PA2,PA3,PE5和PE6。
0 L' D6 o$ t2 W2 h+ C* h) z( [: z+ w- h

该用户从未签到

4#
发表于 2021-8-10 15:05 | 只看该作者
03、STM32输出PWM原理本文将重点在②部分,捕获/对比通道讲解,其中STM32的PWM就是利用对比通道实现的。脉冲宽度调制模式可以生成一个信号,该信号频率由TIMx_ARR 寄存器值决定,其占空比则由TIMx_CCRx 寄存器值决定。  g$ X  o" ~9 d! q8 O. q4 e" W

- Z, o9 L+ f; j8 ?, J从下图可以看出,当CCR寄存器和CNT计数器数值一样时,会产生动作(改变通道对应的GPIO电平)。由于CNT溢出时,重载值由TIMx_ARR寄存器值决定的。所以说TIMx_ARR寄存器值决定周期,而TIMx_CCRx寄存器值决定CNT溢出时,经过多久会产生动作(改变通道对应的GPIO电平),也就是决定了占空比。以向上计数为例,重载值为ARR,比较值为CRRx
+ {, k0 K# l- p* `: O0 N. S) J& ZSTM32输出PWM的过程:
& `! s* p* N3 Z" g$ q& A5 m3 Q6 }; c5 w) r4 Q
1、首先配置GPIO,配置定时器,具体参考一下代码。定时器配置参考《STM32基础定时器详解》。8 F: K6 y6 x! K2 E  Q
: f9 _. k9 g& o) b) _
2、捕获/比较通道使能比较通道
' b& d6 Q& e6 a* [3、使能完输出,就要配置PWM输出了) i  B3 {, A* B) [
①TIMx_CCMR1寄存器的OC1M[2:0]位,设置输出模式控制器
& [2 Q& D$ \! i/ u* J) n" u$ o& |' b8 c: G& l5 ~3 s
110:PWM模式1,111:PWM模式2。
# F' [+ I$ `) _4 X* ]9 H
/ j- D/ P1 D8 x②计数器值TIMx_CNT与通道1捕获比较寄存器CCR1进行比较,通过比较结果输出有效电平和无效电平。
* R  d4 ?2 E  s( c1 Q3 j/ F+ a8 A2 Y$ _3 ~" v% b, ^! U! H$ q
OC1REF=0 无效电平,OC1REF=1无效电平。) G; C0 A; H$ p8 P% p- e$ G

; I5 v* {6 {. o+ o& V③通过输出模式控制器产生的信号。TIMx_CCER寄存器的CC1P位,设置输入/捕获通道1输出极性。1 g& h; \: S( Q  p- Z' p

- p2 i/ P5 u2 D( K& c; e4 x. F0:高电平有效,1:低电平有效。
/ f( x: N# v" o. b; P$ i0 T( e$ i4 z% \% p: a) `
④TIMx_CCER:CC1E位控制输出使能电路,信号由此输出到对应引脚。
. P( A. D7 ~1 X
( h' V! X% w! ]9 U0:关闭,1:打开。
: D9 ^! j6 [6 i5 l
) L# d  z9 `  a首先对PWM模式1和PWM模式2进行介绍:4 L4 R1 F* q( d( z0 v5 b4 E' ?
# Z0 {: W1 f- N6 Q' A: j$ v$ q
模式1
9 ^9 d/ B, q0 K. q) V9 f: J9 m
  ]+ k7 k) D2 F( m$ B  b在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向上计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。
. o% k; y3 L3 N) h8 ]0 W. B( ~3 G( N; z
模式2
1 D( t. J8 F0 e# T
3 s- C. m4 p% B  [' d在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。
7 M+ X' V" e$ s( J' F: _
2 i! b1 u* a3 Y" S6 z/ \, G3 xTIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。  b! b# ]( Y- i4 N

5 S6 Z* c! d' z, oPWM输出高低电平由TIMx_CCMR1:OC1M位和TIMx_CCER:CC1P位共同决定。6 c3 G* X( b  R1 h( {% R7 R; C  x
& X% A" f. _- s# t( `
总结下来:
: _' y$ s+ J3 W' A  G5 N. a% o% q2 Y
7 J" _: D5 |, f2 _2 h# f模式1:7 m5 g3 ^# P0 w. u, g
$ p1 f* H( {  k: {
CNT<CCR为有效电平//(OC1REF =1)
9 v" i1 ?( h/ `/ u
1 V6 Q3 o8 T2 i7 a/ n' OCNT>CCR为无效电平//(OC1REF =0)/ |( C7 x+ q( c4 r. [2 r# m. o4 a

: ?" l3 n( u8 Y* M" o1 ]* `/ |模式2:! G+ R8 n1 z& ?% S$ Y8 P, b5 N
" A8 V5 U* k) i  x5 L: Q* ~: W
CNT<CCR为无效电平//(OC1REF =0)
  V. G/ `: ?& l" B0 m1 y
1 C2 S4 R) ?; W5 P2 V* F) WCNT>CCR为有效电平//(OC1REF =1)
' K! w4 T0 x, ~7 \3 N( }9 H- g, f+ J/ [7 t
CC1P:
4 I+ l1 j2 T4 ]- E9 V/ Y, _9 h8 Z  E  ?9 e$ i: p
0:高电平有效7 G! e3 o4 ?3 q+ L8 c
: [6 ]  ?4 a* p3 w+ a% Q
1:低电平有效
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-20 11:31 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表