Opakovač pro PMR pásmo

11.02.2005

Intro

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

Radiostanice

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 stanice

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

 

Ovládací elektronika

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.

Firmware

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.

Funkce opakovače

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.

Fotogalerie


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


Ještě jeden celkový pohled.


Bastl stůl :-))

Ke stažení

Schéma zapojení opakovače
Firmware a ostatní

Odkazy

http://www.hamradio.cz/prevadece/ctcss/ - úvod do problematiky CTCSS
http://www.microchip.com/ - zde můžete najít pdfka k PICům

Na závěr

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.