当我们想做一个东西,不管是一个项目、题目还是想DIY,都不可避免的要经过一下几步: 1:确定方案。 比如说一个“电子琴”的题目(感觉小儿科了哈),说白了就是一个按键发音的东东;如果想再扩展功能,比如加个播放音乐的功能,则可以加个语音存储芯片;再扩展,加录音,无非是加个mic和外围电路。好了,能实现按键发音的电路有那些呢?比如RC震荡电路,NE555振荡器,单片机或FPGA的PWM,或者用DA、DDS芯片。那播放音乐呢?有的模拟语音存储芯片,比如门铃、大喇叭上用的那种,具有记忆功能,但是时间比较短,只有几秒钟至一分钟,而且随着时间增加声音质量会下降;单片机和FPGA自身的存储可以存几首音乐(PWM控制频率);ISD系列芯片与单片机简直是完美配合~;而用DA或者DDS则需要更大的存储空间。还有录音呢?这个用模拟语音存储芯片或者ISD芯片和单片机的组合,或者AD芯片,数据存储芯片加单片机或FPGA的组合。 这么多方案,到底用哪个好呢?这就要从目的、资源和时间限制、自己能力与爱好等几个方面考虑了。如果是为了尽快完成一个小的电子设计,那么可以选择ISD芯片加单片机的组合;想做的快,而且控制成本的话,并且有些指标不是很严格,那就选择单片机的PWM方案;如果是为了练习、学习单片机或者FPGA,那么推荐AD、DA加存储芯片的组合~balabalabala~还有一点就是自己手边有神马,会神马,就用神马。
2:概要设计。 假设我们选择了FPGA加存储器加ADDA的方案。确定了方案之后,就开始了方案的初始设计和初期准备工作。比如芯片型号选择、购买,模块的准备,程序流程设计,电路图的初始设计。为了保证音质,我们选择位数较高的ADDA芯片,比如12位,而带宽的话只要高于几十K就可以满足条件,此模块我们可以自己做。FPGA和存储芯片最好就用现成的开发板或者核心板,因为自己做的话代价太大。语音信号在模拟电路传输最好能去噪音,做个带通滤波器,此处低频信号用有源滤波器比无源滤波器要简单,并且做成可控增益类型的话方便调试,可以选择用集成运放设计(UA741,NE5532等都可以)或者用专用滤波器芯片(如LTC1068,MAX261)搭建有源滤波器。好了,我们用软件仿真设计了一个(或者直接在网上搜索到一个)300Hz到3KHz的滤波器。电路有了,该考虑接口的问题了,虽然说FPGA的IO口绝对够用,但是开发板的用户IO口还是要好好合理安排下,这样可以尽量多用排线,减少飞线使用量。好吧,开始设计电路图,开始写代码~
3:详细设计。 好吧,每个芯片的datasheet那是必须要有的,除非你用的灰唐叟练~滤波器方案有了,只要做好后调试就行了,用信号源+示波器来测量频率特性如何,这也是常规的方法。电阻,电容神马的准备好,因为要换个不停。另外要把测试数据记录下来,以方便调试。ADDA则直接按datasheet上面的电路来就行,注意与滤波器的阻抗匹配等,另外要注意AD的输入范围,看要不要增加前置增益调整电路。DA输出经运放后是一个音频功放电路,有LM386或者分立元件功率放大器的方案,个人感觉LM386电路比较简单,现成资料也有很多。 数字电路,模拟电路的电源要做好处理,在两者之间隔一个π型滤波电路或者用不同电源;地最好用大面积覆铜,模拟地,数字地也要分开隔离,各自成一块,最后分别用0Ω电阻连接到电源地上;每个IC,不管是模拟还是数字的,IC电源入口处要加个小的滤波电容(0.1μF),电路的总电源入口要加一个大的电容(十μ级),可以再并联一个小的(0.1μF)电容。布局尽量紧凑,信号线最好不要回折或者弯曲,如果需要弯曲角度不要小于135°,或者用arc(弧线);电源线粗一些,信号线细一些;电源线离信号线不要太近,两者平行距离要拉开或者中间用地覆铜隔开,离得近的地方与信号线成90°角影响最小;并排的数字信号线不要拉太长,以免相互干扰(高频时尤其注意),可以用IDC排线,插口单侧弄成接地的,可以很大的消除相互干扰。
4:硬件实现 我们做板子可以做几个模块,调试好之后用飞线(杜邦线)连接,也可以一块板子直接搞定,但是为了调试方便,最好把每两级之间留出接口,比如先用两个排针和短接帽暂时连接,全部调试好了之后再换成零欧姆电阻,相比来说,后者要好一点。于是,电路图画出来了,PCB画好了,板子腐蚀好了,焊完了,不带电测试(连通性)也搞定了,滤波器调试上面我们已经说过,略去。这时几个基本的测试程序应该已经搞定了,开始调试。AD的测试则是给其输入模拟信号,把数字信号送入FPGA后,用PC上的软件仿真波形。DA测试也差不多。音频功放电路就更简单了,上mp3。。。
5:软硬件联调 最后,也是最蛋疼的了。。。开始软硬件联调,期间会遇到各种各样的问题,也开始了硬件和软件设计者的相互扯皮。。。耐心!上电之前看好正负极、电源地,排线是否插反(这些做好标记,或者用配套的排线与接口,不会接反的那种~);上电之后先看整体是否运行正常,再开始运行功能;调试开始了,每一种异常现象,或者非理想状态都要记录,回头调整。别的也想不起太多了。
6:其他注意事项。 不要不停地更改方案,尤其是电路方案;编软件的不要提不切实际的要求,或者对硬件者指手画脚;硬件者一定把所有注意事项都列出,指明,做的东西越方便调试越好;交流很重要;相互信任!做好自己该做的事!就像海贼王里那样,每个人都是值得信任的,可以托付的,自己做好自己的那份就行了! 慢慢的,合作着,我们会理解团队合作的概念和意义;慢慢的,分工着,我们会理解工程的概念和意义;慢慢的,摸索着,总有一天我们会走出自己的路!
|