赞
踩
官方文档: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支持五种工作模式。
实际操作时可以同时启用多种模式。因此,这为配置复杂调制方案带来了巨大的灵活性。为避免多数据源驱动同一DDS信号控制参数,AD9914确定了内部优先级协议。
本文使用Profile模式,通过SIP接口配置AD9914内部寄存器,使AD9914输出指定频率、幅度、相位的正弦波。
若要使能SPI操作,需要将引脚28
(F0)置位为逻辑高电平、引脚29至引脚31(F1至F3)置位为逻辑低电平。
源码请私聊(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
I/O端口
信号名称 | 输入/输出 | 描述 |
---|---|---|
iClk | In | 工作主时钟,频率在100M及以下(SPI时钟为主时钟的四分之一) |
iRst_n | In | 复位低有效 |
iFrequency[31:0] | In | 输入频率(计算公式如下) |
iAmplitude[31:0] | In | 低16位为相位,[27:16]位为幅度,高4位为开路 |
iTrigger | In | 触发配置AD914寄存器(高电平触发,高电平时间需大于一个iClk时钟周期) |
oSpi_clk | Out | SPI时钟(SPI时钟为iClk的四分之一) |
oSpi_cs_n | Out | SPI片选 |
oSpi_mosi | Out | SPI输出 |
iSpi_miso | In | SPI输入 |
oAd9914_rst | Out | AD9914复位管脚,高有效 |
oAd9914_update | Out | AD9914数据更新管脚,高有效 |
(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]=2Π(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、高速接口的驱动编写需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。