TNC kiss-mode con PIC


Il progetto che segue consente la realizzazione con pochi componenti di un TNC compatto per utilizzo packet radio (con firmware KISS) e APRS tracker collegato ad un ricevitore GPS con uscita NMEA standard RS232.

L'hardware è stato sviluppato dal papà del più noto TNC-X, John Hansen W2FS. Inizialmente volevo realizzare un clone "casalingo" del TNC-X, ma ho dovuto desistere a causa della difficoltà a reperire la RAM seriale richiesta da quel progetto. Mi sono imbattuto in questo articolo pubblicato sulla rivista QST che. oltre ad utilizzare componenti più facilmente reperibili, monta una CPU con la memoria sufficiente a contenere anche il codice necessario a implementare le funzioni di tracker per attività APRS. Per quanto riguarda l'hardware mi sono limitato a modificare la parte dello schema riguardante la comunicazione RS232 e l'alimentazione della scheda.


Descrizione

Il TNC è costituito da una CPU tipo PIC 16F877, una RAM statica 32K x 8 tipo 62256, il modem BELL202 costituito dall'integrato FX614P e pochi altri componenti necessari alla comunicazione tramite porta seriale RS232 e all'alimentazione a 5 volt della scheda. Tutti i componenti utilizzati sono a dire il vero piuttosto datati ma comunque facilmente reperibili e tutto sommato economici. Sulla CPU "girano" le routines necessarie a gestire il protocollo KISS e quelle dedicate alla decodifica delle stringhe NMEA provenienti dal ricevitore GPS e alla successiva composizione di un pacchetto beacon APRS. Nella memoria RAM vengono creati due buffer destinati a contenere i dati in trasmissione ("parcheggiati" fino a quando il pacchetto è completo e il modem in grado di trasmettere) e ricezione fino alla validazione del pacchetto di dati in ingresso affidata a un controllo di ridondanza CRC.
Ecco lo schema:



Realizzazione

Da sempre allergico agli stampati a doppia faccia, sono arrivato alla soluzione "una faccia e mezza". In effetti la quantità di piste per il colloquio tra CPU e RAM impone la presenza di parecchi ponticelli (in rosso sulla disposizione componenti). La densità di componenti è tale da permettere la realizzazione della piastra anche a pennarello o trasferibili; in questo caso prestare la massima attenzione a non commettere errori. Io ho optato per il metodo Press'n'Peel, o Stira e ammira che dir si voglia, he mi ha permesso un risultato più professionale oltre che la realizzazione di un piano di massa sempre utile quando convivono a pochi centimetri CPU e sorgenti RF. Ecco il lato rame della piastra:


E questa è la disposizione dei componenti. In rosso i numerosi ponticelli da realizzare prima del montaggio dei componenti.


Elenco componenti

Tipo/valore Quantità Riferimento
18pF 2 C5, C6
27pF 2 C2, C3
0.1uF 7 C1, C4, C7, C8, C9, C10, C11
100uF 35V 1 C12
LED 3 D1, D2, D5
1N4001 1 D4
1N4148 1 D3
SIP HEADER - 2PIN 2 P1, P4
SIP HEADER - 3PIN 1 P3
SIP HEADER - 4PIN 1 P2
2N2222 3 Q1, Q2, Q3
1 Kohm 3 R3, R4, R13
4.7 Kohm 4 R9, R10, R11, R12
10 Kohm 4 R1, R2, R5, R14
100 Kohm 3 R6, R7, R8
PIC 16F877a 1 U1
62256, sram 32K x 8 1 U2
FX614 1 U3
7805 1 U4
10 Kohm pot 1 V1
10 MHz XTAL 1 X1
3.5795 MHz XTAL 1 X2

Il firmware

In rete è disponibile la versione originale del firmware, scritto in CCS C. Recuperato il compilatore ho caricato il firmware sul PIC ed eseguito le prime prove. Risultato: decodifica in ricezione scarsa con molti pacchetti persi, rumoraccio in trasmissione ben lontano dalla caratteristica nota dei 1200 bps. Dopo ore di controlli e verifiche sono giunto alla conclusione che le temporizzazioni del software erano da rivedere... Dopo qualche ritocco tutto è tornato alla normalità. Le mie attenzioni si sono dunque rivolte alle funzioni del firmware: ho implementato la funzione CALIBRATE che manda manualmente in tx la radio con un tono modulato a 1200 o 2200 hertz utile in fase di taratura del sistema o puntamento delle antenne. Per quanto riguarda la parte APRS ho optato per l'emissione di pacchetti "in chiaro" e non compressi con standard MIC-E per la maggiore compatibiltà con i vari software disponibili. Seguono alcune schermate ottenute accendendo il TNC in modalità SET. I parametri impostati vengono registrati nella EEPROM della CPU quindi possono essere modificati solo via software.

La schermata iniziale:


Il menu seguente serve a immettere i parametri per il funzionamento in APRS.


Il menu Calibrate...


Cablaggi e finitura

Accertato il corretto funzionamento non rimane che inscatolare il TNC.. Per evidenti motivi è raccomandabile l'utilizzo di un mobiletto metallico. Nelle foto che seguono la realizzazione ultimata. Per il collegamento alla porta RS232 ho utilizzato un connettore DB9 maschio in modo tale da permettere il collegamento diretto al GPS e con un cavo null modem al PC. I cablaggi tra la piastra e i pannelli posteriore e frontale del mobiletto sono terminati con connettori a pettine a passo 100 mils (2.54 mm) così da permettere di disassemblare velocemente le parti. I collegamenti alla radio rispecchiano lo schema adottato per il TNC-X: un jack da 3.5 mm mono per l'uscita audio, un secondo jack da 3.5 mm stereo per PTT (tip) e segnale microfonico (ring). Completano i pannelli la presa di alimentazione coassiale da 1/4", interruttore di alimentazione, deviatore per i modi SET/OPERATE e i led di segnalazione PWR, RX DATA e TX DATA.
I sorgenti modificati ed il firmware compilato sono disponibili qui.
Il risultato finale potrebbe somigliare a questo...






Buona costruzione!


praz2004 chiocciola libero punto it