最详细的AD9851中文资料教学内容Word文档格式.docx
《最详细的AD9851中文资料教学内容Word文档格式.docx》由会员分享,可在线阅读,更多相关《最详细的AD9851中文资料教学内容Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
第一个8位字节控制输出相位,6×
REFCLK倍乘器,电源关闭启用和装载模式;
其余字节组成32位频率控制字。
串行加载完成是通过一个40位串行数据流进入通过其中一根并行输入总线。
该AD9851采用先进的具有突破性功能的CMOS技术。
供电电源仅555毫瓦功率耗散(+5V电源供电),最大时钟速率为180兆赫。
该AD9851封装采用28引脚SSOP,主流AD9850为125MHz的频率。
AD9851详细说明
时钟输入特性(6倍倍乘器未启动):
+5V供电时最小输出频率1MHZ,最高输出频率为160MHZ。
+3.3V供电时最小输出频率1MHZ,最高输出频率为120MHZ。
+2.7V供电时最小输出频率1MHZ,最高输出频率为100MHZ。
时钟输入特性(6倍倍乘器启动):
+5V供电时最小输出频率5MHZ,最高输出频率为30MHZ。
+3.3V供电时最小输出频率5MHZ,最高输出频率为20.83MHZ。
+2.7V供电时最小输出频率5MHZ,最高输出频率为16.66MHZ。
输入阻抗:
1MΩ
输出阻抗:
120kΩ
宽带无杂散动态范围1.1MHz模拟输出(DCto72MHz)+25°
CIV6064dBc
20.1MHz模拟输出(DCto72MHz)+25°
CIV5153dBc
40.1MHz模拟输出(DCto72MHz)+25°
CIV5155dBc
50.1MHz模拟输出(DCto72MHz)+25°
CIV4653dBc
70.1MHz模拟输出(DCto72MHz)+25°
CIV4243dBc
窄带无杂散动态范围
1.1MHz(±
50kHz)+25°
CV85dBc
200kHz)+25°
CV80dBc
40.1MHz(±
50kHz)+25°
200kHz)+25°
70.1MHz(±
CV73dBc
器件输出特性
输入电容+25°
CV3pF
输出阻抗+25°
CIV500kΩ
输入偏差电流+25°
CI12µ
A
输入电压范围+25°
CIV0—5V
Logic“1”+5VSupply+25°
CVI+4.8V
Logic“1”+3.3VSupply+25°
CVI+3.1V
Logic“1”+2.7VSupply+25°
CVI+2.3V
Logic“0”Voltage+25°
CVI+0.4V
连续的输出电流+25°
CIV20mA
滞后现象+25°
CIV10mV
传输延时+25°
CIV7ns
转换频率(1Vp-pInputSineWave)+25°
CIV200MHz
上升/下降时间,15pFOutputLoad+25°
CIV7ns
输出抖动(p-p)3+25°
CIV80ps(p-p)
时钟输出特性
输出抖动(时钟发生器配置,
40MHz1V峰峰值输入正弦波)+25°
CV250ps(p-p)
时钟输出占空比FULLIV50±
10%
最大绝对额定值
最大节点温度................+150°
C
存储温度.................–65°
Cto+150°
VS....................+6V
工作温度.................–40°
Cto+85°
数字输入..................–0.7Vto+VS+0.7V
焊接温度(10sec).............+300°
数字输出电流................30mA
SSOP热阻抗.................82°
C/W
DAC输出电流.................30mA
引脚功能描述
引脚标号/助记符
功能
4—1,/D0–D7
8位数据输入.数据端口,用于装载32位的频率控制字和8位相位控制字。
D7为最高位
28—25/D0=最低位D7,25引脚,也作为40位控制字串行输入引脚
5/PGND
6×
REFCLK倍乘器接口
6/PVCC
REFCLK倍乘器正向供电电压引脚
7/W_CLK
数据加载时钟.上升沿加载并行或串行频率/相位控制字异步输入到40-bit输入寄存器
8/FQ_UD
频率更新上升沿异步加载40位数据到内部数据寄存器对DDS核心起作用.FQ_UD作用当输入寄存器只能容纳一位有效的数据。
9/REFCLOCK
参考时钟输入.CMOS/TTL-电平脉冲,直接或通过6×
REFCLK倍乘器.直接模式,也是系统时钟.如果6×
REFCLK倍乘器采用,倍乘器输出也是系统时钟。
系统时钟上升沿开始工作。
10,19/AGND
模拟地(DACandComparator).
11,18/AVDD
模拟电路的正向供电电压(DAC和比较器,Pin18)和带隙电压参考Pin11.
12/RSET
DAC外部复位连接—3.92kΩ电阻接地10mA电流输出.这使得DAC的IOUTandIOUTB满量程输出成为可能.RSET=39.93/IOUT
13/VOUTN
内部比较器负向输出端
14/VOUTP
内部比较器正向输出端
15/VINN
内部比较器的负向输入端。
16/VINP
内部比较器的正向输入端。
17/DACBP
DAC旁路连接.这是DAC旁路连接端连接通常为NC(无连接)以便有很好的无杂散性能。
20/IOUTB
互补DAC输出具有和IOUT有相同的参数,除去IOUTB=(满量程输出-IOUT).输出负载应该等于IOUT最好的无杂散性能
21/IOUT
DAC输出端转换通常是一电阻或一变压器接到地.IOUT=(满量程输出–IOUTB)
22/RESET
主复位引脚;
高电平有效;
高电平清除DDS累加器和相位延迟器为0Hz和0相位,同时置数据输入为并行模式以及禁止6倍参考时钟倍乘器工作。
未清除40-bit输入寄存器.RESET优先权最高
23/DVDD
数字电源引脚(+5V)。
24/DGND
数字地.
引脚图
IOUT和IOUTB都有100Ω负载.两个100kΩ电阻器“样品”都有输出,输出值是这两个输出电压的平均值。
带有470pF电容的滤波器和和施加到比较器的输入作为数字开关门限。
在一个reset命令发出后,W_CLK允许独立的编程每个AD985140位输入寄存器,通过8位数据总线或串行输入引脚。
FQ_UD脉冲发出后结果是完成这两个振荡器输出程序指定的频率和相位。
AD9851RSET投入启动是由外部的DAC(图10)提供调幅,数字振幅控制DAC的输出电流。
操作和应用
AD9851为直接数字频率合成器(DDS)技术形式的数控振荡器,用以产生频率/相敏正弦波。
数字正弦波转换为模拟形式,通过内部10位高速数/模转换器。
一个片上高速比较器提供模拟正弦波和低抖动TTL/CMOS-兼容的方波。
DDS技术是一种创新性电路架构,能够快速和精确的操纵其输出控制字,为全数字控制模式。
DDS还可以启动高分辨率,能够选择输出频率。
该AD9851允许输出频率分辨率约0.04赫兹。
可直接选用180M时钟频率或直接使用参考时钟的6×
REFCLK倍乘器。
AD9851的输出波形的相位可连续从一个输出频率变化到另一个。
基本功能方框图和信号流图
AD9851配置的时钟发生器如图11。
电路是一种数字分频器功能,其增量分辨率由系统时钟和N(位数调整字)决定,相位累加器是一个可变模计数器,其数值递增并储存是在每次收到一个时钟脉冲后。
当计数器达到满量程开始出现“环绕”使相位累加器输出相持续。
频率调谐字控制设置计数器模式,这有效地确定了在下一时刻的模增量。
其值越大的递增的越快,越能加快累加器环绕,导致更高的输出频率。
AD9851采用了一种特有的“角度轮换“的数学算法,值转换为14位截断值。
32位相位累加器由DAC量化使其振幅为10位。
降低了AD9851功耗。
AD9851系统时钟和调谐字输出频率之间的关系表示:
ΔPhase=十进制值的32位频率调谐字。
系统时钟=直接输入参考时钟或6倍频的输入时钟(如果6×
REFCLK乘法器启动)。
fOUT=输出信号的频率inMHz.
数字正弦波输出的DDS的核心驱动器为内部高速10位D/A转换器,输出为正弦波模拟形式。
这种DAC优化了动态性能,从而使AD9851具有低杂散和低抖动性能。
DAC可以工作在任一单端,图2和8,输出不同的波形,图9和图10。
DAC输出电流和RSET值由下式决定:
IOUT=39.93/RSET
RSET=39.93/IOUT
由于AD9851产生的是一个取样信号,其输出频谱遵循奈奎斯特采样定理。
具体来说,其输出频谱中包含的基本波和锯齿信号(图像)。
该图反映了发生在整数倍数的系统时钟频率±
选定的输出频率。
图形代表抽样频谱,与锯齿图像显示在图12。
正常使用的带宽被视为延长的DC为1/2系统时钟。
例如在图12所示,该系统是100兆赫的时钟输出频率设定值为20兆赫输出。
可以看出,锯齿波是非常突出的,并有相对较高的能量。
功能控制字在表1和表3
更新输出频率和相位或复位电路,倍乘器以及电源方式的时序图为图表13–20。
编程实例:
1.相位设置为11.25度
2.6倍时钟倍乘器启动
3.供电模式选择。
4.输出=10兆赫(180MHz系统时钟)。
在并行模式下,用户将程序的40位控制字(分5个8位加载)做如下处理:
W0=00001001
W1=00001110
W2=00111000
W3=11100011
W4=10001110
如果是在串行模式下加载40位数据从上面数组W4的最低位开始加载过程从右到左,以W0的最高位结束。
表一,8位并行,加载数据/控制字功能分配
*此位总是逻辑0除非援引串行模式(见图17)。
若串行模式已经设置,这一数据位必须设置回到逻辑0运行。
在任何控制字加载完之后以及异步参考时钟变化都能引起输出数据更新
注意:
要更新W0没有必要再次加载W1到W4。
只要加载W0和声明FQ_UD。
要更新w1,需重新加载w0到w4。
复位结果,如图14
-相位累加器清零输出=0赫兹(直流)。
-相位偏移寄存器设置为零这种数模转换器输出=全量程输出和IOUTB=0mA输出。
-内部编程地址指针重置为W0。
-电源模式式位重置为“0”(电源关闭停用)。
-40位数据输入寄存器并没有清零。
-6×
参考时钟乘法器已被禁用。
-并行编程模式默认情况下选中的。
进入行模式,
图17,为并行模式
这是复位后默认选中的。
一个只需要前8位程序编制(字W0)序列xxxxx011如图所示(图17)改变从并行
到串行模式。
W0控制字可传送8位数据到数据总线如图18所示。
当串行模式实现后,用户必须遵循编程序列图19。
8位数据到数据总线如图18所示。
串行模式调用后最好是立即写一个有效的40位串行字(见图19),即便所有为零,随后FQ_UD上升沿冲洗留在DDS内核的“残余数据”数据。
40位串行字为任何字只要求其中W33是逻辑0。
从开机到关机状态,需改变W34为逻辑0。
唤醒掉电模式大约需要5微秒。
注:
AD9851的40位输入寄存器在断电模式不清零。
电路原理图
OVER
其他资料补充:
控制方式
AD9851内部有5个输人寄存器,储存来自外部数据总线的32位频率控制字5位相位控制字,一位6倍参考时钟倍乘器使能控制,一位电源休眠。
功能(powerdown)控制和一位逻辑0。
寄存器接收数据的方式有并行和串行两种方式。
并行方式如图3所示,是通过8位数据总线D0~D7来完成全部40位控制数据的输人。
复位信号RESET有效会使输人数据地址指针指向第一个输人寄存器,W—CLK上升沿写人第一组8位数据,并把指针指向下一个输人寄存器,连续5个W—CLK上升沿后,即完成全部40位控制数据的输人,此后W—CLK信号的边沿无墩。
当FQ—UD上升沿到来之际40位数据会从输人寄存器被写人频率和相位控制寄存器,更新DDS的输出频率和相位,同时把地址指针复位到第一个输入寄存器,等待着下一组新数据的写入。
串行方式如图4所示,WCLK上升沿把引脚D7上的数据按位串行穆入到输入寄存器,40位输入结束后,任何WCLK上升沿到来都会造成数据顺序移出并导致原来数据无效,此时FQUD端的上升脉冲就可以使40位数据更新芯片的输出频率和相位。
最终合成信号的频率可由公式
(1)来决定,合成
信号的相位由公式
(2)来决定。
//51单片机DDS测试程序
#include<
reg51.h>
//头文件
//定义AD9851与98C51的接口
sbitW_CLK=P3^0;
sbitFQ_UD=P3^1;
sbitRESET=P3^2;
/***频率算法公式*****/
/****f是输出的频率****//*******32位控制字为:
Fm=(f*0xFFFFFFFF)/内部时钟*******/
unsignedlongintFm=0x0003a411;
//实验时候自己设了1KHz结果很精确。
外时钟用信号了生器3MHz!
!
unsignedchardatatab[]={0x01,0x00,0x00,0x00,0x00};
//(W0)(W4W3W2W1)高——低)注意顺序!
//延时程序
voiddelay(unsignedinti)
{
while(i--);
}
//分32位数据分解为4个字节存于tab[]数组的后四个单元,tab[0]为相位和频率的设置单元
voidchang(unsignedlongintt)
unsignedchar*i;
i=&
t;
tab[1]=(char)*i;
tab[2]=(char)*(i+1);
tab[3]=(char)*(i+2);
tab[4]=(char)*(i+3);
}
/***主程序*****/
voidmain(void)
{unsignedchari;
FQ_UD=0;
delay
(1);
W_CLK=0;
RESET=1;
//上电先复位一次
RESET=0;
chang(Fm);
//分离四字节程序
for(i=0;
i<
5;
i++)//****写AD8951***5个字节*********
{W_CLK=0;
P1=tab;
W_CLK=1;
FQ_UD=1;
//输出
while
(1);
凌阳单片机AD9851的驱动程序
//====================================================================
//Copyright(C),2006,HUST.
//----Filename:
AD9851.c
//-Description:
AD9851驱动
//-----History:
06/8/29V1.0EditByL.F.
#include"
SPCE061A.h"
//变量说明
unsignedlongintFreq_Ctrl_Word=0x051eb851;
//频率控制字先传低位再传高位
unsignedintPhase_Ctrl_Word=0x0000;
//相位控制字先传低位再传高位
unsignedintOrder_Ctrl_Word=0x0000;
//b32:
06倍频关闭b33b34:
00电源工作模式
//定义AD9851与SPCE061A的接口
#defineM_DATA0x0001
#defineM_UD0x0002
#defineM_CLK0x0004
#defineSet_IOA_Bit(x)(*P_IOA_Data=*P_IOA_Buffer|x)//置高
#defineClear_IOA_Bit(x)(*P_IOA_Data=*P_IOA_Buffer&
~x)//置低
//----Function:
voidInit_AD9851(void)
初始化与AD9851连接的IO口
//--Parameters:
无
//------Return:
//-------Notes:
不影响其他IO口
voidInit_AD9851(void)
*P_IOA_Dir|=(M_DATA+M_UD+M_CLK);
*P_IOA_Attrib|=(M_DATA+M_UD+M_CLK);
*P_IOA_Data&
=~(M_DATA+M_UD+M_CLK);
voidWrite_AD9851(void)
向AD9851写入频率控制字,命令控制字和相位控制字
voidWrite_AD9851(void)
unsignedlongintmask=0x0001;
unsignedinti;
Clear_IOA_Bit(M_UD);
//M_UD置低
//送32位频率控制字
for(i=0;
i<
32;
i++)
{
Clear_IOA_Bit(M_CLK);
//M_CLK置低
if(Freq_Ctrl_Word&
mask)
Set_IOA_Bit(M_DATA);
}
else
Clear_IOA_Bit(M_DATA);
Set_IOA_Bit(M_CLK);
mask=mask<
<
1;
//送3位的命令控制字
mask=0x0001;
3;
if(Order_Ctrl_Word&
//送5位相位控制字
5;
if(Phase_