花生漫画

关于DDS的一些看法(原创)

0
阅读(4439)

AD9833这一款,和AD9850相比,我觉得AD9833更好用些。在做一些信号发生器之类的时候,一般情况下会考虑DDS技术,DDS全称DDFS(Direct Digital Frequency Synthesizer)即直接数字频率合成器,实际上是一种分频器:通过编程频率控制字来分频系统时钟(SYSTEM CLOCK)以产生所需要的频率。DDS有两个突出的特点,一方面,DDS工作在数字域,一旦更新频率控制字,输出的频率就相应改变,其跳频速率高;另一方面,由于频率控制字的宽度宽,频率分辨率高。其原理图如图1所示:

            图1  DDS的内部工作原理图

频率控制字和相位控制字分别控制DDS输出波形的频率和相位,相位累加器是整个波形产生的核心,它有一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲,相位寄存器以步长M增加,相位寄存器的输出与相位控制字相加,其结果作为波形查找表的地址。波形查找表由ROM构成,内部存有一个完整周期的波形的数字幅度信息,每个查找的地址对应波形中0°~360°范围的一个相位点。查找表输入的地址信息映射达成波形幅度信号,同时输出到数模转换器的输入段,DAC输出的模拟信号经过程控滤波器,可得到一个频谱纯净的波形。下面以AD9833为例,说一下使用情况:

上面的图就是芯片AD9833,有10个引脚,贴片封装,一个通道输出波形即引脚10vout,时钟提供由有源晶振负责,最高接40M(我当时接的是24M,效果很好,而且输出波形频率很好计算),接到引脚5MCLK上,VDD供5V电压,在引脚2和9间加两个电容,分别为0.1uf和10uf,在引脚3,4之间加一个104电容,即0.1uF,引脚9为模拟地,引脚4为数字地,要把它们俩接在一起,并连到地,保证共地,其内部有一个10位的DAC,这样就可以通过数字输入就可以产生模拟信号了。最主要的使用是引脚6,7,8,这三个引脚连接到单片机上的,(我当时为参加比赛使用的是凌阳单片机,这个可以根据需要选择),串行方式,相当于SPI总线协议,将其分别接到三个IO口上控制,其时序图如图3 所示:

                    图3 时序图

按着上面的时序图,先把控制寄存器相应位置好,再往28位频率寄存器中置数(如果对相位需要的话,也可以设置相位,原理都一样,只是频率寄存器为28位,而相位寄存器为12位)。其中,控制寄存器是16位,往控制寄存器中置位时,D15和D14这两位要置0,D12和D13这两个配合着用,如果D13置为1,则往28位频率寄存器写数时先写低14位,再写高14位(这里为什么是14位?是因为16位数前两位作为功能控制位,剩下的14位为发送的数据),发送数据时,前两位应该置成01,作为写控制寄存器和频率寄存器的区别(往相位寄存器置数时前两位置11),如果D13位置0,那么28位频率寄存器就分成两个独立的14位寄存器,这种情况是在只需要14位寄存器就够的条件下进行的,方便用户的使用,D12只有在D13置成0的情况下有效,区分是使用哪个独立的14位寄存器。D11和D10为频率和相位寄存器的选择位,是选用哪个频率寄存器,哪个相位寄存器,分别都有两个可以选择,D5,D3,D1这三个位很关键,决定输出的波形,D1位即Mode,该位为1即输出三角波,为0输出正弦波,另外有一些保留位需要置0,如D9,D4,D2,D0等。

先说这些吧,AD9833这个芯片还是很好用的,特别是用它做一些信号发生器之类的是作为首选的,如果直接用单片机来完成波形的发生及选择,还是比较麻烦的,而且波形效果不佳,该芯片就很好的解决了这个问题,在参加一些电子类的比赛中,是很需要的,再提一点,波形频率在10M时会有一个衰减,怎么调也调不好,频率和相位均可调,实现步进,但幅度好像不行,但是AD9850好像可以,当时对比一下AD9833和AD9850,我觉得AD9833更好用些。

ADI这方面的芯片还是不错的。欢迎高手们来给点建议!