找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6937|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

PWM控制蜂鳴器FPGA源碼與教程+仿真與報(bào)告等資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
fpga播放一首歌


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)是:程序控制方便  。

    開(kāi)發(fā)板上的蜂鳴器是有源蜂鳴器。FPGA 輸出低電平,即可讓蜂鳴
器鳴響。

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  仿真演示

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ù)。


源程序如下:
  1. //==========================================================================
  2. //Filename  :PWM_gen.v
  3. //modulename:PWM_gen
  4. //Author    :a fei
  5. //Date            :2012-5-16
  6. //Function  :PWM產(chǎn)生器,輸出的pwm驅(qū)動(dòng)蜂鳴器
  7. //Uesedfor  :
  8. //Taobao    :
  9. //E-mail    :2352517093@qq.com
  10. //==========================================================================


  11. module PWM_gen(
  12.                   
  13.                  i_fpga_clk  ,
  14.                  i_rst_n     ,
  15.                  
  16.                  i_pwm_with  ,
  17.                  
  18.                  o_pwm      
  19.                                        
  20.                   );


  21. input    i_fpga_clk  ;//50MHz
  22. input    i_rst_n     ;

  23. input [19:0] i_pwm_with  ;//改變數(shù)值可控制PWM的高電平寬度
  24. output reg   o_pwm       ;   
  25.                                        


  26. //=======================================
  27. //分頻計(jì)數(shù)器
  28. //=======================================
  29. reg[19:0] pwm_cnt ;

  30. always @ (posedge i_fpga_clk or negedge i_rst_n)//時(shí)鐘沿加1              
  31.        if(!i_rst_n)
  32.             pwm_cnt <= 20'b0 ;
  33.        else if( pwm_cnt==20'hfffff)
  34.             pwm_cnt <= 20'b0 ;
  35.        else
  36.             pwm_cnt <= pwm_cnt+1'b1 ;
  37.   
  38. always @ (posedge i_fpga_clk or negedge i_rst_n)
  39.          if(!i_rst_n)
  40.               o_pwm <= 1'b0 ;
  41.          else if(pwm_cnt<=i_pwm_with)
  42.               o_pwm <= 1'b1 ;
  43.          else
  44.               o_pwm <= 1'b0 ;  
  45.             
  46.                         
  47. endmodule
復(fù)制代碼

所有資料51hei提供下載(包含完整的設(shè)計(jì)報(bào)告):
M01_buzzer_pwm.zip (2.38 MB, 下載次數(shù): 97)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:388978 發(fā)表于 2019-1-6 20:25 | 只看該作者
很有幫助
回復(fù)

使用道具 舉報(bào)

板凳
ID:361383 發(fā)表于 2019-11-23 16:41 | 只看該作者
剛好學(xué)習(xí)FPGA,用處很大
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表