Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Generator na Si5351A
SQ9NJE Offline
Przemek
**

Liczba postów: 92
Dołączył: 23-03-2010
Post: #1
Generator na Si5351A
Przeglądając bloga Jasona NT7S natrafiłem na posty o układzie Si5351, który mnie od razu zainteresował. Jest to programowany generator o częstotliwości wyjściowej od 8kHz do 160MHz. Zależnie od wersji ma 3 lub 8 niezależnych wyjść. W odróżnieniu od Si570 wymaga zewnętrznego kwarcu 25MHz - 27MHz, ale za to jest dużo tańszy Smile

Nota katalogowa: http://www.silabs.com/Support%20Document...Si5351.pdf
Nota aplikacyjna dot. programowania układu: http://www.silabs.com/Support%20Document.../AN619.pdf

Zrobiłem moduł z najmniejszym z tych układów - Si5351A w obudowie MSOP10 z trzema wyjściami. Na płytce poza układem generatora znajduje się stabilizator 3.3V i translator poziomów tak by można było podłączyć mikrokontroler zasilany napięciem 5V. Złącze I2C ma rozkład wyprowadzeń zgodny z modułem Si570 przedstawionym przez Adama SP5FCS. Płytka zaprojektowana jest w EAGLEu.

İmage İmage

W ramach pierwszych testów napisałem bibliotekę dla Arduino do obsługi tego układu. Obliczanie zawartości rejestrów dla zadanej częstotliwości jest dosyć uciążliwe, ponieważ układ zawiera dwie pętle PLL, których współczynnik powielania / podziału zadaje się za pomocą liczby wymiernej w postaci ułamka zwykłego a+b/c. Bez noty AN619 ani rusz, pomocna była też strona YU3MA. Mój kod jest w dosyć wczesnym stadium i na pewno nie jest optymalny - dość powiedzieć, że używam liczb zmiennoprzecinkowych. Nie są też jeszcze zaimplementowane wszystkie funkcje układu i nie jest obsługiwany pełen zakres częstotliwości. Pomimo tego kod jest już "używalny". Do biblioteki dołączyłem przykładowy program, który pozwala ustawić częstotliwość za pomocą interfejsu szeregowego.

Bibliotekę można pobrać z GitHub.

Mam nadzieję, że w najbliższym czasie uda mi się poskładać jakiś prosty odbiornik SDR i będę prowadził dalsze testy. Wydaje mi się, że układ wart jest zainteresowania, szczególnie w kontekście Husara czy Husarka z dwoma odbiornikami.


Załączone pliki
.zip  SI5351A.zip (Rozmiar: 33.08 KB / Pobrań: 2037)

Przemek SQ9NJE
http://www.sq9nje.pl
(Ten post był ostatnio modyfikowany: 17-05-2014 0:37 przez SQ9NJE.)
17-05-2014 0:27
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6VWX Offline
Nowicjusz
*

Liczba postów: 23
Dołączył: 02-01-2012
Post: #2
RE: Generator na Si5351A
Ja zrobiłem pewne uproszczenie myślowe i mam zamiar wypróbować swój algorytm oparty o arytmetykę stałopozycyjną. Ty masz już prototyp to może spróbujesz?
Zdjęcie chyba wyjaśnia na czym polega uproszczenie (na zafixowaniu zmiennej c )
İmage


Załączone pliki Miniatury
İmage
(Ten post był ostatnio modyfikowany: 17-05-2014 18:12 przez SP6VWX.)
17-05-2014 18:12
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9NJE Offline
Przemek
**

Liczba postów: 92
Dołączył: 23-03-2010
Post: #3
RE: Generator na Si5351A
W pierwszym podejściu też zrobiłem tak, że mianownik zawsze był stały i był równy największej liczbie jaka mieści się w rejestrze. Takie podejście nie zawsze daje najlepsze przybliżenie i zależnie od żadanej częstotliwości czasem odchyłka była zauważalna. Przy czym częściowo przyczyniały się do tego błędy zaokrągleń.

Czy mógłbyś wrzucić swój arkusz? Nie za bardzo rozumiem co dzieje się w jego środkowej części. Moja percepcja jest dzisiaj jakaś ograniczona...

Jutro będę chcial jeszcze trochę popracować nad tym kodem i zrobić testy szybkości. Mam kilka pomysłów na optymalizację, można np. zastąpić dzielenie mnożeniem w procedurze znajdowania aproksymacji. To powinno trochę przyspieszyć obliczenia. Pozbycie się floatów będzie pewnie następnym krokiem i jeśli nawet nie będzie miało wpływu na szybkość, to na pewno znacznie zmniejszy rozmiar wynikowego programu.

Dzisiaj lutuję odbiornik ZetaSDR (bo wszystko było w szufladzie, hi) i jak dobrze pójdzie jutro będę mógł też trochę posłuchać. Ciekaw jestem czy przy przestrajaniu będzie słychać "stukanie" znane z Si570?

Przemek SQ9NJE
http://www.sq9nje.pl
(Ten post był ostatnio modyfikowany: 17-05-2014 20:22 przez SQ9NJE.)
17-05-2014 20:21
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6VWX Offline
Nowicjusz
*

Liczba postów: 23
Dołączył: 02-01-2012
Post: #4
RE: Generator na Si5351A
Cóż, skoro to jest uproszczenie, to i musi być cena za to, czyli rozdzielczość w ustawieniu częstotliwości. Zafiksowana zaś została największa wielokrotność 10, bo w dziesiętnym systemie liczę.
A artmetyka to operowanie na 20 bitowych słowach, co dla ARMa czy 32 bitowego AVRa nie jest problemem. Jedyną upierdliwą jest procedura dzielenia, co na 32 bitowych słowach może trochę potrwać.
W środku arkusza nic nie ma, chciałem tylko zobaczyć jaka jest rozdzielczość ustawienia częstotliwości na krańcach zakresów.
Jak się dorwe do PCta to arkusz załącze, z tableta mam nijaki problem z tym.

Robert
SP6VWX
(Ten post był ostatnio modyfikowany: 17-05-2014 20:56 przez SP6VWX.)
17-05-2014 20:56
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9NJE Offline
Przemek
**

Liczba postów: 92
Dołączył: 23-03-2010
Post: #5
RE: Generator na Si5351A
Heh, wszystko jasne! Mówiłem, że dzisiaj błyskotliwością nie grzeszę Smile

AVR, na którym to testuję jest 8 bitowy, ale to właściwie nie problem. Dzielenie zawsze jest wredne, o ile dobrze kojarzę avr-gcc robi dzielenie dwóch 8 bitowych liczb w jakieś 170 cykli, podczas gdy mnożenie jest sprzętowe i zajmuje 2 cykle.

Zapomniałem jeszcze dodać, że dostępny jest program na PCta, który pozwala wyklikać konfigurację i przygotowuje cała mapę rejestrów. Przy tym bardzo fajnie optymalizuje tą konfigurację, bo o ile to możliwe dobiera współczynniki tak, żeby PLL i dzielnik działały w trybie całkowitym, a nie ułamkowym. Do płynnego przestrajania trzeba jednak przeliczać wartości rejestrów na bieżąco.

ClockBuilder Desktop

I jeszcze gwoli uzupełnienia dokumentacji nota katalogowa użytego przeze mnie kwarcu.

Przemek SQ9NJE
http://www.sq9nje.pl
(Ten post był ostatnio modyfikowany: 17-05-2014 21:14 przez SQ9NJE.)
17-05-2014 21:13
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ1GU Offline
Nowicjusz
*

Liczba postów: 16
Dołączył: 30-04-2011
Post: #6
RE: Generator na Si5351A
Gdzie można kupić takiego scalaczka do testów- eksperymentów.
Coś nie mogę znaleźć.
Pozdrawiam
29-05-2014 19:03
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9NJE Offline
Przemek
**

Liczba postów: 92
Dołączył: 23-03-2010
Post: #7
RE: Generator na Si5351A
Heh, podobnie jak z Si570 nie jest łatwo. Digikey albo Mouser. Za tydzień lub dwa powinienem mieć jeszcze kilka.

Przemek SQ9NJE
http://www.sq9nje.pl
29-05-2014 21:45
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ1GU Offline
Nowicjusz
*

Liczba postów: 16
Dołączył: 30-04-2011
Post: #8
RE: Generator na Si5351A
Widze ze w farnell sa SI5356 od reki i w dobrej cenie.
Wydaja sie byc to podobne scalaki.
Chyba sie skusze na sztuke do experymentow.
09-06-2014 20:43
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
K2KP Offline
Arek
***

Liczba postów: 114
Dołączył: 06-07-2009
Post: #9
RE: Generator na Si5351A
W digikey jest http://www.digikey.com/product-detail/en...ND/3679848
Maja ich 554 sztuk po $3.35 za sztuke
Zreszta Si570 tez maja http://www.digikey.com/product-detail/en...ND/3991067

Pozdrawiam
Arek AC2FC
10-06-2014 22:42
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ1GU Offline
Nowicjusz
*

Liczba postów: 16
Dołączył: 30-04-2011
Post: #10
RE: Generator na Si5351A
+50$ wysyłka.
16-06-2014 14:20
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości