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%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.
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.