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