DDS od Analogu
Šula Miloš
sula@rps.cz
Pondělí Únor 4 08:12:19 CET 2008
Zmeny nejsou treba zadne, ikdyz zapisuji dokola do FREQ0 treba hodnotu 10000
tak se na osciloskopu objevi vzdy po zapisu kratsi perioda, jakoby ji DDS
proste utnul.Na vystupu generuji obdelnik a zapis do FREQ registru je
nakonfigurovany pro dva dvojite zapisy 28bitove hodnoty ( bit B28=1 ). Jinak
vas postup s pouzitim obou registru vyzkousim, to bude zrejme ten problem.
inicializace:
AD9833_Write(0x2128); //reset DIV2|OPBITEB|ADRESET|B28
AD9833_Write(0x4000); //FREQ0 lsb
AD9833_Write(0x4000); //FREQ0 msb
AD9833_Write(0x8000); //FREQ1 lsb
AD9833_Write(0x8000); //FREQ1 msb
AD9833_Write(0xC000); //PHASE0
AD9833_Write(0xE000); //PHASE1
AD9833_Write(0x2028); //DIV2|OPBITEB|B28
samotny zapis:
void SetDDSFrequency(int32 Freq)
{
int16 lsb,msb;
lsb = (freq & 0x3fff) | FREQ0;
msb = ((freq>>14) & 0x3fff) | FREQ0;
AD9833_Write(lsb);
AD9833_Write(msb);
}
Milos
----- Original Message -----
From: "balu@home" <daniel.valuch@orange.fr>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Sunday, February 03, 2008 9:27 PM
Subject: Re: DDS od Analogu
este raz zopakujem ze prechod na novu frekvenciu je uz z principu
fungovania DDS fazovo spojity. Pri zapise novej frekvencie jednoducho
zacne faza narastat rychlejsie alebo pomalsie. Ziadne ostre zmeny.
Nieco zrejme robite zle pri ovladani. Ako velke su zmeny frekvencie
medzi dvoma zapismi? Ako presne sa to prejavuje na vystupe? Da sa to
vidiet na osciloskope?
Mozno zapis do registrov nie je robeny tak ako by mal byt.
Pozrite si funkciu bitov B28 a HLB v control register. Skuste cip
ovladat tak ze zapisete do registra FREQ0 a zvolite FSELECT, novu
frekvenciu do FREQ1 a prepnete na novu frekvenciu cez FSELECT. Tym by sa
mohli odstranit problemy s casovanim.
b.
Další informace o konferenci Hw-list