AD9832/AD9835的编程
要解释如何对AD9832/AD9835进行编程,最好的方法便是举一个简单的示例。进一步详情,请参考应用笔记AN-621和AD9832或AD9835数据手册。
示例1:上电后器件设置
目标:使用一个25 MHz MCLK,产生两个输出频率,将3 kHz载入到FREQ0寄存器,并将10 kHz载入到FREQ1寄存器。
拨号码由以下公式定义:
注意,ADIsimDDS工具提供轻松便捷地产生所需16进制、10进制或2进制代码的方法。
所需初始化序列如表1所示。
命令序列说明
请参考AD9832或AD9835数据手册中的寄存器表。
0xD000—复位AD9832
RESET位DB12置1。这样做可将内部寄存器复位至0,对应于满量程的模拟输出(见图2)。Ch1为复位的杂散输出。Ch2为FSYNC,Ch3为SDATA, Ch4为SCLK。注意,数据在SCLK的下降沿有效。在8个SCLK周期后忽略SDATA高电平;这是特定SPI驱动器的固有特性,不会影响器件。
0x3044
• 欲迟延的8位。
• 频率寄存器0,L LSB数据。
• 8位数据 = 0x44。
0x21DD
• 将8位和迟延8位提供给选择频率寄存器。
• 频率寄存器0,H LSB数据。
• 8位数据- (0xDD) + 迟延数据 = 0xDD44。
0x3207—频率寄存器0,L MSB数据
0x2300—频率寄存器0,H MSB数据
0x343E—频率寄存器1,L LSB数据
0x2536—频率寄存器1,H LSB数据
0x361A—频率寄存器1,L MSB数据
1x2700—频率寄存器1,H MSB数据
0x9000—使用命令位1:0 将C15至C14的SELSRC置1。
• 将SELSRC置1—FSELECT由数据位控制。迟延增加两个MCLK周期。
0xC000—频率寄存器1,L LSB数据。
• 退出复位模式。从FREQ0寄存器输出的一个3 kHz信号,在RESET位置0后经过 8个MCLK周期出现在DAC输出端。