花生漫画

AD9858编程时对频率控制字和相位补偿字的初始化

0
阅读(2659)

 

AD9858编程时对频率控制字和相位补偿字的初始化如下所示:

FTW0_1 EQU 00101011B
FTW0_2 EQU 00101111B
FTW0_3 EQU 00110011B
FTW0_4 EQU 00110111B
POW0_1 EQU 00111011B
POW0_2 EQU 00111111B

MOV P3, 40H
MOV P1, #FTW0_1
CLR WR_
SETB WR_
SETB FUD
CLR FUD
 
MOV P3, 40H
MOV P1, #FTW0_2
CLR WR_
SETB WR_
SETB FUD
CLR FUD
 
MOV P3,40H
MOV P1, #FTW0_3
CLR WR_
SETB WR_
SETB FUD
CLR FUD
 
MOV P3, #40H
MOV P1, #FTW0_4
CLR WR_
SETB WR_
SETB FUD
CLR FUD
;
MOV P3, #00H
MOV P1, #POW0_1
CLR WR_
SETB WR_
SETB FUD
CLR FUD
;
MOV P3, #00H
MOV P1, #POW0_2
CLR WR_
SETB WR_
SETB FUD
CLR FUD

设计时,应先将8位频率控制字送入单片机的P3口,再将这8位的地址送入P1口。由于送8位地址的同时也将WR置为高位。因此,将WR置低就可将8位控制字和6位地址送入DDS缓冲器。由于频率的更新只需FUD一个上升沿,所以将FUD置为高位就可将8位数据送入指定的频率寄存器(初始化已将FUD置为低位),最后再将FUD置为低位,以为后边的频率更新设置上升沿做准备。

通过一个简单的程序可将一个频点的控制字送入DDS的存储寄存器。再通过相同的地址列表和送数方式就可将所需要的其它三个频点送入DDS的存储寄存器。这样,通过外部选择信号PS1和PS0就可以快速在这四个频点间进行切换。