FPGA学习系列:15. 呼吸灯(pwm)设计.doc

上传人:白大夫 文档编号:3251721 上传时间:2019-08-06 格式:DOC 页数:4 大小:20.50KB
返回 下载 相关 举报
FPGA学习系列:15. 呼吸灯(pwm)设计.doc_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《FPGA学习系列:15. 呼吸灯(pwm)设计.doc》由会员分享,可在线阅读,更多相关《FPGA学习系列:15. 呼吸灯(pwm)设计.doc(4页珍藏版)》请在三一文库上搜索。

1、FPGA学习系列:15. 呼吸灯(pwm)设计设计背景:呼吸灯广泛应用于手机之上,并成为各大品牌新款手机的卖点之一。如果手机里面有未处理的通知,比如说未接来电,未查收的短信等等,呼吸灯就会在控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸,起到一个通知提醒的作用。设计原理:关于呼吸灯设计实现的理论主要是PWM有关知识。PWM(Pluse Width Modulation)脉冲宽度调制,是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。并广泛应用在从测量、通信、功率控制与变换及LED照明等许多领域中。顾名思义,就是占空比可

2、调的信号,那么什么是占空比呢?占空比(Duty Cycle or Duty Ratio),可以解释为,在一脉冲序列中(方波),正脉冲序列的持续时间与脉冲总周期的比值。也可理解为,电路释放能量的有效时间与总释放时间的比值。PWM是怎样实现调光呢?想要调节LED的亮度变化,实则是调节控制流经LED的电流。电流增大则LED亮度增强,反之减弱。但由于电流为模拟信号,所以这时就用到了PWM。正如下图所示:使用一系列等幅不等宽的脉冲来代替一个正弦波,脉冲的宽度根据正弦波a的幅度变化,幅度高,则脉冲宽,反之。 多数负载需要的PWM调制频率都高于10Hz,要想实现呼吸灯的效果,必须提高调制频率,通常调制频率为

3、1Khz200Khz之间。在LED控制中PWM作用于电源部分,脉宽调制的脉冲频率通常大于100Hz,人眼就不会感到闪烁。这里我们取PWM调制频率为1KHz,PWM周期为1ms。脉冲频率一定时,输出脉冲的占空比越大,相当于输出的有效电平越大,随着占空比的不同,LED的亮度也将不同。如占空比为0时,则LED不亮,为100%时,则LED最量,我们让占空比从0100%变化,再从100%0不断变化,则就可实现呼吸灯效果。本设计呼吸灯的一个周期为2s,分为占空比增“吸”和占空比减“呼”两种模式,每个为1s,一个PWM周期为2ms,所以每个模式包含1000个PWM周期,将每个PWM周期分为1000份,即每个

4、时间段2us。设计架构图:时钟50M设计代码:设计模块0modulehuxi_led_state(clk,led,rst_n);1 inputclk;2 inputrst_n;34 outputregled;56 parameterT =100_000;78 localparams0 =1b0;9 localparams1 =1b1;1011 reg25:0lw;12 reg25:0hw;1314 reg16:0count;1516 / 产生2MS的脉冲17 always(posedgeclk ornegedgerst_n)18 if(!rst_n)19 begin20 count 52 be

5、gin53 lw 58 begin59 hw 72 begin73 hw 78 begin79 hw 测试模块0timescale1ns/1ps1 modulehuxi_led_state_tb();2 regclk;3 regrst_n;45 wireled;67 parameterT =100_000;89 initialbegin10 clk =1b1;11 rst_n =1b0;1213 #200.1rst_n =1b1;141516 end1718 always#10clk =clk;19202122 huxi_led_state huxi_led_state_date(/例化设计23 .clk(clk),24 .led(led),25 .rst_n(rst_n)26 );27 endmodule仿真图:仿真中可以看到点亮led等高电平在不停的增高,然后会降低,通过验证我们的设计是正确的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1