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

    文章

    5706

    浏览量

    134380
  • 数字电路
    +关注

    关注

    192

    文章

    1396

    浏览量

    79749
  • 测量
    +关注

    关注

    10

    文章

    4213

    浏览量

    109729
  • 脉冲宽度调制

    关注

    7

    文章

    74

    浏览量

    13569

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

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

收藏 人收藏

    评论

    相关推荐

    脉冲宽度调制控制电路TL1453C数据表

    电子发烧友网站提供《双脉冲宽度调制控制电路TL1453C数据表.pdf》资料免费下载
    发表于 04-18 11:13 0次下载
    双<b class='flag-5'>脉冲宽度调制</b>控制<b class='flag-5'>电路</b>TL1453C数据表

    负输出反激脉冲宽度调制器UC3572数据表

    电子发烧友网站提供《负输出反激脉冲宽度调制器UC3572数据表.pdf》资料免费下载
    发表于 04-11 10:42 0次下载
    负输出反激<b class='flag-5'>脉冲宽度调制</b>器UC3572数据表

    调节脉冲宽度调制器UC1525B/1527B系列数据表

    电子发烧友网站提供《调节脉冲宽度调制器UC1525B/1527B系列数据表.pdf》资料免费下载
    发表于 04-07 15:47 0次下载
    调节<b class='flag-5'>脉冲宽度调制</b>器UC1525B/1527B系列数据表

    先进的调节脉冲宽度调制器UC1524A系列数据表

    电子发烧友网站提供《先进的调节脉冲宽度调制器UC1524A系列数据表.pdf》资料免费下载
    发表于 04-07 15:40 0次下载
    先进的调节<b class='flag-5'>脉冲宽度调制</b>器UC1524A系列数据表

    调节脉冲宽度调制器UC1526A系列数据表

    电子发烧友网站提供《调节脉冲宽度调制器UC1526A系列数据表.pdf》资料免费下载
    发表于 04-02 09:27 0次下载
    调节<b class='flag-5'>脉冲宽度调制</b>器UC1526A系列数据表

    调节脉冲宽度调制器UCx52xA数据表

    电子发烧友网站提供《调节脉冲宽度调制器UCx52xA数据表.pdf》资料免费下载
    发表于 04-01 15:34 0次下载
    调节<b class='flag-5'>脉冲宽度调制</b>器UCx52xA数据表

    脉冲宽度调制(PWM):工程机械控制器的常见技术

    在电子领域中,脉冲宽度调制(PWM)是一项广泛应用的技术。通过改变信号的脉冲宽度来调整输出信号的平均功率,实现对电压或电流的有效控制。在工程机械控制器中,PWM功能更是发挥着至关重要的作用
    的头像 发表于 03-06 13:58 362次阅读
    <b class='flag-5'>脉冲宽度调制</b>(PWM):工程机械控制器的常见技术

    为什么工程机械控制器需要脉冲宽度调制功能

    在电子领域中,脉冲宽度调制(PWM)是一项广泛应用的技术。通过改变信号的脉冲宽度来调整输出信号的平均功率,实现对电压或电流的有效控制。在工程机械控制器中,PWM功能更是发挥着至关重要的作用,为机械系统提供了高效、精确的控制手段。
    的头像 发表于 02-23 10:17 175次阅读

    PWM脉冲宽度调制原理

    脉冲宽度调制原理 在GPIO的数字输入和输出模式中,只有高低电平,高电平一般是3.3V或者5V,低电平就是0V,如果我想要一个折中一点的电压怎么办呢?PWM大家了解一下。 PWM,全称是脉冲宽度调制,是一种对模拟信号电平进行
    的头像 发表于 11-27 11:37 514次阅读
    PWM<b class='flag-5'>脉冲宽度调制</b>原理

    关于PWM脉冲宽度调制,你懂多少?

    其实关于PWM脉冲宽度调制讲的最详细的应该在电力电子里面,然而平时用的最多的就是在一些的程序控制里面。
    的头像 发表于 07-19 16:49 1678次阅读
    关于PWM<b class='flag-5'>脉冲宽度调制</b>,你懂多少?

    使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色

    电子发烧友网站提供《使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色.zip》资料免费下载
    发表于 07-12 09:13 0次下载
    使用PWM或<b class='flag-5'>脉冲宽度调制</b>管理LED亮度和RGB LED颜色

    认知里的PWM脉冲宽度调制

    针对PWM,官方的解释是这样:PWM,也称脉冲宽度调制,它是一种模拟控制方式
    的头像 发表于 07-07 14:37 1122次阅读
    认知里的PWM<b class='flag-5'>脉冲宽度调制</b>

    什么是脉冲宽度调制?使用按键来控制PWM的占空比

    那先搬出一段概念:脉冲宽度调制(英语:Pulse Width Modulation,缩写:PWM),简称脉宽调制,是将模拟信号变换为脉冲的一种技术,一般变换后脉冲的周期固定,但
    的头像 发表于 06-28 17:37 1851次阅读
    什么是<b class='flag-5'>脉冲宽度调制</b>?使用按键来控制PWM的占空比

    使用Arduino进行脉冲宽度调制(PWM)并观察示波器信号

    电子发烧友网站提供《使用Arduino进行脉冲宽度调制(PWM)并观察示波器信号.zip》资料免费下载
    发表于 06-27 09:15 0次下载
    使用Arduino进行<b class='flag-5'>脉冲宽度调制</b>(PWM)并观察示波器信号

    开关电源的脉冲宽度调制(PWM)和脉冲频率调制(PFM)的区别

    开关稳压器(Regulatior),就是实现稳压,需要控制系统(负反馈),当电压上升时通过负反馈把它降低,当电压下降时就把它升上去,这样形成了一个控制环路。如图1中是脉冲宽度调制(PWM),当然还有其他如:脉冲频率调制(PFM)
    的头像 发表于 06-24 09:57 4667次阅读
    开关电源的<b class='flag-5'>脉冲宽度调制</b>(PWM)和<b class='flag-5'>脉冲</b>频率<b class='flag-5'>调制</b>(PFM)的区别