差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
呼吸灯 [2016/06/15 11:20]
anran [资源报告]
呼吸灯 [2019/12/23 10:44] (当前版本)
anran
行 24: 行 24:
  
 结合呼吸灯的原理,整个呼吸的周期为最亮→最暗→最亮的时间,即t的值的变化:0→T→0逐渐变化,这个时间应该为2s 结合呼吸灯的原理,整个呼吸的周期为最亮→最暗→最亮的时间,即t的值的变化:0→T→0逐渐变化,这个时间应该为2s
-====硬件连接====+====硬件说明====
 ------ ------
 呼吸灯的设计较为简单,我们使用25MHz的系统时钟作为高频信号做分频处理,调整占空比实现PWM,通过LED灯LD1指示输出状态。 呼吸灯的设计较为简单,我们使用25MHz的系统时钟作为高频信号做分频处理,调整占空比实现PWM,通过LED灯LD1指示输出状态。
行 30: 行 30:
 {{ :​led电路连接.jpg |LED电路连接}} {{ :​led电路连接.jpg |LED电路连接}}
  
-====代码设计==== +====Verilog代码==== 
----- +------
-===设计文件===+
  
 {{ :​呼吸灯程序设计.jpg |呼吸灯程序设计}} {{ :​呼吸灯程序设计.jpg |呼吸灯程序设计}}
行 38: 行 37:
 呼吸灯设计要求呼吸的周期为2s,也就是说LED灯从最亮的状态开始,第一秒时间内逐渐变暗,第二秒的时间内再逐渐变亮,依次进行。 呼吸灯设计要求呼吸的周期为2s,也就是说LED灯从最亮的状态开始,第一秒时间内逐渐变暗,第二秒的时间内再逐渐变亮,依次进行。
  
-本设计中需要两个计数器cnt1和cnt2,cnt1随系统时钟同步计数,计数范围为T,cnt2随cnt1的周期同步计数范围也是T,则占空比从0%到100%的时间 = cnt2*cnt1 = T^2 = 1s = 25MHz,T = 5000,我们定义CNT_NUM = 5000作为两个计数器的计数最大值。+本设计中需要两个计数器cnt1和cnt2,cnt1随系统时钟同步计数(系统时钟上升沿时cnt1自加1)范围为0~T,cnt2随cnt1的周期同步计数(cnt1等于T时,cnt2自加1)范围也是0~T,这样每次cnt1在0~T的计数时,cnt2为一个固定值,相邻cnt1计数周期对应的cnt2的值逐渐增大,我们将cnt1计数0~T的时间作为脉冲周期,cnt2的值作为脉冲宽度,则占空比 = cnt2/T,占空比从0%到100%的时间 = cnt2*cnt1 = T^2 = 1s = 25M个系统时钟,T = 5000,我们定义CNT_NUM = 5000作为两个计数器的计数最大值。 
 + 
 +{{ ::​呼吸灯pwm原理.jpg |PWM呼吸灯原理}}
  
 <code verilog> <code verilog>
行 90: 行 91:
  
 ^ 管脚名称 | clk_in| rst_n_in| Breath_led| ^ 管脚名称 | clk_in| rst_n_in| Breath_led|
-^ FPGA管脚 | C1    | A2      ​A3        | +^ FPGA管脚 | C1    | L14     N13        | 
-====运行结果==== +====仿真结果====
- +
-{{:​img20160614134850.jpg?​500 |LED灯亮度}}+
  
-{{:img20160614135014.jpg?500|示波器测量结果}}+{{:呼吸灯仿真.jpg|呼吸灯仿真}}
 ====资源报告==== ====资源报告====
  
行 107: 行 106:
 ====知识点==== ====知识点====
  
-  * 按键消抖+  * 呼吸灯原理
   * PWM脉宽调节   * PWM脉宽调节
   * 脉冲发生原理   * 脉冲发生原理
行 113: 行 112:
  
 ====参考文档==== ====参考文档====
-  * [[按键消抖]]+  * [[脉冲发生器]]
   * {{:​machxo2familydatasheet.pdf|Lattice MachXO2数据手册}}   * {{:​machxo2familydatasheet.pdf|Lattice MachXO2数据手册}}
  
行 121: 行 120:
  
 ^ **文件名称** ​ | **功能** | ^ **文件名称** ​ | **功能** |
-^ **[[Pulse_gen.v]]** | **脉冲发生器TOP文件** | +^ **[[Breath_led.v]]** | **呼吸灯** | 
-^ **[[Debounce.v]]** | **按键消抖** |+^ **[[Breath_led_test.v]]** | **测试文件** |