Bardzo często jeszcze "w obrocie" znajdują się starsze radiotelefony np. typu 3001, do których trudno jest uzyskać rezonatory kwarcowe. Jako urządzenia radiowe charakteryzują się stosunkowo dobrymi parametrami elektrycznymi. Warto więc poświęcić im troszkę czasu. Starsze układy scalone PLL stosowane w dawniejszych syntezach, już nie są produkowane i raczej trudno dostępne, zatem oparłem się na układzie LM7001. Szacunkowy koszt elementów syntezy wynosi kilkadziesiąt złotych. Do projektu przyjęto następujące założenia dla urządzenia::
zakres działania pokrywa amatorskie pasmo 2m
praca z amatorskimi przemiennikami sterowanymi tonem 1750 Hz
sterowanie zmianą kanałów za pomocą encodera obrotowego
wymiary dopasowane do standardowej ramy radiotelefonu 3001
proste przystosowanie radiotelefonu do pracy z syntezą
łatwość wykonania układu elektronicznego
niska cena oraz dostępność elementów
Podstawowym elementami syntezy są układ PLL LM7001 oraz mikroprocesor ATMega8 sterujący parametrami pętli PLL. Poniższy rysunek przedstawia schemat ideowy syntezy.(schemat)
Na poniższej fotografii znajduje się układ próbny zbudowany na tzw. "pająku"
A tak wygląda radiotelefon z zamontowaną syntezą.
A oto synteza w "całej okazałości". Układy scalone znajdują się po przeciwnej stronie płytki drukowanej, co było wynikiem niewłaściwego wydruku połączeń na laminacie. (efekt lustra).
Poniżej znajduje się program źródłowy dla ATMega 8 napisany w Bascom AVR. Aby uciąć w zarodku wszelkie dyskusje, że można to zrobić inaczej np. wykorzystać pamięci w ATMega itd. informuję że ten projekt, w takim wykonaniu spełnia moje skromne oczekiwania, a dla "polepszaczy" zamieszczam plik źródłowy i życzę sukcesów.
Cha Alias Pind.2 ' piny dla encodera Chb Alias Pind.3 ' piny dla encodera
Config Cha = Input ' ustawione jako wejścia Config Chb = Input ' Config Portd.5 = Input ' port dla przycisku TON 1750 Hz Config Portb.2 = Output ' port sterowania przekaźnikiem nadawania
Reset Portd.0 ' wstępne ustawienie stanów na portach Reset Portd.1 ' porty transmisyjne ustawione na zero Reset Portd.4 ' Reset Portb.2
Set Portb.0 ' port od PTT na 1 Set Portd.5 ' port dla TON na 1
Declare Sub Synteza ' program przesyłania danych do syntezy Declare Sub Zegarek ' program zegara taktującego zapis do syntezy Declare Sub Wyswietlaj ' program wyświetlający Declare Sub Roger ' program rogera - litera K - morse
Dim A As Byte ' zmienna dla petli FOR Dim Freq As Word ' zmienna ustawiająca częstotliwość LM7001 Dim Sterowanie As Byte ' zmienna ustawiająca paramatry LM7001 Dim Wynik As Long ' zmienna wyswietlajaca czestotliwosc Dim Pcz As Word ' czestotliwość pośredniej Dim Fpom As Word ' zmienna do przesłania danych do syntezy Dim Rpt As Byte ' praca z przemiennikiem Dim Zmiana As Bit ' wskaźnik zmiany nastawy Dim S_roger As Bit
Freq = 5394 ' fodb=(145550-10700)/25=5394 Pcz = 428 ' dodanie pcz do freq nadawczej Zmiana = 0 ' nie było zmiany od encodera S_roger = 0 ' roger nie bedzie wykonywany
Config Int0 = Falling Const Debouncetime = 1 ' kanał B dla encodra na 1 Set Chb On Int0 Getencoder ' program dla przerwania encodera
'-------------------- główna pętla programowa ---------------------------------- Do If Pind.5 = 0 Then Waitms 300 If Pind.5 = 0 Then If S_roger = 0 Then S_roger = 1 Else S_roger = 0 Call Wyswietlaj End If End If
If Pinb.0 = 0 Then Set Portb.2 ' nadawanie Call Synteza While Pinb.0 = 0 If Pind.5 = 0 Then Sound Portb.1 , 800 , 343 ' ton 1750 Hz End If Set Pind.5 Wend If S_roger = 1 Then Call Roger End If Reset Portb.2 ' koniec nadawania Call Synteza ' ustawienie częstotliwości dla odbioru End If
If Zmiana = 1 Then ' była zmiana kanału przez encoder Call Synteza Zmiana = 0 End If
Loop End '------------------------------------------------------------------------------- Getencoder: Waitms Debouncetime If Cha = 0 Then If Chb = 0 Then Incr Freq Else Decr Freq End If Zmiana = 1 Gifr = 64 Return '------------------------------------------------------------------------------- Sub Zegarek Waitus 10 Set Portd.1 Waitus 10 Reset Portd.1 Waitus 10 End Sub '------------------------------------------------------------------------------- Sub Synteza Sterowanie = &B10100000 '25 kHz If Freq >= 5396 And Freq <= 5403 Then Rpt = 1 ' przestrzeń kanalowa dla przemienników Else Rpt = 0 End If
If Portb.2 = 1 Then Fpom = Freq + Pcz ' nadajesz, zatem f nad =f odb +10.7MHz If Rpt = 1 Then ' jeżeli to przemiennik to fnad=fodb-600kHz Fpom = Fpom - 24 End If Else Fpom = Freq End If
Reset Portd.1 ' ustawienie lini CL=0 Set Portd.4 ' ustawienie lini CE=1 For A = 0 To 13 ' wysyłanie bitów częstotliwości D0 - D13 If Fpom.a = 1 Then ' bit po bicie Set Portd.0 Else Reset Portd.0 End If Call Zegarek ' po każdym bicie takt zegara Next A ' Reset Portd.0 ' wysłanie T0=0 Call Zegarek ' takt zegara Reset Portd.0 ' wysłanie T1=0 Call Zegarek ' takt zegara For A = 0 To 7 ' wysyłanie bitów sterujących LM7001 If Sterowanie.a = 1 Then ' B0,B1,B2,TB,R0,R1,R2,S Set Portd.0 Else Reset Portd.0 End If Call Zegarek ' po każdym bicie takt zegara Next A ' Reset Portd.4 ' koniec transmisji CE=0 Call Wyswietlaj ' wyświetlenie nowej częstotliwości End Sub '------------------------------------------------------------------------------- Sub Wyswietlaj Cls Wynik = Freq + Pcz Wynik = Wynik * 25 ' 25kHz - krok syntezy If S_roger = 1 Then Lcd "SQ1FTB beep" Else Lcd "SQ1FTB synth" End If If Portb.2 = 1 Then Lcd " NAD" Else Lcd " ODB" End If Lowerline If Rpt = 1 Then Lcd Wynik ; " MHz [RPT]" Else Lcd Wynik ; " MHz" End If End Sub '------------------------------------------------------------------------------- Sub Roger ' nadawanie morsem literki K Sound Portb.1 , 300 , 343 Waitms 100 Sound Portb.1 , 100 , 343 Waitms 100 Sound Portb.1 , 300 , 343 End Sub
Dla zainteresowanych montażem syntezy do radiotelefonu 3001(11) podaję schemat montażowy.
· Napisane przez sq1ftb
dnia 16.08.2009 22:41
14626 czytań ·