您的位置:控制工程论坛网论坛 » 电机与运动控制 » 与dsp的第一次亲密接触

jiewinds

jiewinds   |   当前状态:离线

总积分:200  2024年可用积分:0

注册时间: 2003-05-12

最后登录时间: 2007-01-25

空间 发短消息加为好友

与dsp的第一次亲密接触

jiewinds  发表于 2005/12/28 13:27:11      3153 查看 4 回复  [上一主题]  [下一主题]

手机阅读

上个暑假的工作,班门弄斧了。呵呵 基于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 回复
总共 , 当前 /