APRS repeater s PIC16F876A

APRS repeater s procesorom 16F88 funguje veľmi dobre, ale pretože má len 18 vývodov a aj konfiguracia vnútorného analógového komparátora je riešená tak nešťastne, že zaberie celý A port. Z uvedeného dôvodu nie je dostatok vývodov pre ďalšiu konfiguráciu. Preto som pristúpil k realizácii TNC procesorom, ktorý má viac vývodov, konkrétne s PIC16F876A. Tento obvod má 28 vývodov, a to už bohate stačí na to aby TNC mohol byť konfigurovaný aj bez preprogramovania procesora. Na doske sú 3 nové vstupy a 3 LED na indikáciu. Tento TNC je adaptáciou pôvodného, preto tam uvedený popis viac-menej platí aj na túto verziu.
Aby vygenerovaný sinusový signál bol krajší, rozšíril som aj D/A prevodník zo 4 na 5 bitový.
Funkcia jednotlivých JUMPERov:
                    P1,P2 - rýchlosť komunikačného portu
                    P3      - test - keď je spojený, nekontroluje CRC
                    P4      - GPS pripojený
                    P5      - nízka vstupná impedancia
                    P6      - +5V pre GPS prijímač
                    P7      - PTT cez mikrofón (rúčky)

Na doske sú 4 konektory - RS232, TCVR, napájanie, teplomer.
Zapojenie jednotlivých konektorov:
RS232:
                    2 - TxD
                    3 - RxD
                    4 - +5V
                    5 - GND
                    9 - +5V
TCVR:
                   1 - Audio in
                   2 - GND
                   3 - Audio out
                   4 - PTT
                   5 - +12V napájanie
Napájanie:
                   Vonkajší kontakt - GND
                   Vnútorný kontakt - +8V až  +12,8V
Teplomer:
                   1 - GND
                   2 - DQ
                   3 - +5V

Na indikáciu slúží 6 LED diód, ich funkcie sú:
                   D5      - PTT
                   D6      - zapnuté
                   D7      - DCD
                   D8      - GPS pripojený
                   D9      - Converse
                   D10    - rezerva

Nastavenie RS232:
                   P1            P2
                    r                r                   4800 Bd
                    r                s                   9600 Bd
                    s                r                 19200 Bd
                    s                s                 38400 Bd
r- rozpojený,     s - spojený
Doporučujem nastaviť čím väčšiu rýchlosť na RS232
, pretože procesor dokáže obsluhovať len jeden proces. Keď je rýchlosť komunikácie cez sériový port nízka, procesor nemá pri silnej prevádzke dosť času na spacovanie paketov. Výsledok je, že strácame pakety, ale nie z dôvodu toho, že demodulátor funguje nesprávne, ale preto, lebo procesor jednoducho nestačí spracovať signál. U mňa je nastavená rýchlosť 38400 Bd a nestrácam pakety ani pri silnej prevádzke. Samozrejme najlepším riešením je, že v prípade keď nechceme sledovať prevádzku, tak monitor s príkazom MON OFF vypneme. Keď zariadenie budeme používať ako APRS opakovač, monitorovanie aj tak nebudeme potrebovať.
Zariadenie nepotrebuje žiadne nastavenia, jediný ovládací prvok je potenciometer na nastavenie zdvihu
. TNC môžeme napájať z osobitného zdroja alebo priamo z TCVR. Ak nie je pripojený GPS prijímač, tak odber je minimálny.
Činnosť teplotného čidla je odskúšaná a funguje bez problémov. Pretože existuje podstatne jednoduchšie zariadenie, ktoré sa dá používať ako APRS Tracker, preto TNC s GPS prijímačom som nevylepšoval. Pozíciu vysiela podľa nastavenia BEACONu (minimálny čas 1 minuta) bezohľadne na to, aká je rýchlosť. Z uvedeného dôvodu ako tracker doporučujem používať BCTrack, ten má podstatne inteligentnejší softvér.


Osadená doska - rozmer 75x88 mm

Plošný spoj (skutočný rozmer: 75x88 mm):


Program do procesora:

TNC firmware

Konfigurácia TNC:

Ak rýchlosť komunikácie je správne nastavená na TNC a aj v terminálovom programe, tak po zapnutí sa objavý tento text:

MODEMLESS TNC v 2.32
MODIFIED BY OM3BC FOR 16F876A
Type HELP for Info

cmd >

Po napísaní príkazu HELP, dostaneme krátky popis príkazov. Ja mám nastavené perametre takto:

cmd >disp
Filter ON
ECHO ON
TEMPerature C
TXDELAY 35
GPS $GPRMC
TRace OFF
MONitor ALL
DIGIpeater ON
BEACON On EVERY 30
UNPROTO APE232-0 V WIDE1-1 V WIDE2-2 V SK2-2
MYCALL OM3BC-1
MYALIAS FIL1
BTEXT !4815.91NS01949.21E#PHG32304/A=000577 APRS Repeater with PIC16F876A http://www.om3bc.com Temp. \t C

OK
cmd >
Malé vysvetlenie parametrov:
Filter - filtruje komunikáciu ktorá smeruje na seriový port, aby do terminálového programu sa nedostali riadiace znaky, ktoré majú kód od 0 do 31, výnimkou znakov CR,LF a BS.
ECHO - či program má poslať späť prijaté znaky cez sériový port, alebo nie
TEMP - teplotu má posielať v stupňoch celsia alebo farenheitu
TXDELAY - n x 10ms, určí koľko času má uplynúť od aktivovania PTT do vysielania paketu
GPS - v pripade pripojenia GPS prijímača program BEACONTEXT v uvedenom formáte
TR - slúží na testovanie, na seriový port vyšle nespracovaný text v hexadecimálnom tvare. Keď je aktívny XMIT, tak data idú len na seriový port - TCVR nevysiela
MON - monitorovanie paketov: ALL - všetko, OFF - nič. ME nie je implementovaný.
DIGI - zapnúť funkciu DIGIPEATER, keď je to Off, tak nebude fungovať ako opakovač.
BEACON EVERY - ako často má vysielať identifikačné údaje. Keď táto hodnota je 0, tak BEACON je vypnutý.
UNPROTO - APE232 znamená, že sa jedná o zariadenie s procesorom PIC a verzia programu je 2.32
MYCALL - vlastná značka (to ale asi nemusím vysvetlovať)
MYALIAS - to môže byť hocičo, len nesmie byť dlhší ako 6 znakov
BTEXT - hociaký text, len v prípade že chceme vysielať dohodnuté kódy tak treba dodržať patričné pravidlá. Keď chceme vysielať teplotu tak napíšeme znak \ a potom malé písmeno t - momentálna teplota,  l - najnižšia teplota, h- najvyššia teplota, s - počet meraní, a - APRS formát (pevný počet znakov). Keď počet meraní prekročí hodnotu 99, tak minimálna a maximálna teplota sa vynuluje.
 
Počas testovania som zistil v pôvodnom programe viac nedostatkov. Hlavný nedostatok, ktorý ma aj trošku šokoval, že časť DIGIPEAT vôbec nefunguje podľa špecifikácií. Túto časť som musel od základov prepísať. Počas testovania som prišiel na to, že program asi budem musieť úplne prepracovať. Z pôvodného programu tam zostalo len jadro - kódovanie a dekódovanie paketov. Ostatné časti som musel prepísať buď z dôvodu funkčnosti, nedostatku pamäte alebo kvôli estetike.

Na záver
Pôvodný článok mal názov: MODEMLESS TNC..... Možno to bol TNC, ale po analýze programu o tom nie som presvedčený. Ja to budem propagovať ako APRS DIGIPEATER a som toho názoru, že je to celkom dobre fungujúci opakovač paketov a ako jednoduché zariadenie bude dobre fungovať v sieti APRS. Ani tento program nie je dokonalý (platí Murphyho zákon, podľa ktorého dokonalý program neexistuje. Ak áno, tak určite si to nepísal ty). Zatiaľ program je v štádiu vývoja. Keď so svojimi poznámkami vieš uľahčiť moju prácu, tak mi ich napíš na moju e-mailovú adresu, čo nájdeš na mojej webovej stránke.