dds ad9850 - dziwne zachowanie

Oct 29, 2014 11 Replies

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??


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

f w MHz dla 1000 Hz mamy

34359,7

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.

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.

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.

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.

Użytkownik "Marek" napisał

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

J.

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

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

J.

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.

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?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required