chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>【ZYNQ Ultrascale+ MPSOC FPGA教程】第十章 PWM呼吸燈實(shí)驗(yàn)

【ZYNQ Ultrascale+ MPSOC FPGA教程】第十章 PWM呼吸燈實(shí)驗(yàn)

2021-01-26 | pdf | 91.3KB | 次下載 | 2積分

資料介紹

作者:ALINX

* 本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。

適用于板卡型號(hào):
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實(shí)驗(yàn)Vivado工程為“pwm_led”。

本文主要講解使用PWM控制LED,實(shí)現(xiàn)呼吸燈的效果。

1.實(shí)驗(yàn)原理
如下圖所示,用一個(gè)N比特的計(jì)數(shù)器,最大值可以表示為2的N次方,最小值0,計(jì)數(shù)器以“period”為步進(jìn)值累加,加到最大值后會(huì)溢出,進(jìn)入下一個(gè)累加周期。當(dāng)計(jì)數(shù)器值大于“duty”時(shí),脈沖輸出高,否則輸出低,這樣就可以完成圖中紅色線所示的脈沖占空比可調(diào)的脈沖輸出,同時(shí)“period”可以調(diào)節(jié)脈沖頻率,可以理解為計(jì)數(shù)器的步進(jìn)值。

PWM脈寬調(diào)制示意圖

不同的脈沖占空比的方波輸出后加在LED上,LED燈就會(huì)顯示不同的亮度,通過(guò)不斷地調(diào)節(jié)方波的占空比,從而實(shí)現(xiàn)LED燈亮度的調(diào)節(jié)。

2. 實(shí)驗(yàn)設(shè)計(jì)
PWM模塊設(shè)計(jì)非常簡(jiǎn)單,在上面的原理中已經(jīng)講到,這里不再說(shuō)原理。

PWM模塊(ax_pwm)端口
`timescale1ns/1ps
module ax_pwm
#(
parameter N =16//pwm bit width
)
(
input clk,
input rst,
input[N -1:0]period, //pwm step value
input[N -1:0]duty, //duty value
output pwm_out //pwm output
);

reg[N -1:0] period_r; //period register
reg[N -1:0] duty_r; //duty register
reg[N -1:0] period_cnt; //period counter
reg pwm_r;
assign pwm_out = pwm_r;
always@(posedge clk orposedge rst)
begin
if(rst==1)
begin
period_r duty_r end
else
begin
period_r duty_r end
end
//period counter, step is period value
always@(posedge clk orposedge rst)
begin
if(rst==1)
period_cnt else
period_cnt end

always@(posedge clk orposedge rst)
begin
if(rst==1)
begin
pwm_r end
else
begin
if(period_cnt >= duty_r) //if period counter is bigger or equals to duty value, then set pwm value to high
pwm_r else
pwm_r end
end

那么如何實(shí)現(xiàn)呼吸燈的效果呢?我們知道呼吸燈效果是由暗不斷的變亮,再由亮不斷的變暗的過(guò)程,而亮暗效果是由占空比來(lái)調(diào)節(jié)的,因此我們主要來(lái)控制占空比,也就是控制duty的值。

在下面的測(cè)試代碼中,通過(guò)設(shè)置period的值,設(shè)定PWM的頻率為200Hz,PWM_PLUS狀態(tài)即是增加duty值,如果增加到最大值,將pwm_flag置1,并開始將duty值減少,待減少到最小的值,則開始增加duty值,不斷循環(huán)。其中PWM_GAP狀態(tài)為調(diào)整間隔,時(shí)間為100us。
`timescale1ns/1ps
module pwm_test(
input clk, //25MHz
input rst_n, //low active
output led //high-off, low-on
);

localparam CLK_FREQ =25; //25MHz
localparam US_COUNT = CLK_FREQ ; //1 us counter
localparam MS_COUNT = CLK_FREQ*1000; //1 ms counter

localparam DUTY_STEP =32'd100000; //duty step
localparam DUTY_MIN_VALUE =32'h6fffffff; //duty minimum value
localparam DUTY_MAX_VALUE =32'hffffffff; //duty maximum value

localparam IDLE =0; //IDLE state
localparam PWM_PLUS =1;//PWM duty plus state
localparam PWM_MINUS =2;//PWM duty minus state
localparam PWM_GAP =3;//PWM duty adjustment gap

wire pwm_out; //pwm output
reg[31:0] period; //pwm step value
reg[31:0] duty; //duty value
reg pwm_flag ; //duty value plus and minus flag, 0: plus; 1: minus

reg[3:0] state;
reg[31:0] timer; //duty adjustment counter

assign led =~pwm_out ;//led low active

always@(posedge clk ornegedge rst_n)
begin
if(rst_n ==1'b0)
begin
period timer duty pwm_flag state end
else
case(state)
IDLE:
begin
period state duty end
PWM_PLUS :
begin
if(duty > DUTY_MAX_VALUE - DUTY_STEP) //if duty is bigger than DUTY MAX VALUE minus DUTY_STEP , begin to minus duty value
begin
pwm_flag duty end
else
begin
pwm_flag duty end

state end
PWM_MINUS :
begin
if(duty begin
pwm_flag duty end
else
begin
pwm_flag duty end
state end
PWM_GAP:
begin
if(timer >= US_COUNT*100)//adjustment gap is 100us
begin
if(pwm_flag)
state else
state

timer end
else
begin
timer end
end
default:
begin
state end
endcase
end

//Instantiate pwm module
ax_pwm
#(
.N(32)
)
ax_pwm_m0(
.clk (clk),
.rst (~rst_n),
.period (period),
.duty (duty),
.pwm_out (pwm_out)
);

endmodule

3. 下載驗(yàn)證
生成bitstream,并下載bit文件,可以看到PL LED1燈產(chǎn)生呼吸燈效果。PWM是比較常用的模塊,比如風(fēng)扇轉(zhuǎn)速控制,電機(jī)轉(zhuǎn)速控制等等。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1DC電源插座圖紙
  2. 0.67 MB   |  3次下載  |  免費(fèi)
  3. 2AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
  4. 1.41MB   |  3次下載  |  免費(fèi)
  5. 3AN158 GD32VW553 Wi-Fi開發(fā)指南
  6. 1.51MB   |  2次下載  |  免費(fèi)
  7. 4AN148 GD32VW553射頻硬件開發(fā)指南
  8. 2.07MB   |  1次下載  |  免費(fèi)
  9. 5AN111-LTC3219用戶指南
  10. 84.32KB   |  次下載  |  免費(fèi)
  11. 6AN153-用于電源系統(tǒng)管理的Linduino
  12. 1.38MB   |  次下載  |  免費(fèi)
  13. 7AN-283: Σ-Δ型ADC和DAC[中文版]
  14. 677.86KB   |  次下載  |  免費(fèi)
  15. 8SM2018E 支持可控硅調(diào)光線性恒流控制芯片
  16. 402.24 KB  |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  450次下載  |  免費(fèi)
  3. 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  138次下載  |  1 積分
  5. 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
  6. 0.10 MB   |  130次下載  |  免費(fèi)
  7. 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  8. 2.96 MB   |  44次下載  |  免費(fèi)
  9. 5美的電磁爐維修手冊(cè)大全
  10. 1.56 MB   |  24次下載  |  5 積分
  11. 6如何正確測(cè)試電源的紋波
  12. 0.36 MB   |  18次下載  |  免費(fèi)
  13. 7感應(yīng)筆電路圖
  14. 0.06 MB   |  10次下載  |  免費(fèi)
  15. 8萬(wàn)用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分