ARM技术论坛
直播中

青sky

9年用户 1323经验值
擅长:模拟技术
私信 关注
[资料]

在FPGA开发板上实现通过蜂鸣器播放音乐的设计

1、在FPGA开发板上实现通过蜂鸣器播放音乐的设计

本实验是实验七SoC系统准备的外设,为纯FPGA逻辑实验。

本实验目标是通过蜂鸣器播放音乐,音乐选取由拨动开关选择,播放启动由按键控制。

在大拇指安路EG4S20 FPGA开发板上,我们使用蜂鸣器实现音乐播放,因此我们先要了解蜂鸣器奏乐基本原理。蜂鸣器分为无源和有缘两种,有源蜂鸣器内部具有振荡电路,在高电平使能下发出固定频率的声音。无源蜂鸣器内部不带有振荡器,需要使用外部方波驱动,通过编程使方波的工作频率变化,可以发出不同音调的声音。下图是本开发板搭载的无源蜂鸣器,使用FPGA发出方波驱动:

对于一段乐谱,具有音调和节拍两种属性,音调决定音的高低,节拍决定音的长短。音调是由频率决定的,我们可以对时钟进行不同的分频得到;节拍由计数器的计数时间决定,我们可以让计数器计不同的周期的来决定音的长短。

那么我们储存歌曲时,就要储存歌曲每个音符的音调信息和节拍信息,这里我们使用FPGA BRAM进行信息存取。FPGA 存储方式分为Distributed RAM(DRAM)和Block RAM(BRAM)等,DRAM具有由查找表拼接实现、无需时钟、较小的存储应用、相对灵活的特点;而BRAM具有定制的双口RAM资源、需要时钟、较大的存储应用。我们要储存歌曲信息,因此选用较大的BRAM。一个BRAM既可以作为一个36Kbit存储器使用,也可以拆成两个独立的18Kbit存储器使用。可以配置成RAM、ROM以及运用最广泛的FIFO。

原作者:硬木课堂语雀

更多回帖

发帖
×
20
完善资料,
赚取积分