当前位置: 首页 > news >正文

PWM再理解(1)

前言

昨天过于劳累,十点睡觉,本来想梳理一下PWM,今天补上。

PWM内涵

PWM全称:Pulse Width Modulation,也就是脉宽调制的意思,字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行控制,将连续信号转化为脉冲信号,进一步通过调节脉冲的宽度表达原始信号的信息。
组成:固定频率的高电平脉冲和一个可变宽度的低电平脉冲
占空比:高电平时间占整个周期时间的比例。
这里有一个面积等效定理
对于使用脉冲信号来表达模拟电压这个过程,有一个面积等效原理,下面是一个简单的例子:
假设PWM信号高电平为5V,而低电平为0V,周期为1s,占空比为50%。那么在1s时间内输出的模拟电压等于:5V*0.5s/1s=2.5V,其实就是将5V下面的面积平均到整个周期1s内,就得到了2.5V的模拟电压。理论上调节这个占空比参数可以输出任意的0-5V之间的电压,这其实也就是PWM最核心的工作原理。
经常用到得到场合有电机调速,舵机控制,开关电源控制,灯光亮度调节等。
尤其在开关电源的应用场合,最后所用到的功率FET的导通时间与总开关时间的比值其实就是所用到的PWM波的占空比。

如何用FPGA生成PWM波实例:

手上正好有一个FPGA的板子,用FPGA来生成一个PWM波与使用一些常见的开发板还有点不太一样,例如arduino,STM32等。这里先介绍一下使用FPGA生成这种波形的核心原理:

  • 原理部分
    首先还是从PWM生成的过程出发,主要就是用一个可以改变的信号值同一个锯齿波进行比较,也就是经常听到的载波和调制波。当调制波大于载波时,输出高电平;反之输出低电平。但是在FPGA中要实现这种功能就需要用到其特有的计数器编程方式。也就是在一个周期内,以上面提到的锯齿波为例,设置一定的位宽,让这个计数器从0开始计数,同时比较值信号也设置一个相同位宽的计数器,且初始值为0,当锯齿波计数器计数到最大值时候,这个参考计数器同时开始计数为1,并且当第一个计数器大于第二个计数时候,第二个计数器开始累加。一大堆文字有些抽象,直接上图:
    在这里插入图片描述
    具体的程序实现,请见下回。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Node.js】初识 Node.js
  • CentOS 8中 更新或下载时报错:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist
  • 彻底解决idea的编解码问题
  • c# .net core中间件,生命周期
  • 物联网实训室的核心功能有哪些?
  • WebPack5.0 快速入门
  • 什么是diff算法?
  • C++20中的constinit说明符
  • 【数据结构】二叉树———Lesson2
  • 十七、【文本编辑器(三)】图像坐标变换
  • 低代码中间件学习体验分享:业务系统的创新引擎
  • 从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望
  • 云监控(华为) | 实训学习day2(10)
  • Eclipse 内容辅助
  • 微信小程序学习之旅
  • 【译】JS基础算法脚本:字符串结尾
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【面试系列】之二:关于js原型
  • Android 架构优化~MVP 架构改造
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • gops —— Go 程序诊断分析工具
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js中forEach回调同异步问题
  • php ci框架整合银盛支付
  • Python socket服务器端、客户端传送信息
  • tweak 支持第三方库
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • windows-nginx-https-本地配置
  • 安装python包到指定虚拟环境
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 力扣(LeetCode)21
  • 聊聊hikari连接池的leakDetectionThreshold
  • 入门到放弃node系列之Hello Word篇
  • 用Canvas画一棵二叉树
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​iOS实时查看App运行日志
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # 达梦数据库知识点
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #Lua:Lua调用C++生成的DLL库
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)计算机毕业设计大学生兼职系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)Honghu Cloud云架构一定时调度平台
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (一) 初入MySQL 【认识和部署】
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转) ns2/nam与nam实现相关的文件
  • (转)Sql Server 保留几位小数的两种做法
  • (转)菜鸟学数据库(三)——存储过程
  • (自适应手机端)行业协会机构网站模板
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .L0CK3D来袭:如何保护您的数据免受致命攻击