【制版时间】2008.5
【功 能】FPGA完成信号预处理,DSP完成后端信号处理算法,根据处理的结果对设备进行控制。
【系统资源】
1.使用TMS320C6713,最高运算速度达到1350MIPS;
2. 板载CYCLONEII FPGA ,EP2C35F484I8;
3. 提供FPGA配置芯片EPCS4;
4. 2M Bytes 大容量FLASH,AM29LV160;
5. 4片32M*16 bit SDRAM,100M工作时钟,最高工作频率133MHz;
6. 外部电源输入,专用稳压芯片,提供+3.3V、+2.5、 +1.2V可靠电源;
7. 板子四周留出螺丝固定孔,便于加固。
8. 尺寸90 * 55 mm。
9. 最高时钟频率为200M。
10. 6层板制作工艺,稳定可靠!
【描述】
这个小板断断续续做完的,没时间啊。
做这个板卡目的一个是某个项目需要,另外就是我自己想玩玩DSP,所以自己就作了一块这块处理板卡,期间又经常出差,所以只能抽时间画原理图和PCB。^_^。板子做好后又放了一段时间,抽出时间来调试。周一开始弄,哎,这一开始调试就遇到麻烦,首先是仿真器就连接不上,由于从来没做过DSP,所以很多东西不懂,以为就象msp430仿真器一样,连上,然后运行开发软件,下载就可以了,^_^,不是这么简单的,让我同事帮我弄了弄,^_^,明白了。主要是并口的IO地值设置成0x378,还有要注意仿真器上的跳线要是JTAG。重大失误,竟然没有把DSP的RST信号拉到FPGA上了,郁闷!!!没办法,只好飞线了,DSP可是GDP封装的,还好的是rst信号在最外一圈,焊了根线进去,ok,搞定!我想可能也就我这么干过,竟然飞线进到GDP封装芯片里。好了,赶快拿程序去烧,结果,晕!load不进去!搞了半天还是办法!突然灵光闪现,可能和FPGA的flash管脚配置有关,将DSP连到FPGA中的信号管教仔细对了一边,输入输出不能搞错,ARDY信号拉高,NMI信号拉高,flash的OE_,WE_等信号正确对应DSP信号,编译FPGA程序,下载,再用CCS去load 文件,^_^,终于看到了下载过程......,高兴啊。这搞定已经是周三了。好,接着赶快测试SDRAM,我的上面有4块SDRAM,2片组成一对32bitSDRAM。SDRAM测试说起来简单,就是把数据写入到SDRAM里,然后再读出来同元数据比较,如果一致那当然就是正确的,要写满整个SDRAM空间。第一组SDRAM顺利通过。可是第二组就有问题了,怎么都写不仅去,开始怀疑片子没焊好,测试了一便,没有虚焊或短路啊,同第一组SDRAM区别就是:CE0是直接连到第一组的SDRAM上的,而第二组是从FPGA中连过来的,用CE2分配过来,还有区别就是第一组SDRAM用的型号同第二组的型号在后坠上有区别,一个标注是D,一个是M。参数上有点区别。所以开始怀疑是不是DSP上的SDRAM控制器上的参数设置有问题,开始调整参数,结果发现能够把数据写进第二组SDRAM,只是有些地值是错误的,无意中调整了SDRAM的时钟,降低频率,竟然成功了。时间紧张,先不追究原因了(估计是没有做等长?频率高,时序是有点问题?),赶快测试FLASH,flash稍微复杂些,周五整了个程序弄了弄,不行,怎么都没有数据写进去,还是好好研究研究flash的文档把。毕竟没弄过,终于发现了问题,关于地止移位的。研究完毕,注意DSP中对flash的配置。
真正感觉有点麻烦的是利用flash实现对DSP程序的加载。
之前调试一直使用的是CCS加载方式调试DSP,基本上实现了所需要的功能.当初以为从外部FLASH加载程序应该是很简单,这当然是要在基于FLASH已经调试通过的基楚上.可是真正要实现的时候问题来了,阅读TI的文档:在RST信号后,DSP会自动拷贝FLASH起始地址1K范围的数据,如果程序超过1K(一般程序都会超过的!),就需要一个二次引导的程序,也就所说,DSP上电后,先把这个二次引导程序(你可以理解就是个copy程序)拷贝到DSP的RAM中,然后运行这个类似于copy的程序,其目的是把地址0x400以后的数据拷贝到DSP相应的RAM中.,然后再来一条调转指令,跳到_cint0的位置,也就真正程序的入口地址开始执行.理解起来简单吧,实现,^_^,需要好好下点功夫了.这需要好好理解map文件中各个段的分配情况,还有需要自己写好可以烧写flash的一段程序.最重要的就是你的二次引导程序,汇编语言编写.另外就是如何表明程序加载到DSP上并执行了呢,这个就简单了,程序里加上一句点亮板子上的小灯就可以了.经过2天的努力,当加电后,看到板子上的小灯闪烁,我的心情,^_^,高兴!
关于加载的,我也参考了网络上的程序,不过没有一个拿来能用的,哈。但确实给了我很好的参考,现在有网络就是好啊。
这个板卡目前已经改版,增加了温度测量啊,扩展外部接口啊,啥的。用在某设备上还是挺稳定的。