| 探针台 |
2019-09-10 14:05 |
基于DSP芯片设计的一种波形发生器
}xZR`xP( `SDpOqfIrP 摘 要:介绍了一种利用DPS TMS320VC5402和DAC AD7846以及PGA205、PGA103产生任意高精度波形的设计。并提供了具体电路的硬件实现框图以及所需的DSP波形产生程序。 #2*l"3.$.R 关键词:DSP ;AD7846;DSP源程序 w>-@h>Ln 在通信、仪器仪表和控制等领域的信号处理系统中,经常要使用到正弦波以及其他波形发生器。通常可以通过下述两种方法来产生所需波形。一种方法为使用算法直接产生(如正弦波通过泰勒级数展开得到),这种方法能直接精确地计算出每个角度的波形值,所占的存储空间较小。另一种为查表法,使用这种方法时,如果要有高的精度则要使用很大的表来记录,从而占有较多的存储空间,但是实时性较第一种方法好。我们来主要讨论第二种方法。 k'O^HMAn! \o-9~C\c* 系统框架结构 {wUbr ^ 该系统主要包括以下几个部分: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兼容的输入端来设定增益,并能提供快速的稳定时间。 iBCZx>![; 硬件实现 ckn0I TMS320VC5402和DAC AD7846是通过VC5402的并行I/O接口来实现数据交换,通过地址线来对AD7846的四个数字逻辑进行控制的。将cs和R/W均置为低电平时,开始向该DAC写数,经过一段延时,将LDAC置为高电平,CLR置为低电平,DAC进行数模转换,最后,将R/W和CLR均置为低电平,即将该DAC锁存器清零。当然,也可以通过CPLD来对其进行控制。具体时序图如图2所示。 -D=J/5L#5 后端运放电路由可编程增益运放PGA205和PGA103串联组成。该运放电路可提供从G=1到G=800的可编程增益放大。增益输入端具体输入值详见参考文献[5]真值表。数字输入端可直接与通用的CMOS和TTL逻辑元件直接接口。逻辑输入端以接地端为基准。如果数字输入端不带锁存器,逻辑输入的改变将立即选择新的增益。逻辑输入的开关时间大约是0.5微秒。增益改变的响应时间等于开关时间加上放大器稳定到与新选择的增益相对应的新输入电压所需要的时间,对于0.01%的精度,当G=10时,稳定时间为2.5微秒,当G=100时,稳定时间为8微秒。本系统中,使用外部逻辑锁存器锁存来自高速数据总线的增益控制信号。使用外部锁存器可以把高速的数字总线与敏感的模拟电路分开。应使锁存电路尽可能远离模拟电路以避免将数字噪声耦合到模拟电路中。 E
P1f6ps 软件设计 @VdkmqXz DSP源程序 9o)sSaTx= .mmregs zK Rt\;PW .global main M%(B6};J .sect "MAIN" 2xPkQOj3 main: /j7e
q stm #TAB,AR0 ;指向表头 g.L~Z1- tm #167H,AR3 ;设定循环次数 isU7nlc! HI_PULSE: 12 {F ssbx xf X#;n Gq)5 stm #20H,AR5 8 $5
y]%! NOP c@SNbY4}% LOOP1: k2bjBAT NOP Z;=h= BANZ LOOP1,*AR5- ;delay1NOP Zv[D{ portw *ar0+,8h ;a1--cs 60ns, a2--r/w 60ns, a0--clr 70ns ]~a;tF>Fw
NOP p\;\hHai NOP hc"l^a!7ic NOP TJYup%q rsbx xf ;ldac(70ns) '0' transferedportw * ar5,3h [{!K'V ;a0--clr'1' transfere EY$Dtb+g8 NOP [z:.52@! NOP 9Hu;CKs NOP ko-3`hX` portw *ar5,7h ;a0--clr(70ns) clr'0' a2--r/w'1' clear dac latch "0*yD[2 BANZ TT,*AR3- ;判断到达表尾,调 转到表头 h#hx(5"6 stm #TAB,AR0 ;指向表头 ;2#9q9( stm #167H,AR3 ;设定循环次数 fnXYp
! B HI_PULSE ;portw *ar5,4h ;a0--clr a0-- clr'0' a2--r/w'1' clear dac latch -FOn%7r#Y TT: ]izrr stm #20H,AR2 %rFR:w`{ NOP }na0 LOOP2: ^"dVz. ;delay2 -JKl\ E NOP }Z/[ " BANZ LOOP2,*AR2- N_:H kI6 NOP ;未到表尾 .2Q4EbM2 B HI_PULSE t]3> X TAB: v9,<2 ;该表为正弦表值,也 可以改为所需任意波 形表值 ]iU8n (5f .word 0ff82H, 0ff4bH, 0ff0aH, 0fec0H, 0fe6bH Fe[)-_%G .word 0fe0dH, 0fda4H, 0fd32H, 0fcb7H, 0fc31H vU,V[1^a .word ………… ~mF^t7n] .word 0ff82H, 0ffafH, 0ffd2H, 0ffebH, 0fffaH -(dtAo6 .end 8AjQPDn+ 芯片测试13488683602 Y9/`w@"v 系统设计应注意的几个问题 n1!}d%: AD7846 "|Ke/0rGB (1)AD7846有单极性(0V-5V,0V-10V输出范围)、双极性( 5V, 10V输出范围)两种工作方式。单极性工作时,需将VREF+接设计所需的正参考电压,而将VREF_接地;双极性工作则需将VREF+ 、 VREF_分别接设计所需的正负参考电压; "L0Q"t: (2)另由于AD7846有片内集成运放,如果将RIN脚接地,其输出范围为2VREF_~2VREF+;如果将RIN脚与VOUT脚短接,则其输出范围为VREF_~VREF+ 。 cv{icz,%w 高速DSP系统设计 f7lt|.p (1)高速系统特别是模拟数字混合系统要特别注意接地问题。除了电源端相连外,数字地和模拟地分开。另外,对于高速系统使用大面积地阻抗非常重要。印制电路板最好采用多层布线,其中的一层作为地层,且地层应尽量覆盖到高速器件的下方。 {gC?kp (2)妥善解决电源去耦问题对于高速数字系统也很重要。为防止电源输入端的电缆或连线引入分布电感,电源与器件尽量靠近,并在总的电源输入端跨接大容量的去耦电容。 B_uhNLd (3)信号走线时,应避免数字、模拟信号交叉走线,如必须交叉,尽可能直角交叉。尽量采用多层布线,相邻层的走线尽量正交。 \?D~&d,a= 结束语 oSf6J:?*e 利用DSP强大的运算处理能力,将其与DAC(AD7846)结合在一起(其AD7846由AD1580提供1.25V的参考电压),采用了较多的采样点数,从而实时地产生高精度的波形。该方案既达到了较高的精度又具有较好的实时性,是一种很好的波形发生器。 A=Y A #0 AqA.,;G
|
|