上个暑假的工作,班门弄斧了。呵呵
基于TMS320VC5402的任意波形发生器
《dsp技术》工程实践报告
设计以C5402DSP作为硬件平台,以C51作为人机界面的控制中心
,两者以HPI并口方式通信,采用DDS产生波形信号波形频率稳定、最高
输出频率为1MHz,频率分辨率高达1Hz。输出波形的种类不受硬件电路的限制,只需改变
波形数据即可产生任意波形
硬件平台
DAC1:TLC7524 10MSPS,8BIT TEXAS INSTRUMENT
DAC2:TLC5615 10KSPS,8BIT TEXAS INSTRUMENT
DSP: TMS320VC5402 TEXAS INSTRUMENT
HOST MCU: AT89C55WD 20K FLASH ATMEL
硬件平台的设计考虑:
1,DSP+单片机的双cpu结构。由单片机管理系统级事务,包括DSP代码加载,参数传递
,上位pc机RS232通信,键盘和显示界面的管理。而DSP专司需要高速运转的功能。
2,系统最简洁。Dsp外边没有挂任何RAM,FLASH。TMS320VC5402内部提供的16K×16bit的
SRAM已经可以满足设计需要。
3,不考虑I/O电压3.3V~5V的适配:主机AT89C55通过C5402的HPI接口相互通信。二者的
I/O电压标准不通(AT89C55为5V CMOS 电平,VC5402为3.3V CMOS)按照TI的建议,应该
在二者之间加入电平转换芯片,如16245之类。但是实践表明,不加也照样能正常工作!
4,低成本电源设计,如果按照TI的代理商成都合众达的推荐,电源该使用专用的TPS74
H318...,考虑这东西要卖近40rmb,所以选择LM317T这样的传统廉价稳压芯片,实践中
也能正常工作。
5,代码加载方式采用HPI加载。考虑的出发点是:DSP的代码code究竟应该放在哪儿呢?
必须专门搞一块FLASH吗?看看合众达推荐的FLASH,价格不便宜不说,还都是PLCC封装
的,到时候怎么用编程器来烧写?(难道非要做一个PLCC-DIP的转接插座?)最后,硬
件设计者认为:1,本系统业已通过HPI接口2,系统主机AT89C55拥有多达20k byte的FLAS
H。所以采用了HPI引导夹杂的方式。
6,系统设计的难点有3:1,高速的dds算法的实现,要追求最短的循环周期,结果我们
的dsp软件设计人员写出的代码需要10个指令周期,即dds系统的参考时钟频率大概为10
Mhz。2,C5402的代码加载,步骤之一是解析CODE COMPOSE STUDIO输出的.out文件,提
取出TI的技术文档上所谓的"存储器映射",然后一个word一个word地写入C5402的片上R
AM的对应位置。当然,TI的网站上提供了这个工具软件,大大的方便了我们的设计。3,
PCB的设计,前面提到过本dds系统的参考时钟频率是大概10MHZ,这就等于说,C5402的
片外总线的工作频率也是这个数。印制电路板的设计上要适当考虑一些所谓"高速pcb设
计""信号完整性""电磁干扰"之类的问题,这些我都不太懂,于是就只制订了一些粗浅的
布线原则:
1, 走线尽量短
2, 电源线和底线尽量粗
3, 在靠近C5402的电源引脚的地方加0.1UF的电容
板子实际上工作还是比较稳定的。呵呵
系统功能的分层实现和软件的规划:
分层的设计显然可以提高设计效率。
Dsp软件开发人员完成的dds算法,实际上是在一个死循环中运行,直到主机来通过HPI来
中断它。所以C5402在系统中可以看作AT89C55的外设。
这时,单片机的软件开发和DSP的软件开发实际上是并行的。当然DSP程序开发人员要告
诉MCU开发人员:"应该在什么地址放什么参数"。
仿真机的利用:
dsp教研室的杨炼和向超老师为我们提供了热情的指导和无私的援助。特别是
他们借给了我们一台spectum digital的XDS-510PP plus JTAG仿真机。实践中证明它可
以帮我对付一些意想不到的低级错误(有些时候这种错误来自DSP软件程序员工作的疏忽
)。
开发中出现过的麻烦:
1, 调试过一半的时候,我在系统上电的情况下把板子在桌子上移动了一下,那片c540
2立刻开始剧烈发烫,以至于无法再上电检查。拆卸下来后,测量起I/O电源引脚和GND间
的电阻,竟然小到5欧姆左右(不发烫才怪。。。),但是该芯片的损坏原因至今我也没
有想明白。可能是移动中把I/O短路了吧。。
2, 首先说点题外话:"成都这地方买芯片真的挺麻烦的。。。"系统所用的TLC7524是电
流输出型DAC,需要用运放转换为电压输出。我对运放不熟悉,一开始用NE5532之类的低
速运放,高频的响应一直不理想,正弦波到200khz以上就开始变形,频率越高波形越变
态。后来找同学接了AD8032,AD818,这两个比NE5532快多了,后者还是视频运放,可惜
的是,他们以上去就自激。只好权且让NE5532暂居该重要位置。这个问题拖到最后都没
有解决。。。
3, AT89C55的P1口做I/O的时候要加外接上拉电阻,刚开始的时候忘记了这个,所以HP
I的通信程序耽误了很久。。。。
--
1楼
0
0
回复