wstecz
konstrukcje - poprzednia
wstecz
wróć na początek
wstecz
konstrukcje - następna

Generator na układzie SI570
Niniejsze opracowanie powstało wskutek dyskucji dotyczącej układu SI570 na forum SP-HM

Trochę teorii:
Układ SI570 jest scalonym, generatorem zawierającym dość skomplikowaną strukturę w której główną rolę odgrywa system pętli pll stabilizowany za pomocą wewnętrznego generatora kwarcowego fx o wartości ok. 114,28MHz. Ta częstotliwość znana jest jedynie z określoną dokładnością i w zasadzie dla każdego układu SI jest inna. Dodatkowo, że względu na stabilizujące działanie pętli "w górę" stabilność tego generatora ma wpływ na stabilność całego układu i zaleca się kilkuminutowy okres "nagrzewania" układu kiedy częstotliwości na wyjściu mogą zmieniać się w granicach kilkudziesięciu ppm co w praktyce może oznaczać w tym czasie lekkie płynięcie częstotliwości wyjściowej od kilkunastu do kilkuset Hz. Zapewne czas ten można skrócić stosując izolację i stabilizację termiczną generatora za pomocą termostatu.



Generator kwarcowy stabilizuje w pętli podstawową, wewnętrzną częstotliwość pracy fDCO, której wartość musi się mieścić w zakresie 4,85-5,67GHz. Wymaga to programowego ustawienia mnożnika częstotliwości FREQ, którego wartość wynosi od ok. 42.44 do 49.62 . Wartość ta musi być podana z 38 bitową dokładnością a sposób przygotowania tego podzielnika jest dość czytelnie pokazany w dokumentacji układu SI570. Po ustaleniu częstotliwości FDCO sygnał wyjściowy uzyskuje się przez podział FDCO za pomocą dwóch programowalnych dzielników N1 (o wartościach: 1,2-128) oraz HS_DIV (o wartościach: 4,5,6,7,9,11). Tak więc układ wymaga do swojej pracy określenia trzech wartości: N1, HS_DIV oraz FDCO. Wartości te należy wyliczyć w mikroprocesorze sterującym w następujących krokach:

1. Ustalenie częstotliwości fout
2. Dobranie wartości N1 i DS_DIV aby:    4850 < fDCO = fout * N1 * HS_DIV < 5670     gdzie fout [MHz]
3. Wyliczenie z 38 bitową dokładnością podzielnika FREQ jako    FREQ = fDCO / fx
4. Wpisanie wyliczonych wartości HS_DIV, N1 oraz FREQ do rejestrów o adresach dziesiętnych 7-12

Układ generatora umożliwia dwa rodzaje zapisów do rejestrów. W sposobie podstawowym dane można zapisywać niezależnie od wartości wpisywanych danych i wymaga on następujących kroków:

1. Wpisania wartości 16xd (16 dziesiętnie) do rejestru o adresie 137xd (137 dziesiętnie)
2. Wpisania wyliczonych wartości HS_DIV, N1 oraz FREQ do rejestrów 7xd - 12xd
3. Wyzerowania rejestru 137xd przez wpisanie do niego wartości 0xd
4. Poinformowania układu SI570 o dokonanych zmianach przez wpisanie do rejestru 135xd wartości 32xd

Ten rodzaj programowania wymaga, według dokumentacji układu, czasu przełaczenia sięgającego do 10ms, w którym układ znajduje się w stanie nieokreślonym (częstotliwość i faza sygnału zmienia się w niekontrolowany sposób) co w niektórych urządzeniach może być zauważone. Niestety, układy odbiorcze DC "widzą" to jako stukot w słuchawkach a efekt ten jest niezależny od częstotliwości i od kroku przestrajania.

Drugi sposób programowania tego generatora może działać w ograniczonym zakresie przestrajania i dotyczy ok. +-0.35% wartości częstotliwości fDCO i wymaga:

  • 1. Wpisania wartości 32xd do rejestru 135xd
    2. Wpisanie wyliczonych wartości HS_DIV, N1 oraz FREQ do rejestrów 7xd - 12xd
    3. Wpisania wartości 0xd do rejestru 135xd

  • Ten typ programowania umożliwia płynną zmianę częstotliwości bez opisanego wyżej stanu przejściowego i nie słychać żadnych stuków podczas strojenia.
    Ale jak pokazuje rysunek zakres płynnego przestrajania jhest gwarantowany w ograniczonym zakresie ok. 0.35% wokół wartości centralnej fDCO. Dla przykładu na rysunku pokazałem co to oznacza w praktyce. Zakładając, że odbierana częstotliwość to 14MHz w odbiorniku z bezpośrednią przemianą wtedy wymagana częstotliwość generatora fout jest z reguły 4 krotnie większa i ma wartość 56MHz. Na tej podstawie wyliczona wartość fDCO wynosi 4928MHz a zakres jej płynnej zmiany to od 4911MHz do 4945MHz. Przeliczając ten zakres "w dół" mozna powiedzieć, że płynne przestrajanie jest możliwe w zakresie ok. 200kHz na częstotliwości fout i efektywnie ok. 50kHz na częstotliwości pracy 14MHz. Na paśmie 3.5 zakres ten ulegnie zmniejszeniu 4 krotmie a na paśmie 28MHz ulegnie zwiększeniu 2 krotnie.
    W moim systemie sterowania użyłem mieszanej metody przestrajania polegającej na przestrajaniu według sposobu płynnego o ile zmiany mieszczą się w granicach tolerancji tego sposobu oraz sposobu podstawowego o ile zmiany są większe. W ten sposób, podczas strojenia, w zależności od pasma, rzadziej lub częściej pojawiają się w słuchawkach stuki na granicach przestrajania płynnego. Niemniej uważam, że ta cena jest niewielka w stosunku do możliwości generatora, mogącego pracować, w zależności od wersji od ok. 3.5MHz do prawie 1GHz


    Opis rozwiązania
    Generator SI570 jest miniaturowym układem syntezy częstotliwości stosowanym w telefonii komórkowej. Układ pracuje z wewnętrznym, kwarcowym generatorem odniesienia o częstotliwości ok. 114.220MHz dając na wyjściu, w zależności od wersji częstotliwości od 3.5MHz do 1.4GHz. Układ wymaga do pracy mikrokontrolera sterującego częstotliwością generatora poprzez magistralę I2C. Niniejszy opis dotyczy tzw. wersji CMOS układu SI570 pracującej do ok. 160MHz i dającej na wyjściu sygnał prostokątny o wartości ok. 3.0Vpp.
      

    Właściwy generator na układzie SI570 steruje dzielnikiem na układzie 74AC74 więc do wyboru są częstotliwości F, F/2 i F/4. Ponieważ dolna częstotliwość pracy układu to nieco mniej niż 3.5MHz więc zastosowanie podzielnika przez 4 zapewnia działanie urządzeń z bezpośrednią przemianą (patrz układ DC01) od częstotliwości nieco poniżej 1MHz (3.5/4=0.875MHz) pokrywając całe pasmo amatorskie (160/4=40MHz).
    Układ generatora wymaga sterowania częstotliwością pracy z pomocą mikrokontrolera - w tym przypadku zastosowany został układ ATMega 8 (8kB pamięci). Dodatkowe wyposażenie generatora to wyświetlacz LCD 2*16 znaków oraz pięcio klawiszowy, wielofunkcyjny panel sterujący. Układ wymaga zasilania zarówno +5V (mikrokontroler) jak i sam generator (3.3V).

        

    Konstrukcja mechaniczna generatora jest niemal identyczna jak w generatorze Tiny DDS. Kompletny układ ma rozmiar ok. 90/60/30mm i przystosowany jest w naturalny sposób do montażu na płycie czołowej urządzenia, z którym generator będzie współpracował. Wyprowadzenia sygnałów z układu odbywa się za pomoca pinów, w większości mocowanych od strony druku płytki generatora. Druk jest jednostronny a chip generatora SI570 montowany jest od strony druku. Literatura informuje o nieznacznej zmianie częstotliwości odniesienia generatora tuż po jego włączeniu ale w tym rozwiązaniu nie zastosowano żadnej stabilizacji termicznej pracy układu. Niemniej możliwe jest zaizolowanie chip-a układu za pomocą warstwy dobrego izolatora termicznego - np. styropianu przyklejonego z obu stron chip-a.

      

    Obsługa i kontrola pracy generatora odbywa się za pomocą wyświetlacza LCD 2*12 oraz pięcio klawiszowega panela sterującego. Tuż po włączeniu zasilania wyświetlacz pokazuje zapamiętane zmienne systemowe (częstotliwość wzorca odniesienia Fxtal, podzielnik częstotliwości D oraz częstotliwość offset-u Fof). Następnie z pamięci zostaje przywołana częstotliwość pamięci F1 i układ jest gotowy do pracy na częstotliwości F1. Na wyświetlaczu w górnej linii od lewej do prawej strony pokazane są następujące dane:
    * tryb pracy, który zmienia skrajny lewy klawisz w cyklu zamkniętym: CWu->CWd->USB->LSB->CWu->CWd->USB->.....
    * stan RIT-a, który zmienia drugi z lewej klawisz w sekwencji ON/OF/ON/OF...
    * wartość podzielnika D odpowiedzialnego za stosunek rzeczywistej częstotliwości generatora do częstotliwości na wyświetlaczu w taki sposób, że częstotliwość na wyświetlaczu to F/D gdzie F to częstotliwość a D podzielnik ustawiany w procedurze SETUP w zakresie 1-99
    W dolnej linii wyświetlacza widać aktualną częstotliwość pracy (patrz uwaga o podzielniku D) oraz krok przestrajania, który można zmieniać za pomocą dwóch klawiszy z prawej strony w zamkniętym ciągu rosnącym: 10Hz->100Hz->1k->10k->100k->1M->10H... lub malejącym 10Hz->1MHz->100k->10k->1k->100Hz->10Hz-1M.... Rzeczywisty krok przestrajania związany jest, podobnie jak częstotliwość na wyjściu, z podzielnikim D i jest D razy mniejszy od tego na wyświetlaczu.
    Środkowy klawisz służy do manipulowania czterema pamięciami częstotliwości w cyklu zamkniętym F1->F2->F3->F4->F1->.... Kolejne naciskanie tego klawisza przywołuje z pamięci odpowiednią częstotliwość oznakowaną w górnym wierszu jako F1-F4 a jednocześnie w dolnym wierszu pojawia się jej wartość. W takim stanie możliwe jest zapamiętanie bieżącej częstotliwości pracy do aktualnej pamięci F1-F4 za pomocą drugiego z prawej klawisza lub jej załadowanie do generatora za pomocą skrajnego prawego klawisza. A zatem drugi z prawej klawisz działa jak funkcja SAVE a skrajny prawy klawisz jak funkcja LOAD. W pokazanym przykładzie wybrana pamięć F3 ma wartość 15,24993MHz ale jeśli użyje się drugiego z prawej klawisza to zastąpiona ona zostanie częstotliwością 7MHz będącą aktualną częstotliwością pracy generatora (w tym przykładzie) lub też po użyciu skrajnego prawego klawisza generator zacznie pracować właśnie na częstotliwości 15.24993MHz.
    Dodatkowego wyjaśnienia wymaga stan pinów logiki układu dotyczących ustawień RIT-a, sterowania zewnętrznymi przełącznikami pasma oraz trybem pracy (CW/SSB) oraz odbierana wstęgą (USB/LSB)
    * za funkcję RIT-a odpowiedzialny jest pin 13 układu w taki sposób, że jeśli stan pinu zmienia się z wysokiego przy odbiorze na niski przy nadawaniu i odwrotnie to generator będzie automatycznie przełączał się na odpowiednie częstotliwości podczas nadawania i obioru o ile funkcja RIT została wcześniej ustawiona jako włączona (ON)
    * jeśli generator ustawiony jest w trybie CWu lub CWd wtedy na pinie 11 pojawia się stan niski napięcia, w innych przypadkach na tym pinie będzie stan wysoki. Odpowiednio, na pinie 12 dla trybu USB lub CWu pojawia się stan wysoki a dla trybu LSB lub CWd stan niski
    * sterowanie zewnętrznymi układami przełączania pasma pracy może się odbywać na podstawie identyfikacji sygnałów na pinach 17-19 oznakowanych kolejno jako A, B i C. Stan tych pinów związany jest automatycznie z częstotliwością generatora poprzez odpowiednią kombinację pinów na końcówkach A, B i C:
       * A=0, B=0, C=1 dla F < 4MHz
       * A=0, B=1, C=0 dla 4 < F < 8MHz
       * A=0, B=0, C=0 dla 8 < F < 16MHz
       * A=1, B=1, C=1 dla 16 < F < 32MHz
       * A=1, B=0, C=1 dla 32 < F < 64MHz
       * A=0, B=1, C=1 dla F > 64MHz
    Rola częstotliwości Fof w systemie polega na tym, że jeśli będzie ustawiona jako większa niż |0.4MHz| to wyświetlacz pokazywał będzie wartość (F+Fof)/D. Wartości Fof mniejsze niż |0.4MHz| przyjmowane są jako częstottliwość 0MHz a wyświetlacz pokazuje wtedy F/D. Fof może przyjmować zarówno dodatnie jak i ujemne wartości co może być w szczególnych wypadkach pomocne w odpowiednim usytuowaniu heterodyny względem częstotliwości pośredniej.

        

    Stałe generatora czyli częstotliwość wzorca Fxtal, dzielnik D oraz częstotliwość ofset-u Fof można ustawić podczas procedury SETUP. Wejście do niej jest możliwe zaraz po włączeniu zasilania przez naciśnięcie i przytrzymania lewego skrajnego klawisza do czasu ukazania się napisu SETUP MODE. Następnie za pomocą obu lewych skrajnych klawiszy można przewijać menu SETUP-u w obu kierumnkach oraz dokonywać zmiany odpowiednich wartości parametrów za pomocą impulsatora z bieżąco ustawionym krokiem. Wyjątkiem jest wartość D którą zmienia się z krokiem 1. Zatwierdzenie ustawionych wartości możliwe jest za pomocą środkowego klawisza.

    Dokumentacja wykonawcza generatora zawarta jest w 3 plikach pdf. Plik druk może służyć do bezpośredniego wykonania płytki drukowanej metodą termotransferową. Rysunki płytki w pliku .pdf mają naturalne wymiary i powinny być drukowane tak jak są. Płytka drukowana ma rozmiary 60/90mm i takie rozmiary powinien mieć wydruk dla metody termotransferowej.

    schemat  druk  montaż 

    Mikrokontroler AT Mega 8 należy zaprogramować wykorzystując załączony plik .hex. Należy jednocześnie ustawić bity Fuse na następujące wartości:
    Fusebit KL 01: 6 CK 4ms delay
    Fusebit A987 1110:1110 external XTAL
    Fusebit G 0: Preserve EEPROM when chip is erased

      


    Ze względu na różne systemy programowania załączam interface dla ustawienia bitów Fuse jaki można znaleźć w środowisku BASCOM. Na tej podstawie można dopasować ustawienia we własnym środowisku. Dla przykładu, dla środowiska "ISP Programmer", prawidłowe ustawienia to:
    Dla bitów Low:
    BOTLEVE=1, BODEN=1, SUT1=0, SUT0=1, CKSEL3=1, CKSEL2=1, CKSEL1=1, CKSEL0=0 czyli 11011110
    dla bitów High:
    RSTDISBL=1, WDTON=1, SPI?=0 ,CKOPT=1, EESAVE=0, BOOTSZ1=0, BOOTSZ0=0, BOOTRST=1 czyli 11010001


    wersja aktualna

    Uwaga 1
    Podczas pierwszego włączenie generatora po programowaniu należy wstępnie ustawić częstotliwość F1 na 10MHz oraz Fof na 0. W tym celu należy przed włączeniem zasilania nacisnąć i przytrzymać jeden z prawych klawiszy. Następnie należy ustawić odpowiednie wartości w SETUP-ie, zalecana jest również zmiana i/lub zaprogramowanie pamięci F1-F4.

    Uwaga 2
    Oprogramowanie współpracuje z układami SI570 o adresie 170 (0xAAh). Jeśli Twój układ ma inny adres skontaktuj się ze mną bezpośrednio - prawdopodobnie uda mi się przygotować wersję dla innej adresacji ;-)

    Oprogramowanie jest darmowe do celów amatorskich, użycie komercyjne wymaga mojej zgody i oddzielnego uzgodnienia.

    wstecz
    konstrukcje - poprzednia
    wstecz
    wróć na początek
    wstecz
    konstrukcje - następna