0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于数字电路的实验脉冲宽度调制

电子森林 来源:哔哩哔哩 作者:硬禾学堂 2021-03-22 09:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们还是先从脉冲宽度调制的基础说起。脉冲宽度调制,英文缩写为:PWM(Pulse Width Modulation),是通过数字信号实现对模拟电路控制的一种非常有效的技术,常被广泛应用于测量、通信、功率控制与变换等众多领域。

那么PWM是如何工作的?

我们知道,数字电路只能产生高电平(1)或低电平(0),在小脚丫上也就意味着3.3V和0V。那么如果我们的应用恰好在这之间怎么办?比如,将3.3V直接连到LED上会导致LED灯很亮。如何将LED灯调暗呢?当然,最简单的办法就是直接串联一个限流电阻但这样一来,限流电阻就需要不断产生功耗,而这个功耗实际上是完全浪费掉的。

无非就是调节LED的亮度而已,难道就没有其他更好的办法了吗?当然有,用我们今天学习的PWM就可以轻松实现。在进一步探讨点亮LED之前,我们先通过图1了解一些基本的参数:

b2921ed2-888b-11eb-8b86-12bb97331649.png

图1

图1中,脉冲信号的周期为T,高电平宽度为t。如果我们将t/T定义为占空比,占空比就是2/3,因为高电平的宽度占了整个周期的2/3。在图1中我们还可以看到一条红色虚线,画在了脉冲高度2/3的位置。这条虚线实际上就对应着最终的有效值。那么如何在FPGA上生成PWM信号呢?

我们还是习惯看图说话,请看图2。假如我们有一个锯齿波,然后在锯齿波上设置一个阈值(黑色水平虚线),凡是大于该阈值时输出均为高电平,反之则为低电平,这样我们是不是就得到一个PWM信号呢?如果我们想调整它的占空比,那么调节阈值的高低就可以了。在本例中,阈值线越低占空比越高。

图2

如果把上面的描述再抽象化一下,就可以画出图3的模块框图。锯齿波实际上就可以用计数器生成,阈值就是一个数值而已,比较器是用来生成最后输出高低电平用的。

图3

有了设计思路之后,我们来看一下最终代码。

module pwm (PWM_out, clk, reset); input clk, reset; output reg PWM_out; wire [7:0] counter_out; //计数器的8位宽储存,可以最多数128次时钟的嘀嗒 parameter PWM_ontime = 32; //阈值设在32,对应25%的占空比 always @ (posedge clk) begin //比较器 if (PWM_ontime 》 counter_out) PWM_out 《= 0; else PWM_out 《= 1; end counter counter_inst( //调用计数器 .clk (clk), .counter_out (counter_out), .reset(reset) );endmodule

module counter(counter_out,clk,reset); //计数器模块代码 output [7:0] counter_out; input clk, reset; reg [7:0] counter_out; always @(posedge clk) if (reset) //如果没有按reset,则计数器清零 counter_out 《= 8‘b0; else //如果按下reset,则计数器开始计数 counter_out 《= counter_out + 1;endmodule

在代码中,我们设置的计数器位宽是8位,也就是每128次后自动重新计数。所以,该计数器的最大频率也就是12MHz/128=93.75KHz。图3中可以看出,PWM信号的频率和计数器的频率相同,因此也是93.78KHz。

试想一下,LED现在正以超过每秒9万次的速度闪烁,肉眼是完全分辨不出来的。那么闪烁过程中,亮/灭的比值越大,LED的视觉发光效果就越强,反之则越弱。我们最后将上述程序导入小脚丫中,并通过调节阈值来观察小脚丫上的LED发光强度的变化。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    6314

    浏览量

    139537
  • 数字电路
    +关注

    关注

    193

    文章

    1648

    浏览量

    83019
  • 测量
    +关注

    关注

    10

    文章

    5509

    浏览量

    116072
  • 脉冲宽度调制

    关注

    7

    文章

    83

    浏览量

    14184

原文标题:基于FPGA的数字电路实验8:PWM脉宽调制

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    集成了多功能数字音频信号处理功能的单芯片全数字音频放大器

    数字音频放大器的工作原理基于脉冲宽度调制(PWM)技术,通过数字信号处理实现音频信号的放大与还原。
    的头像 发表于 10-21 09:40 189次阅读
    集成了多功能<b class='flag-5'>数字</b>音频信号处理功能的单芯片全<b class='flag-5'>数字</b>音频放大器

    【EK-RA6E2开发指南】PWM输出

    脉冲宽度调制(PWM) ,是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是
    的头像 发表于 09-23 18:17 1936次阅读
    【EK-RA6E2开发指南】PWM输出

    KA7500B脉冲宽度调制方式的开关稳压器控制器电路

    ICF KA7500B是脉冲宽度调制方式的开关稳压器控制器电路,由5V基准电压、振荡器、误差放大器、比较器、FF (触发器) 、输出控制电路、输出晶体管和死区时间比较器等电路构成,输出
    发表于 08-18 17:10 0次下载

    PWM逆变器的不同调制方法对比

    PWM为脉冲宽度调制(Pulse Width Modulation)的简称。由于PWM逆变器的交流侧只能输出不同的电平而非连续的正弦波,因此需要采用PWM调制技术产生幅值相同、宽度不等的脉冲
    的头像 发表于 07-16 14:00 3271次阅读
    PWM逆变器的不同<b class='flag-5'>调制</b>方法对比

    STM32H7开启单脉冲模式 PWM波脉冲宽度不受CCR控制怎么解决?

    100us产生一次更新事件 我发现脉冲宽度竟然是50而不是25当我调整CCR的值 发现脉冲宽度不受影响 调整ARR值分别为40 30 脉冲宽度 依次变为59 69这与参考手册有关章节并不符合
    发表于 06-18 07:14

    开关电源三种控制模式:PWM/PFM/PSM

    PWM/PFM/PSM 三种控制模式的定义通常来说,开关电源(DC-DC)有三种最常见的调制方式分别为: 脉冲宽度调制(PWM) 脉冲频率调制(PFM)
    发表于 06-09 16:11

    探索PWM技术:数字世界的模拟魔法

    在科技飞速发展的今天,我们身边充斥着各种智能设备和创新技术。其中,脉冲宽度调制(PWM)技术就像一位神奇的魔法师,在数字与模拟的交汇处施展魔法,让我们的生活变得更加便捷和舒适。那么,究竟什么是PWM
    的头像 发表于 05-12 09:52 921次阅读
    探索PWM技术:<b class='flag-5'>数字</b>世界的模拟魔法

    UC2572 负输出反激式脉冲宽度调制器数据手册

    模式作的误差放大器, 一个振荡器、一个带锁存逻辑的 PWM 比较器和一个 0.5A 峰值 栅极驱动器。UC3572 包括一个欠压锁定电路,以确保 在任何开关活动之前,都存在足够的输入电源电压 发生,并逐个脉冲限流。
    的头像 发表于 04-08 09:25 737次阅读
    UC2572 负输出反激式<b class='flag-5'>脉冲宽度调制</b>器数据手册

    【瑞萨RA2L1入门学习】+PWM呼吸灯

    电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。脉冲宽度调制是利用微处理器的数字输出来对模拟
    发表于 03-30 22:28

    数字电路—24、计数器

    数字电路中,能够记忆输入脉冲个数的电路称为计数器
    发表于 03-26 15:13

    请问DLP4500触发器脉冲宽度可以调整吗?

    DLP4500触发器脉冲宽度可以调整吗?使用DLP LightCrafter 4500 EVM GUI似乎不能对这一参数进行调整。需要将DLP投影仪的触发信号输给Point Grey相机进行同步,但由于脉冲宽度太小无法触发成功,希望能将这一参数调整。请问如何解决该问题,
    发表于 02-28 08:13

    ICF KA7500B电压控制 PWM 调制电路

    ICF KA7500B是脉冲宽度调制方式的开关稳压器控制器电路,由5V基准电压、振荡器、误差放大器、比较器、FF (触发器) 、输出控制电路、输出晶体管和死区时间比较器等电路构成,输出
    发表于 02-20 09:10 5次下载

    数字电路编程语言介绍

    数字电路编程语言是专门为描述和模拟数字电路而设计的编程语言。它们通常具有以下特点: 硬件描述语言(HDL) :大多数数字电路编程语言都是硬件描述语言,如VHDL和Verilog。这些语言允许设计师以
    的头像 发表于 01-24 09:39 1385次阅读

    如何使用 Verilog 进行数字电路设计

    首先,你需要清楚地了解你的数字电路需要实现什么功能。这可能包括输入输出的数量、数据宽度、时钟频率、时序要求等。明确的需求是设计成功的关键。 2. 设计逻辑电路 在明确了需求之后,你需要设计逻辑
    的头像 发表于 12-17 09:47 1744次阅读

    工程师不可不知的电源11种拓扑结构

    电路有关。 基本的脉冲宽度调制波形定义如下: 1、Buck降压 特点 ■把输入降至一个较低的电压。 ■可能是最简单的电路。 ■电感/电容滤波器滤平开关后的方波。 ■输出总是
    的头像 发表于 12-05 10:56 2065次阅读
    工程师不可不知的电源11种拓扑结构