STM32--PWM原理机制

1.什么是PWM

脉冲宽度调制(PWM),是英文"Pulse Width Modulation"的缩写,简称脉宽调制,可以理解为控制脉冲的宽度,利用微处理器的数字输出来对模拟电路进行控制的一种有效技术。通过控制信号的脉冲宽度,实现对电压或电流的精确控制,这就用到了PWM等效输出模拟量。

2.PWM相关参数

pwm主要有三个参数:频率、占空比、分辨率

(1)频率:是指1秒内信号从高电平到低电平在到高电平的次数(一个周期),也就是一秒中有多少个PWM周期。

(2)占空比:是一个脉冲周期内,高电平占整个周期的时间比例。占空比决定了PWM等效出来的模拟电压的大小,占空比越大,模拟电压越趋近于高电平。

(3)分辨率:就是占空比变化的快慢,占空比变化的细腻程度。占空比跳的快如按照1%跳变与按照0.1%跳变,那么0.1%的跳变就越细腻,越柔和。

3.PWM的基本工作原理

在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域。

那么什么是惯性系统呢?如LED在熄灭的时候,由于余晖和人眼视觉暂留的现象,LED不会立马熄灭,而是有一定的惯性,过了一小段时间才熄灭的。具有惯性的系统才能使用PWM。

4.定时器是怎么输出PWM波形的?

PWM生成:

(1)CNT计数器和CCR捕获比较寄存器,进行比较,如果如果CNT大于或者等于CCR,就会给输出模式控制器传一个信号;

(2)输出模式控制器就会改变它输出OC1REF的高低电平,REF信号实际上就是信号的高低电平(REF:reference,参考信号);

(3)CC1P:极性选择寄存器,给0,信号就会走对应的0那一路,信号不变;给1,信号会经过一个非门,极性翻转;

(4)信号从OC1输出。

5.stm32输出模式控制器可以配置输出8种模式,通过寄存器配置

6.PWM实现流程

注:黄色线:计算器溢出频率(ARR),也是PWM更新频率;

红色线:捕获比较寄存器CCR的值;

蓝色线:计数器CNT的值。

7.PWM的基本结构框图

时基单元在定时器篇张有介绍,这里主要介绍输出比较单元。定时器不断更新计数值,并且不断与捕获比较寄存器的值进行比较,当计数器的值大于等于捕获比较寄存器的值时,电平就会从高电平跳到低电平,当计数器的值小于捕获比较寄存器时,电平就会从低电平跳到高电平。

8.PWM参数计算公式

PWM频率: Freq = CK_PSC / (PSC + 1) / (ARR + 1)

PWM占空比: Duty = CCR / (ARR + 1)

PWM分辨率: Reso = 1 / (ARR + 1)

Reso定义的分辨率是占空比最小的变化步距

注:

ARR:Automatic Reload Register,自动重装寄存器。计数到该值时,会重新计数,也就是重装的意思。

CCR:Catch Compare Register,捕获比较寄存器,CC捕获/比较意思,R是Register,寄存器的意思。两个共用,输入捕获寄存器。输出比较寄存器,比较CNT与CCR的值,CNT计数自增,CCR自己给定。当CNT大于CCR(小于或者等于)时,置1置0,然后输出应该电平不断跳变的PWM波形。

相关推荐
全球通史2 小时前
[特殊字符] RISC-V实战:从0到100+FPS!进迭时空(Spacemit)开发板YOLOv8部署终极指南
嵌入式硬件·yolo·risc-v
brave and determined6 小时前
可编程逻辑器件学习(day22):“让ARM穿上FPGA的马甲“:赛灵思Zynq的命名哲学与技术革命
arm开发·嵌入式硬件·fpga开发·zynq·fpga设计·嵌入式设计·fpga开发流程
余生皆假期-8 小时前
SPWM 与 SVPWM 电压利用率简谈
单片机·嵌入式
许商8 小时前
【stm32】【CDC】详解
stm32·单片机·嵌入式硬件
漂洋过海的鱼儿8 小时前
“中断方式”来读取串口
单片机·嵌入式硬件
小龙报9 小时前
《嵌入式成长系列之51单片机 --- 固件烧录》
c语言·开发语言·单片机·嵌入式硬件·51单片机·创业创新·学习方法
一只肥瘫瘫10 小时前
基于MATLAB的滑膜观测器仿真搭建
单片机·嵌入式硬件·matlab
神秘的土鸡10 小时前
【CS创世SD NAND征文】为无人机打造可靠数据仓:工业级存储芯片CSNP32GCR01-AOW在飞控系统中的应用实践
嵌入式硬件·游戏引擎·无人机·cocos2d·雷龙
LabVIEW开发16 小时前
LabVIEW+Arduino实现温度自适应直流电机控制
单片机·labview知识·labview功能·labview程序