双 μC 的 PWM 频率和分辨率

news2024/12/29 10:24:17

该方法是过滤 PWM 信号的 HF 分量,只留下与占空比成正比的 LF 或 DC 分量。然而,低通滤波器并不能完全滤除PWM频率,因此LF/DC信号一般会有一些纹波。

有两种方法可以降低 PWM DAC 的纹波。可以降低低通滤波器的截止频率,或者提高PWM信号的频率。不可避免地,较低的截止频率转化为较慢的上升时间,而更快的 PWM 频率转化为较低的分辨率(通过在给定时钟频率下减小计数器大小来实现)。

我将讨论一个有趣的设计理念,它专注于在不使用上述方法的情况下降低 PWM DAC 的纹波。

事实证明,我们可以通过使用两个相位差为 180° 的 PWM 信号来降低纹波。直观上,当两个相同频率的正弦信号之间存在 180° 相位差时,它们会相互抵消,所以我们期望当我们使用两个具有 180° 相位差的 PWM 信号时,谐波会相互抵消,对吗?嗯,这是真的,但不是 PWM 信号的所有谐波。其中一些被取消,但其中一些 不。它与傅里叶级数有关,对于这篇文章来说有点太复杂了,所以我不会深入讨论数学。

如何实现两个 PWM 信号之间的 180° 相移?为了实施相移,您将需要两个定时器。其中一个定时器必须有两个比较捕获 PWM (CCP) 模块,另一个只需要一个 CCP。

您可以使用其中一个 CCP 在具有两个 CCP 的定时器中设置 PWM 频率和占空比,并使用另一个 CCP 生成中断以启动另一个定时器,延迟等于 PWM 周期的一半。另一个定时器中的单个 CCP 用于设置相同的 PWM 频率和占空比。您还必须“微调”延迟,因为软件将在 PWM 信号之间引入额外的时间。例如,在我的代码的第 102 行,我将比较寄存器值从 (timer_period+1)/2 更改为 (timer_period+1)/2-27。

我做了一些研究,看看其他微控制器是否有类似的硬件以及实现我使用的方法的能力:许多 Atmel 微控制器有多个定时器,通常每个都有两个 CCP。

图 1 单和双 PWM 电路

在 相移 DAC 的V out 处,两个 PWM 信号相加在一起,希望一些谐波相互抵消,因此我们终得到较低的纹波。

让我们看一下使用不同电阻值的三种情况。每个 PWM 信号在 25% 的占空比下都是 100 kHz。

图 2 上面的迹线是传统的 PWM。下方是双相移 PWM。伏特/格 从左到右递减:100mV、50mV、5mV。

通过查看结果,我们观察到两件事。首先,峰峰值纹波降低。其次,传统 PWM DAC 的纹波基频等于 PWM 信号的频率 (100 kHz)。相移 PWM DAC 的纹波基频等于 PWM 信号的二次谐波 (200 kHz),这意味着我们成功地使用相移 DAC 消除了 PWM 信号的谐波。

这种方法的一个优点是在不增加上升时间的情况下降低纹波(或在上升时间的一半时保持相同的纹波)。

另一个潜在的优势是通过将两个 PWM 分开一个计数以获得中间值,从而使 DAC 的有效分辨率加倍。这确实会导致轻微的不对称和纹波增加,但影响可以忽略不计。

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

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

相关文章

javaScript(八) 对象

}, “arm”:{ //属性名 configurable:true, //允许删除,允许使用defineProperty()修改属性描述符 enumerable:true, //允许被搜索到 set:function (value) { //给这个属性设置一个函数,注意,调用对象的函数的方法是xm.xarm(),…

MacOS - ToDesk 无法远程操控鼠标键盘解决方案

问题描述 远程后发现画面显示正常,但是键盘和鼠标的操作没有响应。 原因分析 可能是辅助功能没有勾选ToDesk_Session的权限。 解决方案 系统设置 - 隐私与安全性 - 辅助功能 进去后找到 ToDesk,开关打开,输入系统密码,重启 App …

从0构建一个录制UI测试工具

很多UI自动化测试工具都具备录制UI自动化测试的能力,例如playwright,可以通过playwright vscode插件完成录制,如下图所示,当选择录制脚本时,会打开一个浏览器,在浏览器中输入被测应用url,用户在…

vscode用vue框架1写一个登陆页面

目录 一、创建登录页面 二、构建好登陆页面的路由 三、编写登录页代码 1.添加基础结构 2.给登录页添加背景 3.解决填充不满问题 4.我们把背景的红颜色替换成背景图: 5.在页面中央添加一个卡片来显示登录页面 6.设置中间卡片页面的左侧 7.设置右侧的样式及…

CPU1511作为CPU1513的智能IO设备

一、把一个IO控制器作为另一个IO控制器的IO设备来使用 1、在智能设备通信里定义好传输区后,导出GSD文件 2、在另一个项目程序内添加GSD文件 3、当作PLC的IO设备组态,并连接至PLC_1 4、在右侧更改I区、Q区地址与名称 5、硬件编译并下载,此…

天翼云服务器80、443等特殊端口无法访问原因记录

之前阿里云、腾讯云的服务器上,想要用域名访问项目简单配置就好了,这次甲方直接买的翼云的服务器,配置了半天,防火墙端口80、443端口开放了,控制台安全组也添加了,就是不能用域名或IP直接访问,配…

深入解析与解决高并发下的线程池死锁问题

问题背景 在现代互联网应用中,高并发场景是常态,为了高效处理大量用户请求,后端服务通常会采用线程池来管理线程资源。然而,在一个复杂的微服务架构项目中,我们遇到了一个棘手的问题:在业务高峰期&#xf…

解锁分布式云多集群统一监控的云上最佳实践

作者:在峰 引言 在当今数字化转型加速的时代,随着混合云、多云多集群环境等技术被众多企业广泛应用,分布式云架构已成为众多企业和组织推动业务创新、实现弹性扩展的首选,分布式云容器平台 ACK One(Distributed Clou…

ONLYOFFICE 文档 8.1 现已发布:功能全面的 PDF 编辑器、幻灯片版式、优化电子表格的协作等等

🔥 个人主页:空白诗 文章目录 一、引言二、ONLYOFFICE简介1. 文档编辑器2. 电子表格编辑器3. 演示文稿编辑器4. 项目管理5. 邮件和日历6. 客户关系管理(CRM)7. 安全性和权限管理8. 多平台和第三方集成 三、安装1. Windows/Mac 安装…

斯坦福大学 AI 研究部门推出的“7 周人工智能学习计划”

①AI Python 基础,包括计算机原理、语法、判断语句等; ②AI Python 进阶,涉及 Linux 命令、多任务编程等; ③机器学习,涵盖算法、数据结构等; ④计算机视觉与图像处理,包含图像分类、目标检测…

每日鲜语携手中国国家高尔夫球队队员殷若宁征战巴黎,打响中国高端鲜奶品牌“鲜”声量

近日,高端鲜奶品牌每日鲜语宣布携手蒙牛品牌代言人、中国国家高尔夫球队队员殷若宁,共赴巴黎奥运赛场,为梦想挥杆而上。邀请众多消费者开启高品质、健康的生活方式。此举不仅彰显了每日鲜语作为高端鲜奶新标杆的品牌定位,也同时延…

COMSOL Multiphysics物理模拟软件 下载安装,COMSOL Multiphysics 卓越的模拟性能

COMSOL Multiphysics,它不仅具备卓越的模拟性能,还以其创新的多物理场耦合分析能力,为各类复杂问题提供了前所未有的解决方案。 这款软件的出现,犹如为科研工作者和工程师们插上了一双智慧的翅膀,使他们能够在物理世界…

RubyMine 2024 mac/win版:智慧编程,从心出发

JetBrains RubyMine 2024 是一款专为Ruby和Rails开发者打造的高效集成开发环境(IDE)。它凭借其卓越的性能和丰富的功能,帮助开发者在Ruby和Rails的开发过程中提升效率,减少错误。 RubyMine 2024 mac/win版获取 RubyMine 2024 提供了强大的代码编辑功能&…

VR加密方案常见问题有哪些?

在数字化时代,随着虚拟现实(VR)技术的迅速发展与普及,VR视频内容的安全传输成为关注焦点。为保护版权及敏感信息免遭非法复制或篡改,VR视频加密技术显得尤为重要。 首先,高效的加密算法对确保数据安全性至关…

60.Python-web框架-Django手动删除了一个数据库表,migrate问题

目录 1.问题产生 2.解决方法: 1.问题产生 今天手欠,删了一个数据库表,然后迁移不进来了。 当你在Django项目中手动删除了数据库模型(models)的表后,想要Django通过makemigrations命令重新创建或识别这些更…

第四届机械设计与智能制造国际会议(MDSM2024)

第四届机械设计与智能制造国际会议(MDSM2024) 4th International Conference on Mechanical Design and Smart Manufacturing 会议日期:2024年8月23-25日 会议地点:中国-武汉 会议官网:https://www.iaast.cn/meet/home/Bx118v7D 【支持单位】…

Java版商城:Spring Cloud+SpringBoot b2b2c实现多商家入驻、直播带货及免费小程序商城搭建

用技术: Spring CloudSpring BootMybatis微服务服务监控可视化运营 B2B2C平台: 平台管理端(包含自营) 商家平台端(多商户入驻) PC买家端、手机wap/公众号买家端 微服务(30个通用微服务如:商品、订单、购物车、个人中心、支付…

C语言结构体包含结构体

C语言结构体可以包含另一个结构体; 下面通过一个例子看一下; struct Date {int day;int month;int year; };struct Person {char *name;struct Date birthday; }; ...... void CTestView::OnDraw(CDC* pDC) {CTestDoc* pDoc GetDocument();ASSERT_VAL…

.NET也能玩量化【2】搭建本地财经数据获取服务,以及获取复权历史大A数据演示...

直接动手,不写前言了。 创建.NET 8的一个webapi项目备用 本地安装python库 aktools 输安装完毕以后,输入 python -m aktools 即可启动有关服务 启动以后,主页地址:http://127.0.0.1:8080/ 查看swwager的api文档说明。我们主要使用…

Unity面试题 UGUI调整UI与粒子特效的显示层级

首先,必须保证Canvas画布的渲染模式为了相机渲染 方法:一:将需要控制UI显示层级的Image换成Sprite 1.创建一个粒子系统,和两张Sprite. 2.设置Sprite1的Order in Layer为 -1,设置Sprite2的Order in Layer为 1,粒子的Ord…