【DDS】FPGA使用AD9914的PROFILE模式输出正弦波

一、AD9914介绍

官方文档:https://www.analog.com/cn/products/ad9914.html
1、概述

    AD9914是一款带12位DAC的直接数字频率合成器(DDS)。该器件采用先进的DDS技术,连同高速、高性能数模转换器,构成数字可编程的完整高频合成器,能够产生高达1.4 GHz的频率捷变模拟输出正弦波。AD9914具有快速跳频和精密调谐分辨率(64位采用可编程模数模式)。这款器件还实现了快速相位与幅度跳跃功能。频率调谐和控制字通过串行或并行I/O端口载入AD9914。它还支持在用户定义线性扫描模式下工作,可产生频率、相位或幅度的线性扫描波形。AD9914包含一个高速32位并行数据输入端口,可支持极性调制方案的高数据率以及相位、频率和幅度调谐字的快速编程。
2、工作模式
AD9914支持五种工作模式。

  • 单频模式
  • Profile调制
  • 数字斜坡调制(线性扫描)
  • 并口数据端口调制模式
  • 可编程调制模式

    实际操作时可以同时启用多种模式。因此,这为配置复杂调制方案带来了巨大的灵活性。为避免多数据源驱动同一DDS信号控制参数,AD9914确定了内部优先级协议。
    本文使用Profile模式,通过SIP接口配置AD9914内部寄存器,使AD9914输出指定频率、幅度、相位的正弦波。

若要使能SPI操作,需要将引脚28
(F0)置位为逻辑高电平、引脚29至引脚31(F1至F3)置位为逻辑低电平。

二、I/O端口

源码请私聊(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
在这里插入图片描述

I/O端口

信号名称输入/输出描述
iClkIn工作主时钟,频率在100M及以下(SPI时钟为主时钟的四分之一)
iRst_nIn复位低有效
iFrequency[31:0]In输入频率(计算公式如下)
iAmplitude[31:0]In低16位为相位,[27:16]位为幅度,高4位为开路
iTriggerIn触发配置AD914寄存器(高电平触发,高电平时间需大于一个iClk时钟周期)
oSpi_clkOutSPI时钟(SPI时钟为iClk的四分之一)
oSpi_cs_nOutSPI片选
oSpi_mosiOutSPI输出
iSpi_misoInSPI输入
oAd9914_rstOutAD9914复位管脚,高有效
oAd9914_updateOutAD9914数据更新管脚,高有效

(1)输入频率的计算公式为: i F r e q u e n c y = r o u n d ( 2 32 输出频率 参考频率 ) iFrequency ={round(2^{32}{\frac{输出频率} { 参考频率}})} iFrequency=round(232参考频率输出频率)
其中round(x)为四舍五入函数,参考频率由硬件控制。

(2)相位iAmplitude[15:0]计算公式为: i A m p l i t u d e [ 15 : 0 ] = 2 Π ( 相位偏移 2 14 ) iAmplitude[15:0] = 2 Π(\frac{相位偏移} { 2^{14}}) iAmplitude[15:0]=(214相位偏移)其中相位偏移值的单位是弧度。
(3)幅度iAmplitude[27:16]计算公式为: A m p l i t u d e S c a l e = 幅度值 2 12 Amplitude Scale =\frac{幅度值} { 2^{12}} AmplitudeScale=212幅度值其中幅度值以满量程分数表示。

三、时序和仿真

该IP核的工作流程如下所示:
在这里插入图片描述
(1)AD9914上电后等待20ms电源稳定,然后拉高oAd9914_rst复位AD9914。

在这里插入图片描述

(2)复位完成后需校准DAC,校准方法为先拉高CFR4寄存器的[24]位,等待校准完成后拉低CFR4[24]位。
校准时间计算公式为: t = 531840 参考频率 t=\frac{531840} { 参考频率} t=参考频率531840
在这里插入图片描述
(3)校准完成后等待触发,然后开始配置AD9914。先配置CFR1寄存器,CFR1_DATA = 32’h00010008。配置内容为:打开正弦使能输出CFR1[24],打开外部省电控制CFR1[3]。

在这里插入图片描述

(4)配置CFR2寄存器,CFR2_DATA = 32’h00808000。配置内容为:打开Profile模式使能CFR1[24](使用Profile调制模式),打开延时匹配使能CFR1[16]。

在这里插入图片描述

(5)配置频率调谐字0寄存器,数据为iFrequency[31:0]。

在这里插入图片描述

(6)配置相位、幅度寄存器,数据为iAmplitude[31:0]。

在这里插入图片描述
(7)配置完成后重新校准DAC,方法和上述一致。

在这里插入图片描述
(8)校准完成后等待下一次触发更新频率、幅度、相位。

在这里插入图片描述

注:Profile寄存器地址的选择是通过PS[2:0]引脚。
AD9914手册说DAC CAL使能位必须手动设置,并且每次上电以及每次REF CLK或内部系统时钟改变以后需清零。但实际上发现按手册上设置,输出的频率偶尔会有谐波,经过验证在每次配置完Profile寄存器之后再校准一次DAC,谐波消失。

源码请私聊(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ ,此外承接各类DDS、高低速AD/DA、高速接口的驱动编写需求。

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: AD9850DDS是一款数字频率合成器,用于产生各种类型的信号波形,包括正弦波、三角波和方波。 AD9850DDS采用了直接数字合成(DDS)技术,通过数字控制相位和幅度来实现信号波形的产生。其内部包含一个数字控制振荡器(NCO),可以根据输入的控制信号频率和相位信息,生成特定频率和相位的信号波形。 要产生正弦波,可以通过设定所需频率和相位信息,将AD9850DDS设置为正弦波模式。这样,当输入相位和频率数据后,AD9850DDS将开始产生对应频率和相位的正弦波信号。 要产生三角波,可以通过设定所需频率和相位信息,将AD9850DDS设置为三角波模式。在这种模式下,AD9850DDS将通过调整振荡器的相位和频率,产生连续性变化的三角波形。 要产生方波,可以通过设定所需频率和相位信息,将AD9850DDS设置为方波模式。在这种模式下,AD9850DDS将以设定的频率进行周期性的相位切换,产生方波信号。 总之,AD9850DDS是一个非常灵活和多功能的信号波形产生器,可通过设定所需频率和相位信息,产生正弦波、三角波和方波等不同信号波形。 ### 回答2: AD9850DDS是一种数字直接合成器,可以通过数字控制产生不同类型的信号波形,其中包括正弦波、三角波和方波。 AD9850DDS的工作原理是利用数字信号对相位累加器和幅度累加器进行控制,以产生不同频率和振幅的输出信号。 在产生正弦波时,AD9850DDS通过不断累加相位值,在每个时刻计算出对应相位的正弦波幅度,并输出该信号。这样就可以实现不同频率的正弦波。 在产生三角波时,可以将相位值按线性方式递增,并在达到最大值时迅速归零,然后从零开始递增。这样就可以产生具有三角形状的波形。 在产生方波时,可以将幅度值在两个取值(高电平和低电平)之间切换,使得输出信号在不同时间间隔内保持相同的幅度。这样就可以产生具有方形状的波形。 总结起来,AD9850DDS通过数字控制相位和幅度来生成不同类型的信号波形,包括正弦波、三角波和方波。这种数字合成的方式具有灵活性高、精度高等优点,广泛应用于科学研究、通信系统等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值