K PMR pásmu mě po delší době analogové radioaktivní nečinnosti přivedl zapálený CB-čkář a nyní i "pomerančista" Salamandr Šternberk. Dříve jsem se o CB také poměrně hodně zajímal, ale po příchodu mobilních telefonů toto pásmo značně upadlo a nějak nemělo smysl v něčem dalším pokračovat. PMR však nabízí další možnosti, výzvy a v neposlední řadě levnější radiostanice. Hlavní výhodou je fakt, že narozdíl od CB, pracujeme s "uchopitelnými" vlnami o délce 70cm. Tedy odpadá atmosférické rušení, je možné navázat spojení na velké vzdálenosti s relativě malými anténami, spojení je čisté atd atd.. Nevýhoda je však v tom, že vlny v tomto pásmu jsou velmi obtížně ohebné. Signál tedy neprojde přes kopec, avšak dokáže se odrážet, takže není problém navázat spojení třebas v údolí bez přímé viditelnosti. To vše s relativně malými výkony. Cílem této konstrukce je opakovač, tedy zařízení, které poslouchá na nějakém kanále PMR pásma a na základě příkazů dovede nahrát vzkaz a odvysílat tento vzkaz ze svého QTH. Dovede tak specifickým způsobem prodloužit dosažitelnou vzdálenost stanic, které se nacházejí v radiově velmi špatném místě.
Opakovač využívá vnitřnosti radiostanice Intek-2000. Tato stanice je poměrně levná a kvalitní, resp. je to stanice s velmi dobrým poměrem cena/výkon. Objednal jsem si 2 kousky u firmy Elix. Jelikož jsem měl stanici již teoreticky nastudovanou, nebylo pro mě překvapení co je uvnitř, ale jak je to strašně malé. Prostě stanice je velmi sympatická a dokonce je uvnitř místo i pro nějaký procesorek, který možnosti stanice rozšířil i směrem k amatérskému pásmu. Další výhodou je, že ke stanici je k dispozici kompletní servisní dokumentace, schémata, prostě vše co je potřeba.
8 kanálů PMR pásma, lze rošířit, ale není třeba
Výstupní výkon 500mW
Spotřeba v reřimu vysílání 500mW je cca 400mA
Napájecí napětí je 6V
Vysílání a příjem CTCSS kódů
Cena 1299,- Kč :-)
Úprava není složitá, dá se zvládnout i obyčejnou trafopájkou, ale je nutné vzít na vědomí, že se jedná po poměrně titěrné zařízení a tak je potřeba postupovat opatrně a mít pevnou ruku. V následujících bodech popíšu, co jsem dělal.
1) Stanici jsem rozebral (4 šroubky s stanice se rozpůlí) a kryty schoval pro případ, že by se mi druhá stanice někde spadla a rozbila. V opakovači kryty potřeba nejsou, nikdo na to koukat nebude. Subjektivně mě pohled na úhledný plošný spoj připadá hezčí :)
2) Odsranil jsem zbytečnost, kterou představuje mikrofon. Prostě jsem vzal velké kombinačky a mikrofon ukoutil. Jde to snadno, lehce a mikrofon to přežije, takže ho lze použít jinde.
3) Jelikož je nutné, aby se stanice po připojení napájení sama zapnula, kápnul jsem cínovou kuličku na pozlacené plošky pod tlačítkem power. To že je nyní toto tlačítko trvale sepnuté nevadí, vše funguje bez chybičky.
4) Připájel jsem na plošky, které se dotýkají kontaktů baterií vodiče na připojení externího napájení.
5) Stanici jsem připojil na zdroj 6V. Pozor na přepólovaní, jinak se stanice odporoučí do křemíkového nebe. Na spodní straně plošného spoje (na této straně není LCD) je trimr, který slouží k nastavování squelche. Jelikož opakovač by měl přijímat i ty nejslabší signály, je nutné ho vyřadit z činosti a to jsem udělal tak, že jsem připojil ke stanici sluchátka a trimr vytočil do některé z krajních poloh. Ze sluchátek se poté ozývá šum. Umístění trimru je na následujícím obrázku.
6) Aby mohl procesor opakovače ovládat stanici, je nutné připájet 2 kousky tenké dvoulniky na konktaktní plošky tlačítek UP a MODE. Elektronika opakovače pak bude simulovat stisk těchto kláves. Připájené kablíky jsem zafixoval tavným lepidlem.
7) Dalšími potřebnými body jsou signály PTT (Push To Talk) a ctcss_in. Nejelegantnější možnost připojení klíčování jsem našel na jednom vrchním kontaktu tlačítka PTT. Připájel jsem tedy na něj kousek vodiče a hotovo. Dalším signálem je ctcss_in (tak jsem si ho nazval, ve schématu je nazván mute), což je v podstatě signál vyvedený z procesoru stanice, který říká koncovému nf zesilovači, že přijímá signál se správným CTCSS kódem. Zesilovač se pak otevře a přijímaná stanice je slyšet. To samozřejmě platí pouze v případě, že na je stanici nastaven nějaký CTCSS kód, v opačném případě se tento signál neuplatňuje. Připojení tohoto signálu je malinko obtížnější. Protože nožičky procesoru jsou velmi blízko sebe a nemám nástroje pro manipulaci s tak jemnými spoji, raději jsem vypájel tranzistor Q504, který vlastní umlčování realizuje a na plošku, kde měl tranzistor bázi jsem připájel vodič. Poté jsem všechno zafixoval hutnou dávkou tavného lepidla. Funkci jsem poté oveřil tak, že při uzemění PTT vodiče stanice začne vysílat. V případě ctcss_in a vypnutém CTCSS je na vodiči 0V, cože je pochopitelné, protože stanice nemá potřebu nic umlčovat. V momentě, kdy se na stanici nastaví nějaký CTCSS kód, změní se úroveň napětí z 0V na 3.4V. Pokud pak protistanice začne vysílat se stejným CTCSS kódem, objeví se opět 0V. Schéma je v tomto případě dobrým pomocníkem.
8) Udělal jsem si stíněné kablíky s jack konektory na připojení audio vstupu a výstupu. Napotvoru jsem je tam při montáži stranice do nosného rámečku s kuprexitu zapoměl dát a tak jsem nakonec připájel kablíky přímo na vývody jack konektorů ve stanici. Pokud se pak nastaví hlasitost stanice na hodnotu 2, tak bude vše v pořádku.
9) Poslední věcí je přípájet anténu, resp. koaxiální kabel k externí anténě. Na obrázku jsem znázorněn živý výstup, tedy střední vodič koaxiálního kabelu.
Srdcem celého opakovače je 8-bitový jednočip PIC16F628A. Lze
použít i verzi bez A, rozdíly jsou nedůležité. Výhodou
tohoto jednočipu je to, že má v sobě integrované obvody
resetu a krystal, tedy pro jeho vlastní činnost je potřeba
pouze nápájecí napětí. Cena tohoto jednočipu je cca 75,-Kč
v maloobchodě, což je cena více než příznivá, tedy alespoň
v porovnání s PIC16F84. Protože mě nebaví při ladění
programu neustálé vytahování obvodu z patice, je součástí
zařízení konektor pro In-Circuit programování. Zkoušel jsem
ho přeprogramovávat i za běhu , tedy při připojeném napájecím
napětí a procesor je korektně resetl, naprogramoval a zase
rozběhl. Je to pak paráda, uděláte změnu v programu a do 10
sekund je již zkompilováno a naprogramováno :-)
Jakožto dekodér DTMF jsem použil starý dobrý a osvědčený
MT8870 v doporučeném katalogovém zapojení, myslím že k tomu
nelze nic dodat. Výstupem jsou binární data a signál STD jde
do log.1 v případě, že MT8870 úspěšně dekóduje DTMF kód.
Tlačítka stanice spínají obousměrné analogové spínače v
IO 4066. V původním návrhu, který jsem dělal ještě předím,
než jsem měl stanici fyzicky k dispozici, jsem totiž nepočítal
s tím, že půjde stanici zapínat právě tím trvalým zkratováním
tlačítka POWER a taky jsem si nebyl jistý, zda-li půjde přepínat
kanály a CTCSS kódy v nekonečné smyčce. Potřeboval jsem
tedy 4 spínače a 4066 se jevila jako nejlepší varianta. Až
posléze jsem tedy zjistil, že budou stačit spínače pouze 2 a
šly by elegatně vyřešit 2 tranzistory. Plošný spoj jsem již
ale nepředělával a tak jsou k dispozici ještě 2 rezervní výstupy,
třebas na spínání nějakých spotřebičů, bomby atd :-))
Dalším zatím nevyužitým vstupem/výstupem je RB6. Tento
vstup jsem zamýšlel využít na připojení teplotního čidla
SMT160, leč vytvoření nějakého solidního algoritmu na převod
střídy na teplotu by zabralo velmi mnoho času (mám ve škole
zkouškové) a tak je zatím tato funkce nevyužita. Kdyby se našel
nějaký člověk, který by byl ochotný se s nějakým funkčním
zdrojákem pro PICy podělit, byl bych určitě moc rád.
No neméně důležitá věc pro opakovač je audiomodul.
Existuje sice více možností, ale jelikož jsem již dřívě
používal právě VM888, je i v tomto opakovači. Myslím, že
se dá koupit v Jablotronu, ale tento kousek se mi podařilo ukořistit
na radioamatérském setkání v Holicích v roce 2003 za 150,-,
což je suprová cena. Modul dokáže nahrát až 20 sekund záznamu,
má automatickou regulaci úrovně vstupního signálu a velmi
malou spotřebu.
Poslední záležitostí zapojení je zdroj. Stabilizátor 78L05
napájí veškerou elektroniku a LM317 je stabilizátor s výstupním
napětím 6V pro stanici. Jeho funkce jsem nakonec nevyžil,
protože se mi dostala do ruky jakási spínaná nabíječka na
mobil s výstupním napětím 5.5V a proudem 550mA. Funguje to s
tím dobře a tak to ní napájím přímo. Každopádně po celém
zapojení je řada 100nF blokovacích kondenzátorů.
Pro úplnost zde uvedu seznam konektorů, které se na schématu
vyskytují a jejich popis:
TX MOD - audio výstup modulace, tento výstup se zapojí do
mikrofonního konektoru
AUDIO_IN - audio vstup ze stanice. Tento vstup se připojí do
konektoru pro připojení sluchátek. Volume stanice pak na 2.
10V str - zde se může připojit střídavé napájecí napětí
od cca 8V výš. Toto jsem nakonec nevyužil, viz výše v textu.
5V K PMR - výstup cca 5-6V k nápájení stanice. Toto jsem
nakonec nevyužil, viz výše v textu.
GND - ground, zem, kostra, minus.. jak chcete :-)
MCLR - součást rozhraní ICSP pro programování PICu v zapojení.
MasterCLeaR.
UCC - součást rozhraní ICSP pro programování PICu v zapojení.
Nápájení PICu během programování.
DATA - součást rozhraní ICSP pro programování PICu v zapojení.
Datový vstup/výstup.
CLK - součást rozhraní ICSP pro programování PICu v zapojení.
Vstup hodin.
TX - Výstup. Push To Talk, tedy zaklíčování stanice. Stanice
zaklíčuje, pokud se tento výstup uzemní, tedy sepne se
tranzistor BC546A.
CTCSS_IN - Vstup. Stanice nastaví L (log.0), pokud příjímá
protistanici se správným CTCSS kódem, jinak je v H (log.1).
DATA_IN - Vstup signálu z teplotního čidla. Tento vstup není
využíván, protože jsem funkci měření teploty nedodělal.
+5V - výstup 5V pro napájení teplotního čidla, pokud by bylo
připojeno.
UP KEY - výstup z analogového spínače tvořeného pomocí
4066. Simuluje stisk klávesy UP na stanici.
MODE KEY - výstup z analogového spínače tvořeného pomocí
4066. Simuluje stisk klávesy MODE na stanici.
REZERVA - zbylé nevyužité výstupy z analogového spínače
tvořeného pomocí 4066. Lze je použít na cokoliv.
Popisovat zde detailní funkci programu nemá asi moc velkou cenu, protože zdroják je hodně komentovaný. Každopádně zde uvedu pár důležitých míst, kde se musí zdroják doplnit o vámi zvolené hodnoty, resp. nahradit otazníky hodnotami.
1) Je nutné si zvolit, jaký kanál bude pro opakovač
domovský. Já jsem zvolil 2.
constant domkanal=2
2) Je nutné zvolit číslo CTCSS kódu, u mě je to 33.
constant domctcss=33
3) Servisní číslo, které slouží na dálkovou změnu
ostatních kódů. Zvolil jsem 1732
constant service1=1
constant service2=7
constant service3=3
constant service4=2
4) Poslední věcí je nastavení implicitních hodnot kódu,
dají se pak na dálku změnit.
;cislo pro zapnuti repeateru
de 4,5,2,5
;cislo pro broadcast ring s CTCSS
de 3,3,3,3
;cislo pro test pip
de 4,5,6
Po naprogramování procesoru (data + config + eeprom) je nutné
stanici nastavit tak, aby měla na všech kanálech vypnutý
CTCSS kód a nastavit ji na domovký kanál, v mém případě
kanál 6. Opakovač totiž umí krokovat po kanálech a musí se
tímto zesynchronizovat se skutečným stavem. Určitým problémem
se stal fakt, že stanice si pamatuje poslední zvolený kanál i
po vypnutí napájení. Do programu jsem tak musel dopsat ukládání
aktuálního kanálu do EEPROM, takže pokud dojde k výpadku napájení
a stanice je momentálně na jiném než domovském kanále, PIC
to ví a po připojení napájení se vrátí na domovský kanál.
Přeprogramováním procesoru (data + eeprom) se hodnoty v EEPROM
přepíší defaultními honotami a je nutné stanici vrátit na
domovský kanál manuálně - toto samozřejmě platí pouze při
laborování. Jediným slabým místem programu je, že pokud by
došlo k přerušení napájení v momentě, kdy stanice krokuje
kanály anebo CTCSS kódy, tak se aktuální pozice do EEPROM
neuloží a stanice zůstane po vypršení všech timeoutů buď
nějakém jiném kanále nebo na domovském kanále pod nějakým
CTCSS kódem. Servisní menu na toto pamatuje a dokáže krokovat
kanály nebo CTCSS kódy aniž by se zapisovaly nové aktuální
pozice do EEPROM a dokáže tak stanici na dálku upravit do
korektního stavu.
Po připojení napájení se automaticky zapne stanice a procesor otestuje, zda-li se stanice nachází na domovském kanále a má vypnutý CTCSS kód. Pokud ne, vrátí stanici na domovský kanál a CTCSS vypne. Nyní opakovač poslouchá a v hlavní smyčce čeká na zadání kódu:
1) 456, což je testovací režim. Do etéru 2x pípne a vrátí se zpět do hlavní smyčky.
2) 3333, což představuje broadcast režim. Nejde o nic složitého, procesor pouze nastaví CTCSS kód podle konstanty domctcss, tedy 33 a do etéru odvysílá v morseově abecedě 3x CQ. Poté se CTCSS vypne a vrátí se do hlavní smyčky.
3) 1732, což je vstup do servisního režimu. Po zadání
tohoto kódu se ozve dlouhý tón a PIC čeká na zadání příkazů.
Pokud do cca 30sekund nepřijde žádný příkaz, servisní režim
se ukončí a program se vrátí do hlavní smyčky. Příkazy
jsou:
* - posun kanálu na stanici o jeden nahoru bez změny aktuální
pozice v EEPROM PICu
# - posun CTCSS kódu o jeden nahoru bez změny aktuálního kódu
v EEPROM PICu
0xxxxyyyyzzz - kde xxxx je nový kód opakovače, yyyy je nový kód
broadcast režimu a zzz je nový kód na testovací režim
4) 4525, což je vstup do režimu opakovače. Po zadání
tohoto kódu se ozve uvítací znělka a poté opakovač čeká
na příkazy. Odpočítává se cca 2.5 minutový timeout od
poslední činnosti, po jehož překročení se stanice vrátí
na svůj domovský kanál a poté do hlavní smyčky. Příkazy
jsou:
* - začátek nahrávání
# - přehrání nahrané zprávy nebo opětovné přehrání
poslední zprávy
0 - ukončení režimu opakovač, návrat na domovský kanál a
poté do hlavní smyčky
1x - opakovač se přesune na kanal x. Hodnota x je v intervalu
od 1 do 8
2 - aktivace automatického opakovače. Popis v dalším odstavci.
Automatický opakovač je režim, kdy není nutné při komunikaci používat DTMF kódy * a #. Nahrávání a přehrávání se aktivuje pomocí příjmu CTCSS kódu. Po aktivaci tohoto režimu stanice odvysílá sekvenci CTC v morseově abecedě a poté nastaví CTCSS kód podle konstanty domctcss, tedy 33. Protistanice si taktéž musí nastavit stejný kód. Pokud pak protistanice začne vysílat, procesor ve stanici nastaví úroveň napětí na výstupu ctcss_in na hodnotu 0V, tedy říká tím, že přijímá signál prostistanice se správným CTCSS kódem. Opakovač začne nahrávat až do doby, než signál ctcss_in přejde na úroveň 3.6V, což znamená, že protistanice přestala vysílat. Poté po určité pauze zaklíčuje a začne záznam přehrávat. Jelikož nějakou dobu trvá, než opakovač zaregistruje CTCSS kód, je lepší po zaklíčování protistanicí počkat cca 1 sekundu a až poté začít hovořit. Automatický režim lze okamžitě ukončit DMTF kódem 0 a vrátit se tak do režimu klasického opakovače a k vypnutí CTCSS kódu. Pokud se tento režim neukončí nulou, dojde k jeho ukončení po uplynutí timeoutu cca 1 minuty.
Po otevření stanice a přípájení kablíků na napájení
a signál ptt. Tento obázek nejde zvětšit.
Z kuprexitu jsem vytvořil nosný rámeček. Vlevo dole je
stanice uchycena propájením plošky pro šroubek a záporný pól
baterie. Horní část stanice drží přepážka, připájená k
plechovému rámu displeje.
Tady už jsem připájel kablíky na ctcss_in, ptt, mode a up. Červený
vodič je nápájení pro stanici.
Pohled na zadní část opakovače.
Celkový pohled i s připojeným zdrojem 5.5V 500mA. Ten šedý
drátek vlevo nahoře je provizorní anténa, se kterou byl signál
slyšet na 50mW až v Olomouci (cca 15km).
Schéma zapojení opakovače
Firmware a ostatní
http://www.hamradio.cz/prevadece/ctcss/
- úvod do problematiky CTCSS
http://www.microchip.com/
- zde můžete najít pdfka k PICům
Provozování opakovače v této podobě porušuje generální
povolení na provoz stanic v PMR pásmu. Konstrukce nemá být návodem
k takovéto činnosti, ale má být námětem pro další bastlení,
experimenty a laborování.
Budu velmi rád, pokud mi pošlete mail s vašimi postřehy nebo
názory.