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

STM32 PWM输出

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本文将介绍通过STM32的定时器输出PWM,关于定时器的基础功能不再详解。& N, L2 r6 ?& q2 V

该用户从未签到

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

该用户从未签到

3#
发表于 2021-8-10 14:26 | 只看该作者
02、STM32的管脚复用
0 i2 Q' ^' l- {& A# bSTM32没有专门的PWM引脚,所以使用IO口的复用模式。首先确认PWM功能的输出管脚,使用定时器9。从下面的框图中得知,timer9只有两个输出通道,所以timer9只能输出两路PWM。在STM32F207数据手册中的Alternatefunction mapping图片中,timer9的两个通道分别可以复用为PA2,PA3,PE5和PE6。, z; L1 [8 T  v/ y

- u' H# S& d. z" @4 v

该用户从未签到

4#
发表于 2021-8-10 15:05 | 只看该作者
03、STM32输出PWM原理本文将重点在②部分,捕获/对比通道讲解,其中STM32的PWM就是利用对比通道实现的。脉冲宽度调制模式可以生成一个信号,该信号频率由TIMx_ARR 寄存器值决定,其占空比则由TIMx_CCRx 寄存器值决定。
8 s0 {: n- _- _4 Y; U: Z* f& R/ s0 e- U, T; h
从下图可以看出,当CCR寄存器和CNT计数器数值一样时,会产生动作(改变通道对应的GPIO电平)。由于CNT溢出时,重载值由TIMx_ARR寄存器值决定的。所以说TIMx_ARR寄存器值决定周期,而TIMx_CCRx寄存器值决定CNT溢出时,经过多久会产生动作(改变通道对应的GPIO电平),也就是决定了占空比。以向上计数为例,重载值为ARR,比较值为CRRx
7 x" ^3 l; U5 H5 T; pSTM32输出PWM的过程:
' k3 w+ b3 {6 K2 t% d. o+ v) |
# m$ v: k5 |5 Z9 a7 A0 d* {1、首先配置GPIO,配置定时器,具体参考一下代码。定时器配置参考《STM32基础定时器详解》。3 @7 {/ W) E# k! S3 ?) `

- B9 l6 O6 r" [1 ]* |4 J' D' a% ]2、捕获/比较通道使能比较通道
8 a. d3 |! c# V" }+ x+ @+ ~3、使能完输出,就要配置PWM输出了
, d7 I( }' _/ ?: n: s" y①TIMx_CCMR1寄存器的OC1M[2:0]位,设置输出模式控制器  O+ a; {: _, P7 X! b
/ v' U/ Y. c( s
110:PWM模式1,111:PWM模式2。, Q' {2 p5 f0 G

+ i  M6 R1 R7 a% S0 u: J②计数器值TIMx_CNT与通道1捕获比较寄存器CCR1进行比较,通过比较结果输出有效电平和无效电平。
: i7 C+ S, T+ X# u7 L0 f7 i; H3 B
1 N6 o3 ]3 U' ZOC1REF=0 无效电平,OC1REF=1无效电平。: H$ N7 k2 J" e! t& J
) n! \8 @; s' k% M1 M: c
③通过输出模式控制器产生的信号。TIMx_CCER寄存器的CC1P位,设置输入/捕获通道1输出极性。/ b& z# S# m7 S9 l8 t% @

4 ^  g( i- r6 F- u& v# O' d8 {8 A0:高电平有效,1:低电平有效。+ A! I4 y0 d: p5 B" D$ O

! F% G1 _6 Y$ x8 X0 S, M; ?( }, E④TIMx_CCER:CC1E位控制输出使能电路,信号由此输出到对应引脚。3 Y3 Q) ^. }) R* I- I. ~7 X
. J' @! G! O9 `5 D# a& h
0:关闭,1:打开。
' R# i2 t" I* v! z! m7 T- O
$ L9 l# ]" Z1 `/ }; @0 _首先对PWM模式1和PWM模式2进行介绍:
9 m5 u0 i- I/ f5 d9 b
. x' ~% h6 p8 e9 n1 ~$ B# t2 C模式1; A9 q% ^6 R" {' I1 N( K) l
& s7 B1 Z/ _' F. h# V/ H
在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向上计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。5 W0 ?$ W0 r) `" L; A, B3 G0 n
! s- Z+ ?* Q) a) F, m  K* ^7 R5 ]
模式23 d/ D( o$ H  A
* ]* d$ S$ C" C2 w' X
在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。3 ]4 e/ b# Y7 A2 ^  A2 B

/ [4 V0 {3 }8 ]TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。
# y) u( ~8 I  _, {( G- N' I' h% l; _
PWM输出高低电平由TIMx_CCMR1:OC1M位和TIMx_CCER:CC1P位共同决定。
, Z* R2 E2 g8 Q/ a0 Y& `$ X7 Q! c& V
总结下来:% r: \$ s- ^. h( e# `4 X9 w

8 t4 Q7 |5 T% t, f" D模式1:
4 }' ~7 \9 x9 Q7 Z: |2 g1 s. R, d- |8 {
CNT<CCR为有效电平//(OC1REF =1)( o3 `& H- ?3 W. y0 _) h9 i

3 V. f' J& H9 B  ?4 M* T2 PCNT>CCR为无效电平//(OC1REF =0), y% z6 e) L, X3 E5 x( q9 ^
' {, J, W: W1 f2 I7 _* P: `
模式2:, c. r: d6 k9 X

" K" @- h8 ^' I; JCNT<CCR为无效电平//(OC1REF =0)9 n  }" E! {, [1 `/ k; s- J1 P( u" c
' T0 }$ F2 H9 X# P- U
CNT>CCR为有效电平//(OC1REF =1)% ~* `1 A0 e! H- ]$ B

2 L  \3 x1 o% b3 rCC1P:2 h6 Q) i+ H; E$ u! k. |2 w
4 F) F9 a6 t( i
0:高电平有效
1 Y& D# u, l. ?$ W7 X" l4 N# `+ c7 Q6 T! G
1:低电平有效
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 20:36 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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