我的一点经验
扫描二维码
随时随地手机看文章
首先是整个系统的设计,大多数的应用应该都是包括电源,外部ram,flash,dsp,外部IO芯片看门狗,晶振这几个部分。
电源芯片的选择要看整个设计中需要几种电源,整个系统的功耗要大致计算一下,同时还要区分模拟电源与数字电源,我用了两个LM1085分别作为数字电源和模拟电源,dsp的电源用了一个tps318。
ram,flash,IO芯片的连接按照地址总线和数据总线连接好就可以了,它们的片选和读写线接到cpld上面,根据dsp芯片的程序空间与地址空间的划分分配好flash,ram的映射关系。这个空间的划分会体现在硬件的连线上,cpld控制的片选,读写逻辑实现,以及dsp编程中的memorymap中。
MP/MC的接法:
刚开始做的时候,我把MP/MC接地了,有的人告诉我说要划线了,应该做成跳线。幸亏我后来试了一下,发现还是可以调试的。我感觉MP/MC接高接低,影响的是系统的复位,如果接低,复位时要求bootload,调试时当让不可能成功,于是程序就会挂掉。但如果在调试程序中合适的加入喂狗操作或者暂时不接看门狗,调试应该就没有问题。如果MP/MC接高,复位时程序直接从程序区执行,不进行bootload,也没问题。
flash的烧写:
调试都完成了,最后一步就是将程序烧进flash中,花了一周功夫终于搞定,呵呵,还是在别人写的代码基础上,够菜的了。我用的方法是将板上的程序和flash烧写程序分别生成两个.out文件,先利用ccs的load programme,将板上程序load进来,然后再load进flash烧写程序,两个都load进程序空间由于我的程序比较小,放在程序与数据区共享的dram区了,然后执行flash烧写程序,就可以将boot表写进flash中了。
还有一些小地方,比如flash要在bootload后从数据区去掉,我用的是xf管脚,上电默认为高。bootload完毕我在程序起始的地方用软件置其为低,就可以实现了,不知道还有没有更好的方法。对于IO的操作,以及vectors.asm, cmd文件的编写,我都是找个例子看,然后结合自己的程序改了一下。
感觉还是有进步,但很多地方也还是没有搞的特别清楚,说的不对的请大家指正,希望能和大家多交流!
如果需要我的程序或电路图,可以联系我。sr_sleeper@sohu.com