Generator na Si5351A - Wersja do druku +- HomeMade (http://sp-hm.pl) +-- Dział: Urządzenia nadawczo odbiorcze KF (/forum-62.html) +--- Dział: Syntezy częstotliwości i moduły DSP (/forum-74.html) +--- Wątek: Generator na Si5351A (/thread-2019.html) |
Generator na Si5351A - SQ9NJE - 17-05-2014 0:27 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 Nota katalogowa: http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351.pdf Nota aplikacyjna dot. programowania układu: http://www.silabs.com/Support%20Documents/TechnicalDocs/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. [attachment=8640] [attachment=8642] 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. RE: Generator na Si5351A - SP6VWX - 17-05-2014 18:12 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 ) RE: Generator na Si5351A - SQ9NJE - 17-05-2014 20:21 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? RE: Generator na Si5351A - SP6VWX - 17-05-2014 20:56 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 RE: Generator na Si5351A - SQ9NJE - 17-05-2014 21:13 Heh, wszystko jasne! Mówiłem, że dzisiaj błyskotliwością nie grzeszę 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. RE: Generator na Si5351A - SQ1GU - 29-05-2014 19:03 Gdzie można kupić takiego scalaczka do testów- eksperymentów. Coś nie mogę znaleźć. Pozdrawiam RE: Generator na Si5351A - SQ9NJE - 29-05-2014 21:45 Heh, podobnie jak z Si570 nie jest łatwo. Digikey albo Mouser. Za tydzień lub dwa powinienem mieć jeszcze kilka. RE: Generator na Si5351A - SQ1GU - 09-06-2014 20:43 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. RE: Generator na Si5351A - K2KP - 10-06-2014 22:42 W digikey jest http://www.digikey.com/product-detail/en/SI5351A-B-GM/336-2400-5-ND/3679848 Maja ich 554 sztuk po $3.35 za sztuke Zreszta Si570 tez maja http://www.digikey.com/product-detail/en/570CAC000141DG/336-2518-ND/3991067 Pozdrawiam Arek AC2FC RE: Generator na Si5351A - SQ1GU - 16-06-2014 14:20 +50$ wysyłka. |