[讨论] 用verilog写一个24键电子琴(FPGA)

h-wide   2016-7-16 12:11 楼主
1.基本要求:
1)具有一般弹奏功能,音量可变(至少两档)
2)自动播放功能
3)数码显示音符功能
4)制作稳压电源(作品最终使用实验器的9V电源适配器)
2.发挥部分(自由选做)
1)在器件资源允许的条件下,能通过选择键在多首歌曲中选择播放。
2)输出加功率放大
3)用EPM570内部的Flash增加歌曲容量
4)增加音效或节拍可调


回复评论 (15)

这是给大家出题目啊
training
点赞  2016-7-16 12:59
1.基本要求:
(1)具有一般弹奏功能,音量可变(至少两档)

这个是的支持24个输入啊,FPGA入门级的片子也能支持这么多,   要处理下每个键的滤波,verilog弄着这个没问题---写一个,调24个,或者用软件处理也行,GPIO+SPOC。


  音量,要可变,且要两级,不考虑需求变化,简单的 x1, x0.5 用移位寄存器即可实现。
  考虑以后需求变化,保险点还是弄个 乘法器吧。


MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 15:52
1.基本要求:
2)自动播放功能
  这个的把曲子存在ROM里面,记录个地址和长度啥的,
  在怎么自动,也的有个开始和停止吧,总不能 电插上去一直唱停电吧
  这个曲子的保存地址和长度,开始和结束 ,最好用 软件记录,这样以后修改方便。
用硬件做也可以,直接用DFF选,或者用ROM选



MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 15:57

1.基本要求:
3)数码显示音符功能

  这个 音符显示 又好多种, 总不能1234567吧,总共24个键了
  用LCD显示,可以,小型的图像生成来了,
  用了LCD的来个滚屏啥的。捉急不来哈
  奥,要不这样吧,画个24个键的彩色画,用 24 个LED在上面或背面显示,搞定了
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 16:01

1.基本要求:
4)制作稳压电源(作品最终使用实验器的9V电源适配器)

9v可以啦,9v DC-DC生成 3.3v, 2.5v等等,供应给FPGA等弱电,OK的
另外的有喇叭 🎺啥的接上来啊,驱动来个 power ic 啥的,9v就不要客气啦,直接接上去
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 16:05
2.发挥部分(自由选做)
1)在器件资源允许的条件下,能通过选择键在多首歌曲中选择播放。
  这个,还是ROM存音乐,在用 hdl 管理,地址和长度表,能够选择哪个就放那个,
  用 case 语句吧,case行数不要太多,16个之内吧

  这里 选择键,选曲子键 它们也是键,
  做个简单的 dipsw 或者 左右选曲啥的

MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 16:11
2.发挥部分(自由选做)
2)输出加功率放大

  输出功率放大,这个的用 power ic, 注意要散热!!
  模拟信号输入的就不考虑了,直接上 I2S 输入的那个 power ic
  这个网上一搜一堆,这里给楼主截个图,好有个参照

  • power ic.png
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 16:18
2.发挥部分(自由选做)
3)用EPM570内部的Flash增加歌曲容量
  这个没啥好说的,有多少资源,楼主请用吧
4)增加音效或节拍可调
  这里一个 “音效”,让我困惑的不行,这个范围太大了,没有具体的,咋整啊
  重低音,高音强化,适合女人听。。。

  节拍可调,这个是指当个音符的播放时间吧,
  要调节几段,用什么 键,按钮通知内部了。。。

MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 16:27
楼主你好,跟你说了这么多功能的事情,看着好玩 哈有个最重要的你的先考虑好了。

那就是 你的FPGA用什么 时钟,就是 你的 声音path 的时钟,
用多少M是你想要的了。 CD音质的话, 44.1khz * 32 bit * 2CH ,你自己算下哈

定下来,时钟,你应该可以开动了。

祝你成功!!
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-16 16:33
楼主给多少钱写这个程序?至少得1K吧?
点赞  2016-7-17 16:37
楼主,你好,
老实说,找100%满足你要的代码,需要花点时间

分开找,自己整合吗,可能容易些。

这里有个 I2S 的代码
http://ebrombaugh.studionebula.com/synth/audiodac/index.html
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-17 20:07
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-17 20:15
楼主,你好

在坚持不懈的寻找,找到了这个,代码都在里面,解说也有。
助你完成毕设也好,写项目也好,应该有些用
http://web.mit.edu/6.111/www/f20 ... ct_Final_Report.pdf
  • mit.png
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-17 22:04
这是一个版主写的,跟你要求不是 100% 满足,思路接近

炼狱传奇-音乐播放器之战
https://bbs.eeworld.com.cn/thread-479258-1-1.html
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-7-17 22:11
我当时做过一个类似的东西,是用了stm32+触摸屏,,,然后触摸屏上面有1-7高音,中音,低音,然后输出的话,是用了5个io口,就足够了,然后fpga的音乐程序在网上有,很简单,10多行,然后fpga通过检测32发送过来的按键数据就可以演奏了,希望楼主可以参考
世间万物皆系于一键之上~
点赞  2016-7-18 10:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复