基于DSP芯片设计的一种波形发生器

发布:探针台 2019-09-10 14:05 阅读:2551
Zg_ fec~6q  
Xnpw'<~X  
  要:介绍了一种利用DPS TMS320VC5402和DAC AD7846以及PGA205、PGA103产生任意高精度波形的设计。并提供了具体电路的硬件实现框图以及所需的DSP波形产生程序。 s&TPG0W  
    关键词:DSP ;AD7846;DSP源程序 s +"?j  
通信、仪器仪表和控制等领域的信号处理系统中,经常要使用到正弦波以及其他波形发生器。通常可以通过下述两种方法来产生所需波形。一种方法为使用算法直接产生(如正弦波通过泰勒级数展开得到),这种方法能直接精确地计算出每个角度的波形值,所占的存储空间较小。另一种为查表法,使用这种方法时,如果要有高的精度则要使用很大的表来记录,从而占有较多的存储空间,但是实时性较第一种方法好。我们来主要讨论第二种方法。  ~p<w>C9  
/c6:B5G  
系统框架结构 <BEM`2B  
    该系统主要包括以下几个部分:DSP、DAC、DAC后端低通滤波电路以及两个数字可编程运放PGA205、PGA1039(图1)。系统中DSP采用了TI公司的TMS320VC5402,它有一组程序总线和三组数据总线,高度并行性的算术逻辑单元ALU、专用硬件逻辑片内存储器、增强型HPI口和高达100MHz的CPU频率,可以在一个周期里完成两个读和一个写操作。D/A采用了ADI公司的一种16位、低功耗数模转换器AD7846,实现了高速同步数模转换。可编程增益放大器采用的是美国BB公司的具有低增益误差的PGA205和PGA103,它们可采用 4.5V至18V的电源工作,通过与CMOS与TTL兼容的输入端来设定增益,并能提供快速的稳定时间。 8\P!47'q  
硬件实现 \$$DM"+:;H  
    TMS320VC5402和DAC AD7846是通过VC5402的并行I/O接口来实现数据交换,通过地址线来对AD7846的四个数字逻辑进行控制的。将cs和R/W均置为低电平时,开始向该DAC写数,经过一段延时,将LDAC置为高电平,CLR置为低电平,DAC进行数模转换,最后,将R/W和CLR均置为低电平,即将该DAC锁存器清零。当然,也可以通过CPLD来对其进行控制。具体时序图如图2所示。 IZn|1X?}\s  
    后端运放电路由可编程增益运放PGA205和PGA103串联组成。该运放电路可提供从G=1到G=800的可编程增益放大。增益输入端具体输入值详见参考文献[5]真值表。数字输入端可直接与通用的CMOS和TTL逻辑元件直接接口。逻辑输入端以接地端为基准。如果数字输入端不带锁存器,逻辑输入的改变将立即选择新的增益。逻辑输入的开关时间大约是0.5微秒。增益改变的响应时间等于开关时间加上放大器稳定到与新选择的增益相对应的新输入电压所需要的时间,对于0.01%的精度,当G=10时,稳定时间为2.5微秒,当G=100时,稳定时间为8微秒。本系统中,使用外部逻辑锁存器锁存来自高速数据总线的增益控制信号。使用外部锁存器可以把高速的数字总线与敏感的模拟电路分开。应使锁存电路尽可能远离模拟电路以避免将数字噪声耦合到模拟电路中。 "MOM@4\  
软件设计 !E#FzY!}Pl  
DSP源程序 @vs+)aRa  
.mmregs }Ox5,S}ra  
.global main 5LMAy"  
.sect "MAIN" ?)X 0l  
main: wO.T"x%X  
stm #TAB,AR0 ;指向表头 8`Ih> D c  
tm #167H,AR3 ;设定循环次数 5bBY[qp  
HI_PULSE: sYE|  
ssbx xf {el,CT#  
stm #20H,AR5 n.F^9j+V  
NOP {_C2c{  
LOOP1: 9(eTCe-~6  
NOP Y#7sDd!N|  
BANZ LOOP1,*AR5- ;delay1NOP SI\ O>a 9{  
portw *ar0+,8h ;a1--cs 60ns, a2--r/w 60ns, a0--clr 70ns UXgeL2`;  
NOP >sGIpER7  
NOP bS7%%8C  
NOP QN)EPS:y  
rsbx xf ;ldac(70ns) '0' transferedportw * ar5,3h /3#)  
a0--clr'1' transfere +7E&IK  
NOP <aSjK#  
NOP ON [F  
NOP >= O5=\`  
portw *ar5,7h ;a0--clr(70ns) clr'0' a2--r/w'1' clear dac latch M 5c$  
BANZ TT,*AR3- ;判断到达表尾,调 转到表头 [+;>u|  
stm #TAB,AR0 ;指向表头 djmd @{Djt  
stm #167H,AR3 ;设定循环次数 E/OfkL*\  
B HI_PULSE ;portw *ar5,4h ;a0--clr a0-- clr'0' a2--r/w'1' clear dac latch 8GlRO4yd  
TT: oDW)2*8yF  
stm #20H,AR2 ;Vv.$mI  
NOP cfSQqH  
LOOP2: n~_;tO  
delay2 wDp5HZ>  
NOP ?hBjq  
BANZ LOOP2,*AR2- &+|bAn9AJ  
NOP ;未到表尾 Iw;i ".  
B HI_PULSE xlIVLv6dO  
TAB: SR>(GQ,m0;  
;该表为正弦表值,也 可以改为所需任意波 形表值 *{x8@|K8  
.word 0ff82H, 0ff4bH, 0ff0aH, 0fec0H, 0fe6bH e5 N$+P"  
.word 0fe0dH, 0fda4H, 0fd32H, 0fcb7H, 0fc31H vFwhe!  
.word ………… i4Da'Uk  
.word 0ff82H, 0ffafH, 0ffd2H, 0ffebH, 0fffaH Bi-x gq'z  
.end JO-FnoQK  
芯片测试13488683602 s+0n0C  
系统设计应注意的几个问题 yByxy-~  
AD7846 {&TP&_|H  
    (1)AD7846有单极性(0V-5V,0V-10V输出范围)、双极性( 5V, 10V输出范围)两种工作方式。单极性工作时,需将VREF+接设计所需的正参考电压,而将VREF_接地;双极性工作则需将VREF+ 、 VREF_分别接设计所需的正负参考电压; H"NBjVRU%  
    (2)另由于AD7846有片内集成运放,如果将RIN脚接地,其输出范围为2VREF_~2VREF+;如果将RIN脚与VOUT脚短接,则其输出范围为VREF_~VREF+ 。 7x=-1wbi  
高速DSP系统设计 0g'MF  S  
    (1)高速系统特别是模拟数字混合系统要特别注意接地问题。除了电源端相连外,数字地和模拟地分开。另外,对于高速系统使用大面积地阻抗非常重要。印制电路板最好采用多层布线,其中的一层作为地层,且地层应尽量覆盖到高速器件的下方。 #b,! N  
    (2)妥善解决电源去耦问题对于高速数字系统也很重要。为防止电源输入端的电缆或连线引入分布电感,电源与器件尽量靠近,并在总的电源输入端跨接大容量的去耦电容。 z?<Xx?Kk  
    (3)信号走线时,应避免数字、模拟信号交叉走线,如必须交叉,尽可能直角交叉。尽量采用多层布线,相邻层的走线尽量正交。 bt=z6*C>A  
结束语 A=96N@m6  
    利用DSP强大的运算处理能力,将其与DAC(AD7846)结合在一起(其AD7846由AD1580提供1.25V的参考电压),采用了较多的采样点数,从而实时地产生高精度的波形。该方案既达到了较高的精度又具有较好的实时性,是一种很好的波形发生器。 Qa#Em1co  
^^z_[Ih  
    
分享到:

最新评论

我要发表 我要评论
限 50000 字节
关于我们
网站介绍
免责声明
加入我们
赞助我们
服务项目
稿件投递
广告投放
人才招聘
团购天下
帮助中心
新手入门
发帖回帖
充值VIP
其它功能
站内工具
清除Cookies
无图版
手机浏览
网站统计
交流方式
联系邮箱:广告合作 站务处理
微信公众号:opticsky 微信号:cyqdesign
新浪微博:光行天下OPTICSKY
QQ号:9652202
网站维护:成都光行天下科技有限公司
Copyright © 2005-2026 光行天下 蜀ICP备06003254号-1