dds ad9850 - dziwne zachowanie

Witam, mam dziwny problem z tym układem. Działa inaczej niż opisuje datasheet.

Na str. 8 datasheeta mamy wzór na obliczenie wartości jaką trzeba wpisać do rejestru konfiguracyjnego układu aby uzyskać żądaną częstotliwość Fout:

Fout = (delta Phase * CLKIN ) / 2^32

delta Phase - szukana wartość dla rejestru CLKIN - 125000000 Hz (kwarc układu)

Po przekształceniu wzoru, mamy: delta Phase = (2^32 * Fout ) /125000000

np. aby uzyskać 1000Hz, do rejestru powinniśmy wpisać: delta Phase = ( 4294967296 * 1000) / 125000000 = 34359

Ale jak wpisuję do rejestru 34359 to na wyjściu mam sinus ~34kHz a nie oczekiwany 1kHz. Jak wpiszę 1000 to na wyjściu mam ~1000Hz (oscyloskop tak podaje). Wygląda tak, jakby wpisywana wartość stawała się Fout.

Gdzie robię błąd??

Reply to
Marek
Loading thread data ...

cos źle robisz mi taki wzór działa N= f&10^5 * 343,5973837

Reply to
invalid unparseable

f w MHz dla 1000 Hz mamy

34359,7
Reply to
invalid unparseable

Dnia Wed, 29 Oct 2014 23:02:17 +0100, Marek napisał(a):

Jak widac Fout jest pwoporcjonalna do wartosci, ale nie tak.

Nie odwrociles gdzies bitow/bajtow ?

Sprobuj wpisac 1001, 1002, 1003 - moze sie wyjasni.

A o slowie W0 pamietales ?

J.

Reply to
J.F.

To było pierwsze co sprawdziłem. Wpisuje 30000 to na wyjściu sinus

30kHz, wpisuje 100 to na wyjściu 100 Hz. Jakieś jaja normalnie.

Tak, używam go zaincjowania transmisji szeregowej (w0=xxxxx011) a później szeregowo, czyli napierw 32 bity freq od lsb do msb (swoją druga czemu w datashicie wcześniej nazywają ten parametr delta phase, a później przy opisie transmisji nazywają freq co sugeruje frequency). Później 8 bitów 0 zero (2 bity control + 1 bit power + 5 phase), razem 40.

Reply to
Marek

Eh starość, oczywiście był błąd w 5 bitach fazy. Było wysyłane 2 a nie 5, przez co fq_up był po 37 bitach a nie po 40. Ciekawe że dawało to efekt zbliżonej Fout do tego co wpisało się do pierwszych 32 bitów. Teraz działa ok.

Reply to
Marek

Użytkownik "Marek" napisał w wiadomości grup On Thu, 30 Oct 2014 08:18:05 +0100, "J.F."

Jak pisales - zawyzalo czestotliwosc ok 34 razy. Ale 32 to jest 5 bitow roznicy, a nie 3 (5-2) :-)

J.

Reply to
J.F.

Użytkownik "Marek" napisał

No bo to to samo :-) Wartosc o ktora zmieniaja faze w kazdym kroku okresla jednoczesnie czestotliwosc.

J.

Reply to
J.F.

Ale tam jest też wysyłana faza (oprócz freq).

Reply to
Marek

Ale to jest faza stala. A w kazdym kroku jest faza zmieniana o ... delta phase, co wyznacza czestotliwosc.

J.

Reply to
J.F.

W dniu 2014-10-31 10:38, J.F. pisze:

To są dwie różne rzeczy, scalak umożliwia także ręczną zmianę fazy, np dla dodatkowej modulacji sygnału, a faza wewnętrzna wynika z działania pętli syntezy i jest wykorzystywana do adresowania pamięci rom z sinusami.

Reply to
janusz_k

masz ten niebieski moduł z allegro? nie masz z nim problemów? czy wpisujesz szeregowo czy równolegle? czy przed wpisem restartujesz licznik wpisanych danych?

Reply to
invalid unparseable

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.