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,并且当第一个计数器大于第二个计数时候,第二个计数器开始累加。一大堆文字有些抽象,直接上图:

具体的程序实现,请见下回。
相关文章:
PWM再理解(1)
前言 昨天过于劳累,十点睡觉,本来想梳理一下PWM,今天补上。 PWM内涵 PWM全称:Pulse Width Modulation,也就是脉宽调制的意思,字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行…...
CSPVD 智慧工地安全帽安全背心检测开发包
CSPVD SDK适用于为各种智慧工地应用增加安全防护穿戴合规的检测能力,能够有效检测未戴安全帽和未穿 安全背心的人员,提供Web API和原生API。官方下载:CSPVD工地安全防护检测 1、目录组织 CSPVD开发包的目录组织说明如下: xlpr_…...
给常用Docker命令起别名,提高效率
在日常的开发和运维工作中,Docker是一款非常常用的工具。为了提高工作效率,我们可以为一些常用的Docker命令设置别名,这样可以更快速地执行这些命令。以下是如何给常用Docker命令起别名的详细步骤。 修改/root/.bashrc文件 首先,…...
基于深度学习的草莓成熟度实时检测系统(UI界面+YOLOv8/v7/v6/v5模型+完整代码与数据集)
1. 引言 在农业领域,草莓的成熟度检测是保证果实品质的重要环节。传统的方法依赖于人工经验,不仅耗时费力,还容易出错。本文介绍如何使用YOLO(You Only Look Once)系列模型(YOLOv8/v7/v6/v5)构…...
【devops】ttyd 一个web版本的shell工具 | web版本shell工具 | web shell
一、什么是 TTYD ttyd是在web端一个简单的服务器命令行工具 类似我们在云厂商上直接ssh链接我们的服务器输入指令一样 二、安装ttyd 1、macOS Install with Homebrew: brew install ttydInstall with MacPorts: sudo port install ttyd 2、linux Binary version (recommend…...
Windows环境Apache配置解析PHP,以及配置虚拟主机详解
1. 安装 Apache 和 PHP 确保你已经安装了 Apache Web 服务器和 PHP。你可以从官方网站下载它们的 Windows 版本: Apache HTTP ServerPHP 2. 配置 Apache 配置 httpd.conf 文件 找到你的 Apache 安装目录下的 conf 文件夹中的 httpd.conf 文件,使用文…...
Redis高级篇—分布式缓存
目录 Redis持久化 RDB持久化 AOF持久化 RDB与AOF对比 Redis主从 全量同步 增量同步 Redis哨兵 RedisTemplate集成哨兵实现 Redis分片集群 散列插槽 集群伸缩 故障转移 自动故障转移 手动故障转移 RedisTemplate访问分片集群 Redis持久化 RDB持久化 RDB全称Re…...
c++端的类,作为组件在qml端使用
qml使用c端的类,作为组件在qml端使用 这个类必须继承QObject 这个类必须继承QObject #ifndef COLLISIONALARM_H #define COLLISIONALARM_H#include <QObject>class CollisionAlarm : public QObject {Q_OBJECT//这个宏就叫做反射机制,让qml端直接…...
Android 14 适配之 - 全屏 intent 通知
全屏 intent 通知 在 Android 11(API 级别 30)中,任何应用都可以在手机处于锁定状态时使用 Notification.Builder.setFullScreenIntent 发送全屏 intent。在 AndroidManifest 中声明 USE_FULL_SCREEN_INTENT 权限即可; 全屏 int…...
如何在 Vue 和 JavaScript 中截取视频任意帧图片
大家好!今天我们来聊聊如何在 Vue 和 JavaScript 中截取视频的任意一帧图片。这个功能在很多场景下都非常有用,比如视频编辑、视频预览等。本文将带你一步步实现这个功能,并且会提供详细的代码示例。 准备工作 首先,我们需要一个…...
代码随想录学习 day54 图论 Bellman_ford 队列优化算法(又名SPFA) 学习
Bellman_ford 队列优化算法(又名SPFA) 卡码网:94. 城市间货物运输 I 题目描述 某国为促进城市间经济交流,决定对货物运输提供补贴。共有 n 个编号为 1 到 n 的城市,通过道路网络连接,网络中的道路仅允许从…...
递归遍历树结构,前端传入一整颗树,后端处理这个树,包括生成树的id和pid等信息,
递归逻辑 递归遍历树结构,将树结构转换list集合 并添加到 flowStepTree 集合 // 递归遍历树结构,将树结构转换list集合 并添加到 flowStepTree 集合private static void settingTree(ProductFlowStepVO node, Long parentId, String ancestors, List<…...
Nginx详解(超级详细)
目录 Nginx简介 1. 为什么使用Nginx 2. 安装Nginx Nginx的核心功能 1. Nginx反向代理功能 2. Nginx的负载均衡 3 Nginx动静分离 Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协…...
postman使用旧版本报错version mismatch detected
卸载 postman又重装了别的版本,打开后遇到了这个报错,解决办法如下: 删除缓存文件 C:\Users\Administrator\AppData\Roaming\Postman 下载PostMan 提取码:6k51...
探索数据的隐藏维度:使用Scikit-Learn进行特征交互性预测
探索数据的隐藏维度:使用Scikit-Learn进行特征交互性预测 在机器学习中,特征交互性是指不同特征之间可能存在的复杂关系,这些关系对预测结果有着重要影响。Scikit-Learn(简称sklearn),作为Python中广受欢迎…...
首个WebAgent在线评测框架和流程数据管理平台来了,GPT-4、Qwen登顶闭源和开源榜首!
在当今科技迅速发展的时代,大型语言模型(Large Language Model,LLM)正以前所未有的速度改变着我们与数字世界的互动方式。基于LLM的智能代理(LLM Agent),从简单的信息搜索到复杂的网页操作&…...
UE TSharedPtr
文章目录 概述TSharedPtrTSharedPtr包含2部分 构造,析构,拷贝构造,移动构造构造拷贝构造移动构造 小结 概述 之前写过一篇c的智能指针的,这篇写下ue的。本质上来说是差不多的,可以简单看看。 TSharedPtr 如下图&…...
基于X86+FPGA+AI的远程医疗系统,支持12/13代 Intel Core处理器
工控主板:支持12/13代 Intel Core处理器,适用于远程医疗系统 顺应数字化、网络化、智能化发展趋势,国内医疗产业改革正在积极推进,远程医疗、智慧医疗等新模式新业态创新发展和应用,市场空间不断扩大,而基…...
微信小程序开发入门指南
文章目录 一、微信小程序简介二、微信小程序开发准备三、微信小程序开发框架四、微信小程序开发实例六、微信小程序开发进阶6.1 组件化开发6.2 API调用6.3 云开发 七、微信小程序开发注意事项7.1 遵守规范7.2 注意性能7.3 保护用户隐私 八、总结 大家好,今天将为大家…...
一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。
一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。 自带了5个多g的美图资源,让网站内容看起来非常大气丰富,可以快速投入运营。 这个代码包,原网站已经稳定运营多年࿰…...
从科幻到现实:波色量子18.4亿融资背后,量子计算在多领域应用大突破!
【导语:科幻电影《流浪地球2》中智能量子计算机“MOSS”令人印象深刻,如今量子计算已从实验室走向商业化。波色量子成立三年获11轮融资共18.4亿,其量子计算在多领域展现出巨大应用潜力。】波色量子:资本竞逐中的宠儿按照“十五五规…...
示波器平均值功能实战:从噪声中精准提取电机故障信号
1. 项目概述:用示波器诊断模型火车电机故障作为一名在电子工程领域摸爬滚打了十几年的老工程师,我手边最离不开的工具,除了万用表,就是示波器。很多人觉得示波器是研发实验室里的高端设备,离日常维修很远,但…...
5分钟快速上手:XUnity.AutoTranslator游戏翻译插件完整教程
5分钟快速上手:XUnity.AutoTranslator游戏翻译插件完整教程 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏的语言障碍而烦恼吗?XUnity.AutoTranslator是一款强大的…...
Neo-Launcher数据库架构:数据存储和管理的深度解析
Neo-Launcher数据库架构:数据存储和管理的深度解析 【免费下载链接】Neo-Launcher Neo-Launcher 项目地址: https://gitcode.com/gh_mirrors/ne/Neo-Launcher Neo-Launcher是一款由Neo Collective开发的开源启动器应用,其高效的数据存储和管理系统…...
GPU资源利用率深度解析与优化实践
1. GPU资源利用率的核心概念与测量方法在HPC(高性能计算)领域,GPU资源利用率是评估计算效率的黄金指标。不同于简单的"使用率"概念,真正的GPU利用率是一个多维度的综合指标,涉及计算核心、内存控制器、缓存体…...
从零粉丝到行业KOL,ChatGPT驱动的LinkedIn内容矩阵搭建全链路,含17个已验证Prompt模板+3类避坑清单
更多请点击: https://intelliparadigm.com 第一章:从零粉丝到行业KOL的底层认知跃迁 成为技术领域有影响力的声音,从来不是靠日更三篇“速成教程”,而是源于对价值创造逻辑的重构。当多数人还在纠结“选什么平台”“起什么昵称”…...
云原生监控一体化实践:从零部署mco实现指标、日志、追踪统一管理
1. 项目概述:一个面向现代容器化应用的开源监控解决方案最近在梳理团队的技术栈,发现随着微服务和Kubernetes的普及,传统的监控体系越来越力不从心。我们需要的不仅仅是对主机和进程的监控,更需要能深入理解容器、Pod、Service以及…...
多品牌技高速存储卡术拆解分析实测:如何同时满足企业级监控与创作两不误?
一、开篇:当监控连续记录与影视创作相遇——存储卡的双重使命在企业级安防监控与专业影像创作的交汇点上,存储卡不再仅仅是数据的载体,而是工作流中不可绕过的风险控制节点。安防监控要求724小时不间断写入,对持续写入稳定性和数据…...
利用Taotoken模型广场为不同AI应用场景挑选合适模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken模型广场为不同AI应用场景挑选合适模型 面对文本生成、代码审查、智能对话、翻译等多样化的AI应用场景,如…...
基于MCP协议与FFmpeg构建AI视频处理服务器:原理、部署与实战
1. 项目概述:一个面向视频处理的MCP服务器 最近在折腾一些AI应用,发现很多工具在处理视频内容时,总感觉差了那么一口气。要么是功能太单一,只能做简单的剪辑或转码;要么就是流程太复杂,需要把视频下载、处…...
