基于AD9850的函数信号发生器的设计

时间:2022-10-25 09:12:01 教案设计 来源:网友投稿

传统的信号发生器的设计都是采用MAX8038集成芯片外接电容或电阻来实现。此类方法输出信号稳定性较差,同时信号输出范围和精度也有所限制。许多文献也提出了基于FPGA的设计思路和方法,但系统设计较为复杂。因此,设计一种结构较为简单、易操作、性价比高的程控三相交流信号源,具有重大的现实意义。

随着数字技术的飞速发展,高精度大动态范围D/A转换器的出现和广泛应用,用数字控制方法从一个标准参考频率源产生多个频率信号的技术,即直接数字合成技术异军突起。利用DDS技术特别容易产生频率快速转换、分辨率高、相位可控的信号。这在电子测量、雷达系统、调频通信、电子对抗等领域具有十分广泛的应用。

可编程AD9850芯片即是采用DDS技术的典型产品之一。结合AD9850可编程的特点,实现对三相交流信号的产生与控制。满足了自动测试系统对于信号源设计简单、性价比高的要求。基于这种设计思路,我们设计了一种以STM32F101R6作为核心控制器及以AD9850作为信号源构建系统硬件总体设计方案

采用基于DDS专用芯片AD9850作为信号产生模块,并以STM32F101R6作为整个系统的控制核心。在STM32F101R6中嵌入UCOSII操作系统方便实现多任务处理,例如,波形转换、频率调节、幅值调节、12864显示、I2C掉电保护等。

微控制器从键盘获得控制信息,通过计算得到控制字并通过I/O口送给DDS的频率和相位的控制端口。同时,将信息显示在LCD上。DDS输出信号由程序控制其预置频率和相位的正弦信号或方波信号,再通过放大倍数可调的运算放大系统来控制调幅。三角波则由方波信号经过一级方大后通过积分电路获得。掉电保护功能则由STM32F101R6内部AD把数据读回再通过I2C写入24C04来完成,结构如图1所示。

系统的的硬件设计与波形的产生

1AD9850芯片

AD9850是AD公司生产的最高时钟为125MHz、采用先进的COMS技术的直接频率合成器,其功耗在3.3V供电时仅为155mW,采用28脚表面封装形式。AD9850的原理框图如图2所示。

器选择NBit,在时钟驱动下,累加器输出结果被反馈到累加器输入端并和步进值A累加到S,下一个时钟脉冲又将S反馈到累加器输入端,再次与A累加到S,再一个时钟脉冲又将S反馈到累加器输入端,如此循环累加,实现按步进值,按时钟节拍循环累加,使得NBit数据被徐循环累加,产生循环扫描的地址码0~64(高6Bit)。完成一次地址循环需要的时间由时钟和步进值决定,可以由公式T=(2N/A)×(1/2M)计算。

一次地址循环可以输出一个完整的波形,即T就是输出波形的周期,转换成频率fx,得到计算公式fx=A×2M/2N。

当晶振(2M)和计数器Bit数N确定之后,fx既与步进值A成正比,对A的调整可以完成对fx的设定。当N足够大时,比例常数2M-N可以很小,例如0.01,既fx等于A的0.01倍,这样就可以实现对fx的精细调整,例如0.01Hz。

2正弦波产生模块实现原理

根据DDS原理,AD9850有40位控制字,32位用于频率控制,5位用于相位控制。1位用于电源休眠(Powerdown)控制,2位用于选择工作方式。这40位控制字可通过并行方式或串行方式输入到AD9850。图3是控制字并行输入的控制时序图,在并行装入方式中,通过8位总线A0…D7将可数据输入到寄存器,在重复5次之后再在FQ-UD上升沿把40位数据从输入寄存器装入到频率/相位数据寄存器(更新DDS输出频率和相位),同时把地址指针复位到第一个输入寄存器。接着,在W-CLK的上升沿装入8位数据,并把指针指向下一个输入寄存器,连续5个W-CLK上升沿后,W-CLK的边沿就不再起作用,直到复位信号或FQ-UD上升沿把地址指针复位到第一个寄存器。在串行输入方式,W-CLK上升沿把25引脚的一位数据串行移入,当移动40位后,用一个FQ-UD脉冲即可更新输出频率和相位。图4是相应的控制字串行输入的控制时序图。频率和相位都可编程控制且稳定性很好的模拟正弦波,这个正弦波能够直接作为基准信号源,或通过其内部高速比较器转换成标准方波输出,直接产生方波,这个是DDS合成的最大优点。

4三角波模块实现原理

矩形波放大后经积分电路实现转换。由于积分电容的影响,输出的三角波有失真,所以使用一个4位拔码开关,选取不同的积分电容,得到不同的频率范围。积分模块原理:在本设计电路中,三角波是通过反向积分器对方波的积分产生。电路元件参数的确定和电路原理图如图5所示。

经计算和实验,本设计要求的频率范围是100Hz~20kHz的方波积分成三角波只需要一个105和一个273的两种不同的瓷片电容即可达到。此装置再换上不同的电容输出的三角波频率范围可达10Hz~1MHz。

5幅值调节模块

由于AD9850输出的正弦信号只有固定幅值,无法满足幅值可调。因此利用可编程放大器实现幅值控制。但这种方法只能实现倍数调节,而无法实现高精度连续调节。本系统通过X9511数字电位器实现正弦幅值连续

程序设计

本次软件设计流程如图7所示:程序初始化后进入初始界面,再判断KEY1是否被按下,按下KEY1是选择波形型号,按下KEY2选择频率递增,按下KEY3选择频率递减,按下KEY4选择幅值递增,按下KEY5选择幅值递减。本设计最大的优点就是能实现掉电保护,实时保存数据,防止电压过低或者突然断电造成的数据丢失。

推荐访问:函数 信号发生器 设计 AD9850