RM新时代网站-首页

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

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

3天內(nèi)不再提示

基于FPGA的音樂蜂鳴器設(shè)計

電子工程師 ? 來源:FPGA設(shè)計論壇 ? 作者:FPGA設(shè)計論壇 ? 2020-11-11 09:48 ? 次閱讀

基于FPGA的音樂蜂鳴器設(shè)計

設(shè)計背景

蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器電子產(chǎn)品中作發(fā)聲器件。在一般設(shè)計中,可利用蜂鳴器檢測有些按鍵是否按下,或者有些功能是否正常等,當(dāng)然如果足夠浪漫,也可以讓蜂鳴器演奏音樂。


設(shè)計原理

本設(shè)計使用的是無源蜂鳴器,也可稱為聲響器,原理電路圖如下所示。它沒有內(nèi)部驅(qū)動電路,無源蜂鳴器工作的理想信號為方波,如果給直流,蜂鳴器是不響應(yīng)的,因為磁路恒定,鉬片不能震動發(fā)音。根據(jù)電路圖可知,由于 FPGA 的驅(qū)動能力不夠,這里增加了一個三極管來驅(qū)動這個無源蜂鳴器。在驅(qū)動時,只需要向蜂鳴器發(fā)送一定頻率的方波,就可以使蜂鳴器發(fā)聲。那么應(yīng)該發(fā)送怎樣的頻率呢?具體則可參考下表(音節(jié)頻率表)

樂曲能連續(xù)演奏所需要的兩個基本數(shù)據(jù)是:組成樂曲的每個音符的頻率值(音調(diào))和每個音符持續(xù)的時間(音長)。因此只要控制 FPGA輸出到蜂鳴器的激勵信號頻率的高低和持續(xù)時間,就可以使蜂鳴器發(fā)出連續(xù)的樂曲聲。在本設(shè)計中,由于至芯開發(fā)板的晶振為 50MHz,所以我們需要一個一個分頻模塊(PLL)產(chǎn)生一個較低的基準(zhǔn)頻率(1MHz)。還需要一個空間儲存樂譜,由于樂譜是固定的不需要更改,所以我們選擇 ROMIP 核進行存儲?;鶞?zhǔn)頻率 1MHz 可分頻得到所有不同頻率的信號。最大的分頻比為1_000_000/262/2。既然是音樂,那么就需要節(jié)拍,一般采用 4 拍,即音長為 0.25s,所以還需設(shè)計一個模塊,控制每 0.25s,ROM 地址加 1,。如果需要發(fā)送一個低音 1 并維持 1 秒,則只需要在 ROM 的連續(xù)四個地址中寫入低音 1 的對應(yīng)信息即可。在設(shè)計中為了方便在 ROM 中儲存數(shù)據(jù),這里數(shù)據(jù)格式為 8’hAB,其中 A 暫時為三個值 1、2、4,分別表示低音、中音、高音。B 暫時為七個值 1、2、3、4、5、6、7。比如要產(chǎn)生一個低音 1,只需在 ROM中存儲 8’h11,如要產(chǎn)生一個高音 7,只需在 ROM中存儲 8’h47,以此類推即可。這時,就需要一個解碼模塊,將 ROM 中的數(shù)據(jù)還原成音樂發(fā)生器所需要的數(shù)據(jù)。


設(shè)計架構(gòu)圖

根據(jù)上述的分析,得到如下的架構(gòu)圖

本設(shè)計包括 6 個模塊,PLL 模塊把 50MHz 的時鐘信號降到 1MHz,rom 模塊存儲音樂數(shù)據(jù),time_counter 是一個計數(shù)模塊,產(chǎn)生節(jié)拍,每到 0.25s,輸出的 time_finsh 變?yōu)橐粋€周期的高電平。并發(fā)送給addr_gen 模塊,產(chǎn)生 addr,讓 rom 輸出下一個地址的數(shù)據(jù)。rom 輸出的數(shù)據(jù) rom_data 輸入到 decode 解碼模塊,將解碼后的數(shù)據(jù)music_data 輸入到 music_gen 模塊,通過計數(shù)器,如果計數(shù)器小于music_data 的值,則 beep 保持不變,否則,beep 取反,并且計數(shù)器

清 1,從而產(chǎn)生特定的方波頻率。


設(shè)計代碼

time_counter 模塊代碼如下:

addr_gen 模塊代碼如下:

decode 解碼模塊代碼如下:

music_gen 模塊代碼如下:

beep 頂層模塊代碼如下:

仿真

仿真結(jié)果如下:

由仿真圖可知:當(dāng) rom 輸出 rom_data 為 8’h16 時,代表輸出低音6,解碼后結(jié)果 music_data 為 1136,輸出的 beep 頻率為 440Hz,與實際低音 6 的音節(jié)頻率表的值一致;當(dāng) rom 輸出 rom_data 為 8’h22時,代表輸出中音 2,解碼后結(jié)果 music_data 為 851,輸出的 beep頻率為 563Hz,與實際中音 2 的音節(jié)頻率表的值相差 24Hz,存在一定的誤差,但是不影響樂曲的播放。如果想提高 beep 頻率的精度,減小誤差,則可以將 1MHz 的基準(zhǔn)頻率提高。

責(zé)任編輯:lq


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    563

    瀏覽量

    85731
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    891

    瀏覽量

    45919

原文標(biāo)題:FPGA入門課程 音樂蜂鳴器設(shè)計

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    蜂鳴器電壓范圍怎么判斷

    蜂鳴器是一種常見的電子元件,用于發(fā)出聲音信號。在許多電子設(shè)備中,蜂鳴器被用來提供警告、提示或通知。蜂鳴器的電壓范圍是其正常工作所需的電壓范圍,對于蜂鳴器的性能和穩(wěn)定性至關(guān)重要。 1.
    的頭像 發(fā)表于 08-09 10:43 ?900次閱讀

    測量蜂鳴器電壓的工具和方法

    蜂鳴器是一種常見的電子元件,廣泛應(yīng)用于各種電子設(shè)備中,如鬧鐘、電話、計算機等。它通過產(chǎn)生聲音信號來提醒用戶注意某些事件或狀態(tài)。 第一部分:蜂鳴器的基礎(chǔ)知識 1.1 蜂鳴器的工作原理 蜂鳴器
    的頭像 發(fā)表于 08-09 10:38 ?663次閱讀

    蜂鳴器電路電阻的作用是什么

    蜂鳴器電路中的電阻起著至關(guān)重要的作用。 引言 蜂鳴器是一種廣泛應(yīng)用于電子設(shè)備中的發(fā)聲元件,它可以將電能轉(zhuǎn)換為聲音。蜂鳴器電路是實現(xiàn)蜂鳴器發(fā)聲的基礎(chǔ),而電阻在其中扮演著關(guān)鍵角色。
    的頭像 發(fā)表于 08-09 10:30 ?706次閱讀

    multisim中蜂鳴器怎么連接

    在Multisim中,蜂鳴器是一種常用的電子元件,用于產(chǎn)生聲音信號。 蜂鳴器的基本原理 蜂鳴器是一種電子元件,通過電磁感應(yīng)原理產(chǎn)生聲音。當(dāng)電流通過蜂鳴器的線圈時,線圈產(chǎn)生磁場,使
    的頭像 發(fā)表于 08-09 10:22 ?2169次閱讀

    buzzer蜂鳴器在Multisim的使用

    在Multisim中,蜂鳴器(Buzzer)是一種常見的音頻輸出設(shè)備,用于在電路中產(chǎn)生聲音信號。在Multisim中,蜂鳴器通常用于模擬實際電路中的報警、提示音或其他音頻信號。 蜂鳴器的基本概念
    的頭像 發(fā)表于 08-09 10:20 ?3677次閱讀

    蜂鳴器的功能和作用有哪些

    以下是關(guān)于蜂鳴器的介紹: 蜂鳴器簡介 蜂鳴器是一種電子設(shè)備,用于發(fā)出聲音信號。它通常由一個振蕩器、一個放大器和一個發(fā)聲元件組成。蜂鳴器廣泛應(yīng)用于各種電子設(shè)備中,如電話、鬧鐘、汽車、家用
    的頭像 發(fā)表于 08-09 10:13 ?816次閱讀

    如何讓蜂鳴器發(fā)出不同頻率的聲音

    蜂鳴器是一種電子設(shè)備,它可以發(fā)出聲音。蜂鳴器的工作原理是利用電磁線圈產(chǎn)生磁場,使蜂鳴器內(nèi)部的振膜振動,從而產(chǎn)生聲音。蜂鳴器的頻率可以通過改變輸入信號的頻率來調(diào)整。以下是如何讓
    的頭像 發(fā)表于 08-09 10:09 ?1189次閱讀

    有源蜂鳴器與無源蜂鳴器的發(fā)聲原理是什么

    有源蜂鳴器與無源蜂鳴器是兩種常見的蜂鳴器類型,它們在發(fā)聲原理上存在一些差異。以下是對這兩種蜂鳴器發(fā)聲原理的介紹。 一、蜂鳴器概述
    的頭像 發(fā)表于 08-09 10:04 ?1187次閱讀

    無源蜂鳴器和有源蜂鳴器的對比分析

    無源蜂鳴器和有源蜂鳴器是兩種常見的蜂鳴器類型,它們在工作原理、應(yīng)用場景、性能特點等方面存在一定的差異。 一、無源蜂鳴器 定義 無源蜂鳴器是一
    的頭像 發(fā)表于 08-09 09:50 ?1942次閱讀

    無源蜂鳴器和有源蜂鳴器的聲音區(qū)別

    無源蜂鳴器和有源蜂鳴器是兩種不同類型的蜂鳴器,它們在聲音、工作原理、應(yīng)用場景等方面都存在一定的差異。本文將介紹無源蜂鳴器和有源蜂鳴器的聲音區(qū)
    的頭像 發(fā)表于 07-15 09:42 ?1776次閱讀

    無源蜂鳴器怎么才會響 蜂鳴器驅(qū)動電路原理圖

    無源蜂鳴器是一種常見的電子元件,廣泛應(yīng)用于各種電子設(shè)備中,如手機、電腦、家用電器等。它通過電磁感應(yīng)原理產(chǎn)生聲音,具有體積小、功耗低、響應(yīng)速度快等優(yōu)點。 一、無源蜂鳴器的工作原理 1.1 電磁感應(yīng)
    的頭像 發(fā)表于 07-02 18:08 ?7197次閱讀
    無源<b class='flag-5'>蜂鳴器</b>怎么才會響 <b class='flag-5'>蜂鳴器</b>驅(qū)動電路原理圖

    請問用蜂鳴器播放音樂的時候如何同時播放兩段音樂?

    我用 PWM 控制的音樂播放,可以按照樂譜播放音符 但現(xiàn)在有個需求,是在播放背景音樂的時候同時疊加一個前景音樂進去? 各位有什么好的思路嗎?
    發(fā)表于 06-14 08:23

    背景音樂和藍牙進來的音樂,如何共享一個功放和喇叭?

    ,主控芯片(比如FPGA)不帶DAC,沒法將背景音樂芯片和藍牙的輸出DAC在主控芯片內(nèi)部進行切換。 如果背景音樂芯片和藍牙的輸出PWM,似乎主控芯片內(nèi)部可以進行切換,但是功率不夠驅(qū)動喇叭,也沒法通過功放進行功率放大,我的理解功放
    發(fā)表于 04-12 21:15

    蜂鳴器的發(fā)聲原理 蜂鳴器電路圖分享

    蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式
    的頭像 發(fā)表于 02-20 15:07 ?1.4w次閱讀
    <b class='flag-5'>蜂鳴器</b>的發(fā)聲原理 <b class='flag-5'>蜂鳴器</b>電路圖分享

    蜂鳴器的工作原理 蜂鳴器有正負極嗎?

    蜂鳴器的工作原理 蜂鳴器有正負極嗎? 蜂鳴器是一種能夠發(fā)出連續(xù)鳴叫聲的電子元件,通常用于警報系統(tǒng)、電子設(shè)備等場合。蜂鳴器具有很多種類,比如壓電式蜂鳴
    的頭像 發(fā)表于 02-19 14:08 ?3617次閱讀
    RM新时代网站-首页