Marek
Guest
Wed Oct 29, 2014 11:02 pm
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??
--
Marek
platformowe gĹupki
Guest
Wed Oct 29, 2014 11:43 pm
cos źle robisz mi taki wzór działa
N= f&10^5 * 343,5973837
platformowe gĹupki
Guest
Wed Oct 29, 2014 11:54 pm
Quote:
N= f x 10^5 * 343,5973837
f w MHz
dla 1000 Hz mamy
34359,7
J.F.
Guest
Thu Oct 30, 2014 8:18 am
Dnia Wed, 29 Oct 2014 23:02:17 +0100, Marek napisał(a):
Quote:
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.
Jak widac Fout jest pwoporcjonalna do wartosci, ale nie tak.
Quote:
Gdzie robię błąd??
Nie odwrociles gdzies bitow/bajtow ?
Sprobuj wpisac 1001, 1002, 1003 - moze sie wyjasni.
A o slowie W0 pamietales ?
J.
Marek
Guest
Thu Oct 30, 2014 9:32 am
On Thu, 30 Oct 2014 08:18:05 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
Nie odwrociles gdzies bitow/bajtow ?
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.
Quote:
A o slowie W0 pamietales ?
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.
--
Marek
Marek
Guest
Thu Oct 30, 2014 4:18 pm
On Thu, 30 Oct 2014 08:18:05 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
Nie odwrociles gdzies bitow/bajtow ?
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.
--
Marek
J.F.
Guest
Thu Oct 30, 2014 5:01 pm
Użytkownik "Marek" napisał w wiadomości grup
On Thu, 30 Oct 2014 08:18:05 +0100, "J.F."
Quote:
Nie odwrociles gdzies bitow/bajtow ?
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.
Jak pisales - zawyzalo czestotliwosc ok 34 razy.
Ale 32 to jest 5 bitow roznicy, a nie 3 (5-2) :-)
J.
J.F.
Guest
Thu Oct 30, 2014 5:10 pm
Użytkownik "Marek" napisał
Quote:
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).
No bo to to samo
Wartosc o ktora zmieniaja faze w kazdym kroku okresla jednoczesnie
czestotliwosc.
J.
Marek
Guest
Fri Oct 31, 2014 1:27 am
On Thu, 30 Oct 2014 17:10:09 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
No bo to to samo
Wartosc o ktora zmieniaja faze w kazdym kroku okresla jednoczesnie
czestotliwosc.
Ale tam jest też wysyłana faza (oprócz freq).
--
Marek
J.F.
Guest
Fri Oct 31, 2014 10:38 am
Użytkownik "Marek" napisał w wiadomości grup
On Thu, 30 Oct 2014 17:10:09 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
No bo to to samo
Wartosc o ktora zmieniaja faze w kazdym kroku okresla jednoczesnie
czestotliwosc.
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.
janusz_k
Guest
Fri Oct 31, 2014 7:10 pm
W dniu 2014-10-31 10:38, J.F. pisze:
Quote:
Użytkownik "Marek" napisał w wiadomości grup
On Thu, 30 Oct 2014 17:10:09 +0100, "J.F."
jfox_xnospamx@poczta.onet.pl> wrote:
No bo to to samo
Wartosc o ktora zmieniaja faze w kazdym kroku okresla jednoczesnie
czestotliwosc.
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.
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.
--
Pozdr
Janusz_K
platformowe gĹupki
Guest
Fri Nov 07, 2014 1:00 pm
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?