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

STM32 PWM输出

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本文将介绍通过STM32的定时器输出PWM,关于定时器的基础功能不再详解。
; r9 h& R6 [2 d( ~* ?; z, K

该用户从未签到

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

该用户从未签到

3#
发表于 2021-8-10 14:26 | 只看该作者
02、STM32的管脚复用5 p; i* h" R6 }/ U1 ]. [6 p* @
STM32没有专门的PWM引脚,所以使用IO口的复用模式。首先确认PWM功能的输出管脚,使用定时器9。从下面的框图中得知,timer9只有两个输出通道,所以timer9只能输出两路PWM。在STM32F207数据手册中的Alternatefunction mapping图片中,timer9的两个通道分别可以复用为PA2,PA3,PE5和PE6。$ S: T" @1 V  e  J
4 L4 p, ]2 _9 ~! V: a% c4 x* ^2 n

该用户从未签到

4#
发表于 2021-8-10 15:05 | 只看该作者
03、STM32输出PWM原理本文将重点在②部分,捕获/对比通道讲解,其中STM32的PWM就是利用对比通道实现的。脉冲宽度调制模式可以生成一个信号,该信号频率由TIMx_ARR 寄存器值决定,其占空比则由TIMx_CCRx 寄存器值决定。5 ]7 N% s7 Y+ |- {  p* Y" |
0 E' n8 F  ]3 `4 i- d
从下图可以看出,当CCR寄存器和CNT计数器数值一样时,会产生动作(改变通道对应的GPIO电平)。由于CNT溢出时,重载值由TIMx_ARR寄存器值决定的。所以说TIMx_ARR寄存器值决定周期,而TIMx_CCRx寄存器值决定CNT溢出时,经过多久会产生动作(改变通道对应的GPIO电平),也就是决定了占空比。以向上计数为例,重载值为ARR,比较值为CRRx+ N5 Q% I4 c+ ?- y, u, z  W1 M
STM32输出PWM的过程:$ y6 b4 |8 i8 D& v/ s; X- m

4 e6 a" W) D8 c  z. {1 L1、首先配置GPIO,配置定时器,具体参考一下代码。定时器配置参考《STM32基础定时器详解》。7 ^1 j; i& v, r8 u* ~* h

8 u9 \7 |4 |% y$ u2、捕获/比较通道使能比较通道( R4 C% y4 _* o
3、使能完输出,就要配置PWM输出了
0 A! }1 D5 ^* f$ _: V3 R* I/ L①TIMx_CCMR1寄存器的OC1M[2:0]位,设置输出模式控制器4 n0 [4 W4 M2 q; O- |$ ?! A

8 q. F  t7 R6 i5 s+ @; ]110:PWM模式1,111:PWM模式2。
3 b$ d$ g# V9 R2 K& o* n* F2 A
$ E1 H5 p2 g9 y②计数器值TIMx_CNT与通道1捕获比较寄存器CCR1进行比较,通过比较结果输出有效电平和无效电平。
- a/ d# K2 O8 p  {; Q
% t9 ?0 M9 F9 O* W5 j; N( |4 {: L/ uOC1REF=0 无效电平,OC1REF=1无效电平。! W8 U+ x: \" S/ a, T
4 A7 ^2 ^+ _. L! h/ D' _
③通过输出模式控制器产生的信号。TIMx_CCER寄存器的CC1P位,设置输入/捕获通道1输出极性。2 K- w2 H" \. a1 G- O; B
: s* y  w. G& g* ]
0:高电平有效,1:低电平有效。
, ~- R2 Q$ Z7 n3 e4 o9 @
- C0 r. N: y. `' a④TIMx_CCER:CC1E位控制输出使能电路,信号由此输出到对应引脚。
9 Q! x1 M! Q" `4 s$ |9 R  J1 Q, a7 [' ?  K8 J7 R. ~) q) W
0:关闭,1:打开。
: a4 u+ ?8 U1 S  \# x
' ?$ r  m+ H1 q5 [( K首先对PWM模式1和PWM模式2进行介绍:- ^  U: r3 ^, w% t
9 k, y' `" g  q/ r
模式16 W9 |% S! N( H+ A% A7 V6 g5 m" D
; s  n: g8 ^* f6 x3 i$ e
在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向上计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。
! T3 x( g4 w( e
* M. Y6 U8 _0 h; T& t4 v模式2
) F4 k7 E5 D# R
8 R# c: y- B; U在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。. {9 F" ]2 [& m% k+ R+ c# i9 P/ H
7 ^8 q7 ]0 w% {' a3 H$ Z) z
TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。% |  |5 I6 k0 |% o( V- b$ `
, X) {' @- q" t; Q2 m2 I! j2 E
PWM输出高低电平由TIMx_CCMR1:OC1M位和TIMx_CCER:CC1P位共同决定。% k) {' q" N* Y
6 f) B* E; Z0 r1 P
总结下来:
& h! ]0 m! p0 i* i& q$ ~
9 y& ]( u( R; H模式1:
. m) j' i2 X. I8 v0 N2 S; ^, e, ^0 c7 n# `
CNT<CCR为有效电平//(OC1REF =1)* w+ |8 a3 F" ^; _& w" O1 ?/ h
; e" J+ q2 i0 N2 R* d
CNT>CCR为无效电平//(OC1REF =0)
- ?4 y; j5 K# c( D( B" F- `/ s1 o4 d. [* }0 L
模式2:* ~$ R' j$ a$ \8 @3 g3 I8 M

, K+ L) k. o" G  W7 L# c6 o1 uCNT<CCR为无效电平//(OC1REF =0)
& `% A2 P9 o) w# a  |& }" ]: l; D3 c3 K2 l! {
CNT>CCR为有效电平//(OC1REF =1)
! o% [( `, G2 Y7 z
% I3 [2 D0 I) k$ r. C2 h( [CC1P:& w0 ?# O; x, C7 J
& z) v+ u; A* Z1 F. c
0:高电平有效
3 a! E" H5 V( v# b2 Q
; z) u0 g" w: D4 I, X, E1:低电平有效
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-16 06:42 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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