前面文章中提到的专为“2022年暑期在家一起练”的高颜值硬禾电子琴:
“暑期一起练”即将开玩的“高颜值”电子琴!
引起了很多同学的兴趣,活动正式发布出来,就有不少同学纷纷下单。在这里顺便给同学们梳理一下要做出这个电子琴需要用到哪些书本知识?设计中要注意哪些要点?
首先看一下这个套件包含了哪些:
1x Piano Kit扩展板,包含了带电路的底板和一块琴键盖板
1x 小脚丫FPGA核心板(Lattice MXO2-C),能够通过Web IDE编程或Lattice官方提供的Diamond软件进行编程
1x Micro USB数据线,前期的活动中,不少同学使用的USB线只能供电,没有数据传输功能,建议在调试的过程中使用我们提供的USB数据线这个电子琴的构成框图:
电子琴的功能框图
多数的电子琴都是通过PWM信号驱动蜂鸣器来发声,实现起来比较轻松,但发出来的声音比较单调。如果能够用模拟的信号来驱动扬声器,通过DDS的方式理论上可以生成任意频率、任意幅度、任意波形的信号,还可以在数字域进行合成、数字信号处理,然后再通过DAC输出成模拟信号推动扬声器来发出声音。
所以通过这个活动,同学们可以在学习了数字电路课程的基础上,通过FPGA的使用,进一步深刻理解数字逻辑和现实世界之间的关系,通过数字信号驱动数字外设、通过模拟信号来驱动模拟外设,并可以通过信号的质量以及仪器观测波形进行对比。
模拟数字转换(ADC)和数字模拟转换(DAC)是连接数字信号和模拟信号之间的桥梁,实现ADC和DAC的方式有多种,在这个电子琴的活动中,我们体会一下如何通过PWM的方式来实现DAC的功能,也就是PWM + 低通滤波器可以将数字信号转换为模拟信号。
这里面还有一个频谱的问题,在固定时钟频率的情况下,通过PWM来做DAC,就需要在产生的信号的频率与分辨率之间进行折中,12MHz的主时钟(在不加锁相环的情况下)要得到相当于10位分辨率的DAC,意味着生成模拟信号的“转换率”最高也就到12MHz/1024~12KHz(落在了人可以听见的声音的范围),这样就决定了外部低通滤波器的截止频率的设定, 要能够有效滤除掉12KHz的转换频率,要模拟电子琴的音调,一般需要用到基频的高次谐波分量,既要能够保证到高频率信号的复现,同时又不能有干扰音的出现,如何取舍?
人的耳朵对于细微的声音差别都能够感知到,10位的DAC是否满足要求?能否用8位就可以?是否需要到12位、甚至16位?
在已经设定好的阶数很低的低通滤波器的前提下,又该如何取舍?有没有其它的办法?
这些都是同学们在一个月的时间里,在这个平台上制作一个“好听”的“电子琴”所需要考虑的。
相信有的同学不会简单止步于做出一个能听到声音的“电子琴”,还会进一步探索更多的声音信号处理的功能,能够模拟出更多不同乐器的声音。
这正是我们这个平台的目的 - 将所学到的理论知识,运用到一个实际的系统中,能够解决在实现的过程中遭遇到的各种挑战,并将其做到尽善尽美。
制作这个电子琴的所有数字逻辑基础模块都可以在电子森林的网站上找寻到,你需要读懂它,消化它,将它们有机组合在一起。
涉及到的数字电路/逻辑的技能及参考设计资源:
按键输入响应、按键消抖:
矩阵键盘键入系统设计
消抖
PWM信号生成:
PWM的应用及相应的Verilog代码
简易电子琴设计
STEP FPGA驱动无源蜂鸣器模块
PWM和1位DAC
音乐盒
DDS信号生成 - 频率的调节、幅度的调节:
DDS生成任意波形的方法及Verilog代码实例
基于DDS的任意波形、信号发生器设计
列出来的这些参考资源都可以在电子森林网站上找到,有详细的说明和源代码。由于微信的限制无法将上述文中的链接进行跳转,大家可以访问这个活动的项目页面,在基本信息中心有这些参考设计资源的URL链接。
原文标题:用FPGA制作一个电子琴中的设计要点
文章出处:【微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !