0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的音乐蜂鸣器设计

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2020-11-11 09:48 次阅读

基于FPGA的音乐蜂鸣器设计

设计背景

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器电子产品中作发声器件。在一般设计中,可利用蜂鸣器检测有些按键是否按下,或者有些功能是否正常等,当然如果足够浪漫,也可以让蜂鸣器演奏音乐。


设计原理

本设计使用的是无源蜂鸣器,也可称为声响器,原理电路图如下所示。它没有内部驱动电路,无源蜂鸣器工作的理想信号为方波,如果给直流,蜂鸣器是不响应的,因为磁路恒定,钼片不能震动发音。根据电路图可知,由于 FPGA 的驱动能力不够,这里增加了一个三极管来驱动这个无源蜂鸣器。在驱动时,只需要向蜂鸣器发送一定频率的方波,就可以使蜂鸣器发声。那么应该发送怎样的频率呢?具体则可参考下表(音节频率表)

乐曲能连续演奏所需要的两个基本数据是:组成乐曲的每个音符的频率值(音调)和每个音符持续的时间(音长)。因此只要控制 FPGA输出到蜂鸣器的激励信号频率的高低和持续时间,就可以使蜂鸣器发出连续的乐曲声。在本设计中,由于至芯开发板的晶振为 50MHz,所以我们需要一个一个分频模块(PLL)产生一个较低的基准频率(1MHz)。还需要一个空间储存乐谱,由于乐谱是固定的不需要更改,所以我们选择 ROMIP 核进行存储。基准频率 1MHz 可分频得到所有不同频率的信号。最大的分频比为1_000_000/262/2。既然是音乐,那么就需要节拍,一般采用 4 拍,即音长为 0.25s,所以还需设计一个模块,控制每 0.25s,ROM 地址加 1,。如果需要发送一个低音 1 并维持 1 秒,则只需要在 ROM 的连续四个地址中写入低音 1 的对应信息即可。在设计中为了方便在 ROM 中储存数据,这里数据格式为 8’hAB,其中 A 暂时为三个值 1、2、4,分别表示低音、中音、高音。B 暂时为七个值 1、2、3、4、5、6、7。比如要产生一个低音 1,只需在 ROM中存储 8’h11,如要产生一个高音 7,只需在 ROM中存储 8’h47,以此类推即可。这时,就需要一个解码模块,将 ROM 中的数据还原成音乐发生器所需要的数据。


设计架构图

根据上述的分析,得到如下的架构图

本设计包括 6 个模块,PLL 模块把 50MHz 的时钟信号降到 1MHz,rom 模块存储音乐数据,time_counter 是一个计数模块,产生节拍,每到 0.25s,输出的 time_finsh 变为一个周期的高电平。并发送给addr_gen 模块,产生 addr,让 rom 输出下一个地址的数据。rom 输出的数据 rom_data 输入到 decode 解码模块,将解码后的数据music_data 输入到 music_gen 模块,通过计数器,如果计数器小于music_data 的值,则 beep 保持不变,否则,beep 取反,并且计数器

清 1,从而产生特定的方波频率。


设计代码

time_counter 模块代码如下:

addr_gen 模块代码如下:

decode 解码模块代码如下:

music_gen 模块代码如下:

beep 顶层模块代码如下:

仿真

仿真结果如下:

由仿真图可知:当 rom 输出 rom_data 为 8’h16 时,代表输出低音6,解码后结果 music_data 为 1136,输出的 beep 频率为 440Hz,与实际低音 6 的音节频率表的值一致;当 rom 输出 rom_data 为 8’h22时,代表输出中音 2,解码后结果 music_data 为 851,输出的 beep频率为 563Hz,与实际中音 2 的音节频率表的值相差 24Hz,存在一定的误差,但是不影响乐曲的播放。如果想提高 beep 频率的精度,减小误差,则可以将 1MHz 的基准频率提高。

责任编辑:lq


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603044
  • ROM
    ROM
    +关注

    关注

    4

    文章

    572

    浏览量

    85737
  • 蜂鸣器
    +关注

    关注

    12

    文章

    891

    浏览量

    45923

原文标题:FPGA入门课程 音乐蜂鸣器设计

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    蜂鸣器电压范围怎么判断

    蜂鸣器是一种常见的电子元件,用于发出声音信号。在许多电子设备中,蜂鸣器被用来提供警告、提示或通知。蜂鸣器的电压范围是其正常工作所需的电压范围,对于蜂鸣器的性能和稳定性至关重要。 1.
    的头像 发表于 08-09 10:43 911次阅读

    测量蜂鸣器电压的工具和方法

    蜂鸣器是一种常见的电子元件,广泛应用于各种电子设备中,如闹钟、电话、计算机等。它通过产生声音信号来提醒用户注意某些事件或状态。 第一部分:蜂鸣器的基础知识 1.1 蜂鸣器的工作原理 蜂鸣器
    的头像 发表于 08-09 10:38 672次阅读

    蜂鸣器电路电阻的作用是什么

    蜂鸣器电路中的电阻起着至关重要的作用。 引言 蜂鸣器是一种广泛应用于电子设备中的发声元件,它可以将电能转换为声音。蜂鸣器电路是实现蜂鸣器发声的基础,而电阻在其中扮演着关键角色。
    的头像 发表于 08-09 10:30 710次阅读

    multisim中蜂鸣器怎么连接

    在Multisim中,蜂鸣器是一种常用的电子元件,用于产生声音信号。 蜂鸣器的基本原理 蜂鸣器是一种电子元件,通过电磁感应原理产生声音。当电流通过蜂鸣器的线圈时,线圈产生磁场,使
    的头像 发表于 08-09 10:22 2213次阅读

    buzzer蜂鸣器在Multisim的使用

    在Multisim中,蜂鸣器(Buzzer)是一种常见的音频输出设备,用于在电路中产生声音信号。在Multisim中,蜂鸣器通常用于模拟实际电路中的报警、提示音或其他音频信号。 蜂鸣器的基本概念
    的头像 发表于 08-09 10:20 3781次阅读

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

    以下是关于蜂鸣器的介绍: 蜂鸣器简介 蜂鸣器是一种电子设备,用于发出声音信号。它通常由一个振荡器、一个放大器和一个发声元件组成。蜂鸣器广泛应用于各种电子设备中,如电话、闹钟、汽车、家用
    的头像 发表于 08-09 10:13 834次阅读

    如何让蜂鸣器发出不同频率的声音

    蜂鸣器是一种电子设备,它可以发出声音。蜂鸣器的工作原理是利用电磁线圈产生磁场,使蜂鸣器内部的振膜振动,从而产生声音。蜂鸣器的频率可以通过改变输入信号的频率来调整。以下是如何让
    的头像 发表于 08-09 10:09 1196次阅读

    有源蜂鸣器与无源蜂鸣器的发声原理是什么

    有源蜂鸣器与无源蜂鸣器是两种常见的蜂鸣器类型,它们在发声原理上存在一些差异。以下是对这两种蜂鸣器发声原理的介绍。 一、蜂鸣器概述
    的头像 发表于 08-09 10:04 1204次阅读

    无源蜂鸣器和有源蜂鸣器的对比分析

    无源蜂鸣器和有源蜂鸣器是两种常见的蜂鸣器类型,它们在工作原理、应用场景、性能特点等方面存在一定的差异。 一、无源蜂鸣器 定义 无源蜂鸣器是一
    的头像 发表于 08-09 09:50 1956次阅读

    无源蜂鸣器和有源蜂鸣器的声音区别

    无源蜂鸣器和有源蜂鸣器是两种不同类型的蜂鸣器,它们在声音、工作原理、应用场景等方面都存在一定的差异。本文将介绍无源蜂鸣器和有源蜂鸣器的声音区
    的头像 发表于 07-15 09:42 1783次阅读

    无源蜂鸣器怎么才会响 蜂鸣器驱动电路原理图

    无源蜂鸣器是一种常见的电子元件,广泛应用于各种电子设备中,如手机、电脑、家用电器等。它通过电磁感应原理产生声音,具有体积小、功耗低、响应速度快等优点。 一、无源蜂鸣器的工作原理 1.1 电磁感应
    的头像 发表于 07-02 18:08 7282次阅读
    无源<b class='flag-5'>蜂鸣器</b>怎么才会响 <b class='flag-5'>蜂鸣器</b>驱动电路原理图

    请问用蜂鸣器播放音乐的时候如何同时播放两段音乐

    我用 PWM 控制的音乐播放,可以按照乐谱播放音符 但现在有个需求,是在播放背景音乐的时候同时叠加一个前景音乐进去? 各位有什么好的思路吗?
    发表于 06-14 08:23

    背景音乐和蓝牙进来的音乐,如何共享一个功放和喇叭?

    ,主控芯片(比如FPGA)不带DAC,没法将背景音乐芯片和蓝牙的输出DAC在主控芯片内部进行切换。 如果背景音乐芯片和蓝牙的输出PWM,似乎主控芯片内部可以进行切换,但是功率不够驱动喇叭,也没法通过功放进行功率放大,我的理解功放
    发表于 04-12 21:15

    蜂鸣器的发声原理 蜂鸣器电路图分享

    蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式
    的头像 发表于 02-20 15:07 1.4w次阅读
    <b class='flag-5'>蜂鸣器</b>的发声原理 <b class='flag-5'>蜂鸣器</b>电路图分享

    蜂鸣器的工作原理 蜂鸣器有正负极吗?

    蜂鸣器的工作原理 蜂鸣器有正负极吗? 蜂鸣器是一种能够发出连续鸣叫声的电子元件,通常用于警报系统、电子设备等场合。蜂鸣器具有很多种类,比如压电式蜂鸣
    的头像 发表于 02-19 14:08 3631次阅读