加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1.呼吸灯概念
    • 2.实现原理
    • 3.硬件介绍
    • 4.FPGA软件设计
    • 5.软件在线仿真与实测
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

FPGA入门基础之呼吸灯设计

05/22 11:00
2796
阅读需 5 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

引言:呼吸灯在日常生活中经常见到,如电子时钟,小夜灯等等,本文我们介绍下通过PWM波来控制LED灯,实现呼吸灯功能。

1.呼吸灯概念

呼吸灯其实是在处理器的控制下,由暗渐亮、然后再由亮渐暗,其实现效果类似人的呼吸方式的LED灯。其要实现呼吸周期重复,明暗渐变功能。

2.实现原理

由于FPGA管脚输出逻辑电平只有“0”和“1”,因此并不能通过FPGA来改变LED两侧电压差来实现呼吸灯。但是,我们可以通过改变单位时间内亮灯时间的占空比来实现呼吸效果,即在固定频率下,通过调整占空比来控制LED的亮灭,又称作PWM(Pulse Width Modulation)调制。PWM是对模拟电路控制的一种非常有效的技术,广泛应用于测量、功率控制、通信等领域。

图1:占空比调整示意图

3.硬件介绍

LED灯电路如下图所示,当电阻其限流作用,保证LED不会超过其工作最大电流,当FPGA IO口输出低电平时,LED灯点亮,反之,LED灯熄灭。

图2:LED灯电路图

4.FPGA软件设计

本设计呼吸灯的亮灭周期是2S,PWM每间隔2ms更新一次,共计更新100次即2S后切换PWM的占空比调整方向。因此PWM占空比的调整是和2ms定时计数器和2S定时计数器相关。系统框图如下:

图3:呼吸灯PWM产生框图

上图中包含了3个定时计数器:

(1)20us定时器,作为本系统的基本定时器,产生时间基准;(2)20ms定时器,通过20us定时器,计数100次完成20ms定时计数;(3)2s定时器,通过20ms定时器,计数100次完成2S定时计数。

1us定时器代码:

//20us 定时器always @(posedge i_sysclk_p or negedge i_rstn)begin    if(i_rstn == 1'b0)        cnt_20us_timer <= 0;        else if(cnt_20us_timer < T20US_SET)            cnt_20us_timer <= cnt_20us_timer + 1'b1;    else        cnt_20us_timer <= 24'd0;          end

20ms比较定时器代码:

//20ms pwm比较定时器,基于 1us timeralways @(posedge i_sysclk_p or negedge i_rstn)begin      if(i_rstn == 1'b0)                                        cnt_20ms_timer <= 0;        else if(20us_timer_done)                                     cnt_20ms_timer <= (cnt_20ms_timer < T20MS_SET) ? (cnt_20ms_timer + 1'b1) : 10'd0;       else                                                         cnt_20ms_timer <= cnt_20ms_timer ;end

5.软件在线仿真与实测

硬件平台:EP2C8Q208C8N

Quartusii软件:11.0

工程编译完成后,下载bit文件到电路板,PWM波测试结果如下图所示。

图4:SignalTapII在线抓取波形

欢迎关注FPGA技术实战公众号,喜欢就多多转发吧!

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
5M1270ZT144C5N 1 Altera Corporation Flash PLD, 10ns, 980-Cell, CMOS, PQFP144, 22 X 22 MM, 0.50 MM PITCH, LEAD FREE, TQFP-144

ECAD模型

下载ECAD模型
$14.96 查看
A3P1000-2FG484I 1 Microsemi Corporation Field Programmable Gate Array, 24576 CLBs, 1000000 Gates, 350MHz, CMOS, PBGA484, 23 X 23 MM, 2.23 MM HEIGHT, 1 MM PITCH, FBGA-484
$166.37 查看
ICE40LP8K-CM225 1 Lattice Semiconductor Corporation Field Programmable Gate Array, 960 CLBs, 133MHz, 7680-Cell, CMOS, PBGA225, UCBGA-225
$10.96 查看

相关推荐

电子产业图谱

专注FPGA技术开发,涉及Intel FPGA、Xilinx FPGA技术开发,开发环境使用,代码风格、时序收敛、器件架构以及软硬件项目实战开发,个人公众号:FPGA技术实战。