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.
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:
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:
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 |
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: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...
praz2004 chiocciola libero punto it | ||