写这篇东西,主要还是要发泄心中之不爽,毕竟debug不出来很影响食欲和心情,也没心情陪妹纸了。
一个月前,师兄便开始带我fpga,先让我驱动个dds作为训练。由于暑假的原因,就停停放放的,在家先把VHDL简单过了一遍,又反复研究了一下AD9854的datasheet。什么寄存器啊,时序啊都了解的差不多了。一个星期前开始着手编。
但是菜鸟不会重头编啊,所以先拿了一个网上的驱动程序,根据板子的实际电路对程序作了修改。感觉不是很难吧,但示波器木有一丁点现象啊,芯片却在发热。然后我就开始一点一点的改啊,改了一段时间,仿真器出了点问题。这个学生版的usb-blaster也太弱了吧,于是上淘宝买了个企业版的,等了两天。
重新拿到好的仿真器,就又开始改一点,测一点。最后实在没啥好改了,就是出不来现象。于是屁颠屁颠去跟学长讲。
学长人真好,给我讲了点经验,然后给了我个程序跑跑看。我一看,我去,快一千多行代码了,还分三个文件,写的还有点乱。我就静下心来开始读程序,边读边注释。其中有一段时钟管理的程序实在是看不下去了,就想,先跑跑看吧,我到现在都不知道现象是什么。结果真是出乎我意料,居然没现象。
一方面,我和学长讲,给我的程序好像没法用,另一方面我又写了另外一个版本的状态机程序,结果调啊调,还是出不来波形,我tm都快调吐了。
今天我学长突然和我说有现象了,叫我去看。我还真是在他那看到了现象,这还是我第一次看到这块芯片应有的现象。他说改了个分频的时钟,再拿去试试看吧。然后我考了程序,新建工程,ctrlc-ctrlv文件,然后经过一系列的编译出来sof文件,烧到板子里。结果又瞎了我,还是没现象!