|
fpga播放一首歌
0.png (46.03 KB, 下載次數(shù): 98)
下載附件
2018-4-17 17:14 上傳
1 實(shí)驗(yàn)?zāi)康?
(1)理解并掌握脈寬調(diào)制(PWM )技術(shù)的控制方法及基本工作原理。
(2)學(xué)習(xí)并掌握脈寬調(diào)制(PWM )驅(qū)動(dòng)蜂鳴器的實(shí)現(xiàn)方法。
2 實(shí)驗(yàn)原理
2.1 基本概念
脈沖寬度調(diào)制(PWM)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過(guò)高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來(lái)對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM 信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(wú)(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開(kāi)的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。 有源蜂鳴器和無(wú)源蜂鳴器的差別: 這里的“源”不是指電源。而是指震蕩源。也就是說(shuō),有源蜂鳴器內(nèi)部帶震蕩源,所以只要一通電就會(huì)叫。而無(wú)源內(nèi)部不帶震蕩源,所以如果用直流信號(hào)無(wú)法令其鳴叫。必須用 2K~5K 的方波去驅(qū)動(dòng)它。 有源蜂鳴器往往比無(wú)源的貴,就是因?yàn)槔锩娑鄠(gè)震蕩電路。 無(wú)源蜂鳴器的優(yōu)點(diǎn)是:1。便宜,2。聲音頻率可控,可以做出“多來(lái)米發(fā)索拉西(1234567)”的效果。3。在一些特例中,可以和 LED 復(fù)用一個(gè)控制口 有源蜂鳴器的優(yōu)點(diǎn)是:程序控制方便 。
0.jpg (20.1 KB, 下載次數(shù): 83)
下載附件
2018-4-17 17:17 上傳
開(kāi)發(fā)板上的蜂鳴器是有源蜂鳴器。FPGA 輸出低電平,即可讓蜂鳴
器鳴響。
0.jpg (20.94 KB, 下載次數(shù): 75)
下載附件
2018-4-17 17:17 上傳
Quartus 工程 qsf 文件管腳約束命令,把以下命令拷貝到新建 quartus
工程的 qsf 文件即可完成管腳約束(注意信號(hào)名必須相同) :
set_location_assignment PIN_23 -to i_50m_clk
set_location_assignment PIN_28 -to i_rst_n
set_location_assignment PIN_187 -to o_pwm
3 實(shí)驗(yàn)步驟
3.1 綜合
(1)運(yùn)行綜合工具。
(2)打開(kāi)項(xiàng)目工程,項(xiàng)目工程存放于以軟件開(kāi)發(fā)工具命名的文件夾
中。
(3)編譯運(yùn)行或直接點(diǎn)擊下載,下載 FPGA 軟件到目標(biāo)板。
(4)查看軟件運(yùn)行效果
3.2 仿真
請(qǐng)參考視頻講解。
主要命令:
切換仿真路徑 cd { 仿真庫(kù)路徑 } ,如: cd
{F:\Verilog_demo\M01_buzzer_pwm\sim};
run 100us:仿真運(yùn)行時(shí)間長(zhǎng)度 100us ;
do wave.do:運(yùn)行波形文件;
vlog ../src/*.v:編譯 scr路徑下的所有 v文件
vsim:開(kāi)始仿真命令
quit –sim:退出仿真
4 實(shí)驗(yàn)結(jié)果
4.1 結(jié)果演示
4.1.1 MODELSIM 仿真演示
0.jpg (14.81 KB, 下載次數(shù): 78)
下載附件
2018-4-17 17:19 上傳
4.1.2 M ATLAB 數(shù)據(jù)分析
略。
4.1.3 開(kāi)發(fā)板演示
略。
4.2 特別說(shuō)明
PWM 的一個(gè)優(yōu)點(diǎn)是從處理器到被控系統(tǒng)信號(hào)都是數(shù)字形式的,無(wú)需進(jìn)行數(shù)模轉(zhuǎn)換。讓信號(hào)保持為數(shù)字形式可將噪聲影響降到最小。噪聲只有在強(qiáng)到足以將邏輯1改變?yōu)檫壿?或?qū)⑦壿?改變?yōu)檫壿?時(shí),也才能對(duì)數(shù)字信號(hào)產(chǎn)生影響。
對(duì)噪聲抵抗能力的增強(qiáng)是PWM相對(duì)于模擬控制的另外一個(gè)優(yōu)點(diǎn),而且這也是在某些時(shí)候?qū)?PWM 用于通信的主要原因。從模擬信號(hào)轉(zhuǎn)向PWM 可以極大地延長(zhǎng)通信距離。在接收端,通過(guò)適當(dāng)?shù)?RC 或LC網(wǎng)絡(luò)可以濾除調(diào)制高頻方波并將信號(hào)還原為模擬形式。
PWM既經(jīng)濟(jì)、節(jié)約空間、抗噪性能強(qiáng),是一種值得廣大工程師在許多設(shè)計(jì)應(yīng)用中使用的有效技術(shù)。
源程序如下:
- //==========================================================================
- //Filename :PWM_gen.v
- //modulename:PWM_gen
- //Author :a fei
- //Date :2012-5-16
- //Function :PWM產(chǎn)生器,輸出的pwm驅(qū)動(dòng)蜂鳴器
- //Uesedfor :
- //Taobao :
- //E-mail :2352517093@qq.com
- //==========================================================================
- module PWM_gen(
-
- i_fpga_clk ,
- i_rst_n ,
-
- i_pwm_with ,
-
- o_pwm
-
- );
- input i_fpga_clk ;//50MHz
- input i_rst_n ;
-
- input [19:0] i_pwm_with ;//改變數(shù)值可控制PWM的高電平寬度
- output reg o_pwm ;
-
-
- //=======================================
- //分頻計(jì)數(shù)器
- //=======================================
- reg[19:0] pwm_cnt ;
- always @ (posedge i_fpga_clk or negedge i_rst_n)//時(shí)鐘沿加1
- if(!i_rst_n)
- pwm_cnt <= 20'b0 ;
- else if( pwm_cnt==20'hfffff)
- pwm_cnt <= 20'b0 ;
- else
- pwm_cnt <= pwm_cnt+1'b1 ;
-
- always @ (posedge i_fpga_clk or negedge i_rst_n)
- if(!i_rst_n)
- o_pwm <= 1'b0 ;
- else if(pwm_cnt<=i_pwm_with)
- o_pwm <= 1'b1 ;
- else
- o_pwm <= 1'b0 ;
-
-
- endmodule
復(fù)制代碼
所有資料51hei提供下載(包含完整的設(shè)計(jì)報(bào)告):
M01_buzzer_pwm.zip
(2.38 MB, 下載次數(shù): 97)
2018-4-17 16:11 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|