脉宽调制(PWM)开关驱动

news2025/1/15 3:15:30

脉宽调制(PWM)开关驱动

对于某些依赖于输入的有效驱动电压来控制执行效果的执行器,广泛地使用PWM开关驱动。PWM(Pulse Width Modulation)是脉宽调制的英文缩写。它使用一个固定幅值且频率保持一定的脉冲输出,通过调节脉宽的方式调节高电位时段在整个时间区段中的比例(称为占空比),使输出电压的有效值得到改变。这种驱动控制在硬件实现上非常简单,最适于数字电路的输出驱动。实际应用这种驱动方式时,必须注意选取的工作频率应与被驱动元件的惯性大小相适应。基本的原则是:惯性较小的元件,应选取较高的工作频率。工作频率如果足够高,被驱动元件由于运动惯性,全完无法跟随电流瞬间改变而运动,只能按电流有效值表达出的平均驱动力而运动。

pwm的频率:

是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);也就是说一秒钟PWM有多少个周期

单位:Hz

表示方式:50Hz 100Hz

pwm的周期:

T=1/f

周期=1/频率

50Hz = 20ms 一个周期

如果频率为50Hz ,也就是说一个周期是20ms 那么一秒钟就有 50次PWM周期

占空比:是一个脉冲周期内,高电平的时间与整个周期时间的比例

单位:% (0%-100%)

表示方式:20%

在这里插入图片描述

参考学习链接:pwm一个时间单位_详解PWM原理、频率与占空比

在这里插入图片描述

PWM模块结构组成和特点

MC9S12DG128单片机内置的PWM模块框图如下图所示:

在这里插入图片描述

MC9S12DG128的PWM模块具有8路8位独立PWM通道,通过相应设置也可以变为4个16位PWM通道,每个PWM通道由独立运行的8位脉冲计数器PWMCNT、两个比较寄存器PWMPER和PWMDTY等组成。通过对各寄存器的参数设置,确定PWM波形的输出周期和占空比,另外还可以通过极性寄存器PWMPOL和对齐方式选择寄存器PWMCAE设置PWM波形输入的极性和对齐方式。

PWM模块具有以下基本特征:
1.具有可编程周期和占空比的8个独立PWM通道;
2.每个PWM通道具有独立的计数器;
3.每个通道可编程允许/禁止PWM功能;
4.每个通道可软件选择PWM脉冲极性;
5.具有双缓冲的周期和占空比寄存器,当到达有效周期终点(PWM到达0)或通道禁止时,修改值生效;
6.每个通道可编程中心对齐或左对齐输出;
7.8个8位通道或4个16位通道PWM分辨率;
8.4个时钟源(A、B、SA和SB)提供宽频带频率;
9.可编程的时钟选择逻辑;
10.紧急关闭;

PWM模块寄存器及设置

MC9S12DG128的PWM模块共有37个寄存器。

PWM允许寄存器

PWM允许寄存器(PWM Enable Register,PWME)中的每个控制位对应相应的PWM通道,可以通过设置相应的控制位启动或者停止PWM信号输出。当任意一个PWMEx位被置位(PWMEx=1)时,相应的PWM信号产生输出。但是,由于PWMEx需要与时钟源同步,直到PWM模块时钟的下一个周期到来,才能输出正确的PWM波形。

当处于级联模式时,8个8位PWM通道通过两两级联构成4个16位的PWM通道,此时PWME1、PWME3、PWME5和PWME7对应控制4个16位PWM通道,而其他控制位无效。

在这里插入图片描述

PWM极性寄存器

每个PWM通道波形开始的极性由PWMPOL寄存器中的相应PPOLx位决定,如果极性选择位是1,周期开始时PWM通道输出高电平,当通道计数器数值等于占空比计数值时翻转为低电平;相反,如果极性选择位是0,周期开始时PWM通道输出低电平,当通道计数器数值等于占空比计数值时翻转为高电平,PWM极性寄存器(PWM Polarity Register,PWMPOL)如图所示。

在这里插入图片描述

读:任何时刻;写:任何时刻。
注意:PPOLx寄存器的位可以在任何时刻写入。如果正在产生PWM信号时改变极性,在转换过程中可能截短或延长输出脉冲。
PPOLx:PWM通道x输出波形极性。

  1. 1=PWM通道x在周期开始时输出高电平,当到达占空比计数值时翻转为低电平;
  2. 0=PWM通道x在周期开始时输出低电平,当到达占空比计数值时翻转为高电平;

PWM时钟选择寄存器

每一个PWM通道可以选择两个时钟作为该通道的时钟源。PWM时钟选择寄存器(PWM Clock Select Register,PWMCLK)如图所示。

在这里插入图片描述

读:任何时刻;写:任何时刻。
注意:PCLKx寄存器的位可以在任何时刻写入。如果正在产生PWM信号时改变极性,在转换过程中可能截短或延长输出脉冲。

PCLK7、PCLK6、PCLK3、PCLK2:PWM通道7、6、3、2时钟选择位。

  1. 1表示Clock SB作为相应通道时钟源;
  2. 0表示Clock B作为相应通道时钟源。

PCLK5、PCLK4、PCLK1、PCLK0:PWM通道5、4、1、0时钟选择位。
3. 1表示Clock SA作为相应通道时钟源;
4. 0表示Clock A作为相应通道时钟源。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1127389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

# Eolink 1024 程序员节特别活动,邀您参与!

Eolink 已和 Linker 们一起走过了 7 年,又到 1024 程序员节, Eolink 为大家特别准备了节日福利! 🎉 福利活动一: 关注「Eolink」公众号,后台回复「1024」即可参与抽奖! 🎉 福利活动…

IDC发布生成式AI采用旅程报告:容联云助力银行引入生成式AI

近日,国际数据公司IDC发布了《从典型落地案例看生成式AI采用旅程,3Q23》报告,通过几个典型案例介绍用户采用生成式AI的考量、应用场景、落地路线、决策流程,为最终用户提供参考建议。 容联云基于自研赤兔大模型助力《XX银行服务营…

基于springboot实现CSGO赛事管理系统【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现CSGO赛事管理系统演示 摘要 CSGO赛事管理系统是针对CSGO赛事管理方面必不可少的一个部分。在CSGO赛事管理的整个过程中,CSGO赛事管理系统担负着最重要的角色。为满足如今日益复杂的管理需求,各类的管理系统也在不断改进。本课题所设计…

(九)QVTKOpenGLNativeWidget同时显示点云和模型

一、加载点云 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); //创建点云指针QString fileName QFileDialog::getOpenFileName(this, "Open PointCloud", ".", "Open PCD files(*.pcd)");if(f…

Oracle 中 group by 的使用需要注意的地方

1.业务场景 需要将2023年1-12月的数据全部查出&#xff0c;并以行的形式呈现。这里要用到行转列的思路&#xff0c;我采用的是简单的case when函数。 2.group by 的使用方法 WHERE xxx1xx AND xxx2yy group by (除聚合函数以外的所有字段)举个例子&#xff1a; select stud…

alpha shape 2D点集边缘线提取

Delaunay三角网 alpha shape 2D点集边缘线提取 Delaunay三角网 参考blog: Scipy 笔记 [Geometry] Alpha Shapes - 原理及我的实现Alpha Shape Widyaningrum E , Peters R Y , Lindenbergh R C . Building outline extraction from als point clouds using medial axis transfo…

MATLAB——一维离散小波的单层分解

%% 学习目标&#xff1a;一维离散小波的单层分解 %% clear all; close all; load noissin.mat; [cA,cD]dwt(noissin,sym4); %% cA是近似系数&#xff08;低频部分&#xff09;&#xff0c;cD是细节系数&#xff08;高频部分&#xff09;&#xff0c;采用的小波是sym4 f…

2023.10.22 关于 定时器(Timer) 详解

目录 引言 标准库定时器使用 自己实现定时器的代码 模拟实现的两大方面 核心思路 重点理解 自己实现的定时器代码最终代码版本 引言 定时器用于在 预定的时间间隔之后 执行特定的任务或操作 实例理解&#xff1a; 在服务器开发中&#xff0c;客户端向服务器发送请求&#…

Banana Pi BPI-W3(Armsom W3)RK3588开当板之调试UART

前言 本文主要讲解如何关于RK3588开发板UART的使用和调试方法&#xff0c;包括UART作为普通串口和控制台两种不同使用场景 一. 功能特点 Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准&#xff0c;完整模块支持以下功能&#xff1a; 支…

【T+】畅捷通T+增加会计科目提示执行超时已过期。

【问题描述】 在畅捷通T软件中&#xff0c; 增加会计科目的时候提示&#xff1a; 通过DataTable插入ext扩展表出错:执行超时已过期。 完成操作之前已超时或服务器未响应。 操作已被用户取消。 语句已终止。 【解决方法】 【方法一】 注销用户登录&#xff0c;回到软件登录界面…

linux入门---多线程的理解

目录标题 线程的认识线程的管理进程和线程的区别为什么要有多线程线程的特性多线程的创建和证明线程特性的补充线程的优点线程的缺点线程的健壮性问题clone函数 线程的认识 在之前的学习中我们知道当一个程序加载进物理内存的时候操作系统会为该程序创建对应的PCB&#xff0c;…

11 Fork/Join

1 分治思想 分治思想&#xff1a;规模为N的问题分解为K个规模的子问题&#xff0c;子问题相互独立且与原问题性质相同&#xff0c;求出子问题的解&#xff0c;就能得到原问题的解 分治思想的步骤&#xff1a; 分解 求解 合并 2 Fork/Join 2.1 介绍 并行计算框架&#xff0c;用…

ROCESS SPID 代表什么进程

ROCESS 发出sql命令 所在主机的进程 可以不在数据库主机上发出 SPID 对应数据库的服务进程id select a.PROCESS,b.SPID From v$session a , v$process b where a.PADDRb.ADDR and a.USERNAMESYS SQL> !ps -ef|grep sqlplus oracle 385 2792 0 21:01 pts/…

继电器测试的方法和步骤有哪些?

继电器测试是一种常见的电气测试方法&#xff0c;用于检测继电器的工作状态和性能&#xff0c;下面是继电器测试的一般方法和步骤&#xff1a; 准备工作&#xff1a;确认测试设备的准备情况&#xff0c;包括测试仪器、电源、继电器和连接线等。确认继电器的工作原理和参数&…

IDEA: 个人主题及字体搭配推荐

文章目录 1. 字体设置推荐2. 主题推荐3. Rainbow Brackets(彩虹括号)4. 设置背景图片 下面是我的 IDEA 主题和字体&#xff0c;它们的搭配效果如下&#xff1a; 1. 字体设置推荐 在使用 IntelliJ IDEA 进行编码和开发时&#xff0c;一个合适的字体设置可以提高你的工作效率和舒…

Spring 最全Bean的加载和获取方式整理

目录 一、 前言二、Bean加载的九种方式1. XML配置方式2. XML注解配置方式3. 注解方式4. 使用Bean方式5. 使用Import方式6. 容器初始化完毕后注入bean7. 实现ImportSelector接口8. 实现ImportBeanDefinitionRegistrar接口9. 实现BeanDefinitionRegistryPostProcessor接口 三、Be…

Verilog功能模块——读写位宽不同的异步FIFO

前言 前面的博文已经讲了异步FIFO和同步FIFO&#xff0c;但并没有实现FIFO的读写位宽转换功能&#xff0c;此功能是FIFO的主要功能之一&#xff0c;应用十分广泛&#xff0c;因此&#xff0c;在前面两个模块的基础上&#xff0c;本文使用纯Verilog实现了读写位宽不同的FIFO&…

Plex踩坑——plex web无法找到媒体服务器

现象&#xff1a;之前安装过plex server&#xff0c;然后卸载了。再次重装后&#xff0c;plex web无法找到媒体服务器。 原因&#xff1a;卸载plex server时需要手动将plex的注册表删除&#xff1a;HKEY_CURRENT_USER\Software\Plex, Inc. 原文链接Uninstall Plex Media Serve…

又是一年1024,你还在做程序猿嘛

每年的10月24日&#xff0c;对于广大程序员来说&#xff0c;都有着特殊的意义。这一天是程序员节&#xff0c;一个属于这个独特群体的庆祝活动。在这个特别的日子里&#xff0c;我们不禁要问&#xff1a;又是一年1024&#xff0c;你还在做程序猿嘛&#xff1f; 程序员&#xff…