色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>可編程邏輯>【ZYNQ Ultrascale+ MPSOC FPGA教程】第十章 PWM呼吸燈實驗

【ZYNQ Ultrascale+ MPSOC FPGA教程】第十章 PWM呼吸燈實驗

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

資料介紹

作者:ALINX

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

適用于板卡型號:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實驗Vivado工程為“pwm_led”。

本文主要講解使用PWM控制LED,實現呼吸燈的效果。

1.實驗原理
如下圖所示,用一個N比特的計數器,最大值可以表示為2的N次方,最小值0,計數器以“period”為步進值累加,加到最大值后會溢出,進入下一個累加周期。當計數器值大于“duty”時,脈沖輸出高,否則輸出低,這樣就可以完成圖中紅色線所示的脈沖占空比可調的脈沖輸出,同時“period”可以調節脈沖頻率,可以理解為計數器的步進值。

PWM脈寬調制示意圖

不同的脈沖占空比的方波輸出后加在LED上,LED燈就會顯示不同的亮度,通過不斷地調節方波的占空比,從而實現LED燈亮度的調節。

2. 實驗設計
PWM模塊設計非常簡單,在上面的原理中已經講到,這里不再說原理。

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

那么如何實現呼吸燈的效果呢?我們知道呼吸燈效果是由暗不斷的變亮,再由亮不斷的變暗的過程,而亮暗效果是由占空比來調節的,因此我們主要來控制占空比,也就是控制duty的值。

在下面的測試代碼中,通過設置period的值,設定PWM的頻率為200Hz,PWM_PLUS狀態即是增加duty值,如果增加到最大值,將pwm_flag置1,并開始將duty值減少,待減少到最小的值,則開始增加duty值,不斷循環。其中PWM_GAP狀態為調整間隔,時間為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. 下載驗證
生成bitstream,并下載bit文件,可以看到PL LED1燈產生呼吸燈效果。PWM是比較常用的模塊,比如風扇轉速控制,電機轉速控制等等。

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

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1491次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  95次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關電源原理及各功能電路詳解
  10. 0.38 MB  |  11次下載  |  免費
  11. 6100W短波放大電路圖
  12. 0.05 MB  |  4次下載  |  3 積分
  13. 7基于單片機和 SG3525的程控開關電源設計
  14. 0.23 MB  |  4次下載  |  免費
  15. 8基于AT89C2051/4051單片機編程器的實驗
  16. 0.11 MB  |  4次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關電源設計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537793次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費
主站蜘蛛池模板: 国产在线精品亚洲观看不卡欧美 | 偷拍国产精品在线播放 | 国产曰韩无码亚洲视频 | 亚洲中久无码永久在线 | 国产免费人成在线看视频 | 妖精视频免费高清观看 | 河南老太XXXXXHD | 性xxx欧美 | 欧美精品3atv一区二区三区 | 99久久蜜臀亚洲AV无码精品 | 嗯啊哈啊好棒用力插啊 | 边摸边吃奶边做下面视频 | 歪歪漫画羞羞漫画国产 | 国产精品亚洲二线在线播放 | 免费视频国产 | 久久热最新网站获取3 | 久久九九精品国产自在现线拍 | 双性被疯狂灌满精NP | 四虎永久精品视频在线 | 欧美日韩中文在线字幕视频 | 我半夜摸妺妺的奶C了她 | 女生扒开尿口 | 阿离被扒开双腿疯狂输出 | yin荡体育课羞耻play双性 | 日日操天天操夜夜操 | 秘密影院久久综合亚洲综合 | 大中国免费视频大全在线观看 | 538视频这里只有精品 | 99久久99久久久精品齐齐鬼色 | 野花香HD免费高清版6高清版 | 人妻中文字幕无码久久AV爆 | 久草网国产自偷拍 | 两个吃奶一个添下面视频 | 岳打开双腿开始配合日韩视频 | 黄色三级视频网站 | 久久视频在线视频观看天天看视频 | 亚洲国产精品99久久久久久 | 高清不卡伦理电影在线观看 | 在线免费中文字幕 | 99re热视频这里只有精品 | 国产精品色吧国产精品 |