Controllo radio per tabellone segnapunti - Debug via seriale

Il dispositivo ricevente dispone di un ulteriore sistema di debug a cui si può accedere attraverso il connettore ICSP preposto.

Questo prevede che, mentre il sistema sta lavorando, un computer portatile si connetta mediante PicKit2 alla suddetta porta.

A questo punto è necessario avviare l’applicazione PicKit2 sul PC, e dal menu “Tools” selezionare “UART Tool” per avviare il terminale seriale RS232. Verrà così creato un canale che metterà in comunicazione diretta il computer con il microcontrollore ricevente mediante protocollo seriale RS232 a livelli di tensione TTL, rendendo possibile la visualizzazione sullo schermo dei messaggi prodotti dal sistema.

Tali messaggi dipendono dal firmware caricato sul PIC, pertanto per comprendere propriamente questa modalità di debug è necessario leggere e capire appieno il codice sorgente.

Ad esempio, alla ricezione di ogni comando il microcontrollore invierà il codice di comando, il codice di controllo ricevuto ed un terzo byte che sarà 11h nel caso i due codici siano coerenti (il codice di controllo sia cioè uguale al codice di comando negato), oppure 88h nel caso siano discordi.

Grazie a tali informazioni è possibile comprendere se, ad esempio, i dati trasmessi arrivino al PIC o meno, se essi vengano interpretati in modo corretto, ed altre informazioni utili, il tutto senza dover rimuovere il sistema dalla sua locazione.

Questa modalità può essere attivata o disattivata a piacere poiché il suo utilizzo è determinato da una costante inserita nel software del PIC ricevitore:

#define USA_SERIALE 1          // Flag per il debug via seriale

Impostando questo flag a 1 o a 0 si decide se mantenere o meno questa funzione.

Un’ulteriore possibilità offerta dal debug via cavo consiste nell’utilizzo dell’analizzatore logico integrato nel programmatore PicKit2 per visualizzare la temporizzazione di acquisizione dei dati in arrivo.Sempre connettendo il PicKit2 alla porta ICSP, avviare l’applicazione e dal menù “Tools” selezionare “Logic Tool” per accedere all’analizzatore logico a tre canali.

I primi due canali visualizzano le forme d’onda relative alla comunicazione seriale RS232 precedentemente descritta, mentre il terzo canale è connesso ad un pin del microcontrollore che quest’ultimo attiva durante la routine di acquisizione di ogni bit.

Il pin del PIC che si sta monitorando viene pilotato in questo modo:

quando il microcontrollore riceve un comando, viene verificato il bit di start. Se il bit di start è valido, ogni bit viene letto otto volte, come è stato mostrato nel capitolo relativo al protocollo di trasmissione in una figura che è riportata di seguito:

(clicca sull'immagine per vederla più grande)

Il pin collegato al terzo canale è normalmente basso e viene portato alto quando si entra nella routine che gestisce gli otto istanti di decisione.

In pratica, questo pin sarà dunque alto dal 4° al 20° millisecondo di ciascun bit. Dunque l’onda che dovrebbe comparire sul terzo canale dell’analizzatore logico è quella evidenziata in rosso nella figura che segue.

(clicca sull'immagine per vederla più grande)

La visualizzazione di questa forma d’onda permette di capire se il microcontrollore entra nella procedura di lettura dei comandi o se l’invio degli stessi si fermi prima della procedura di validazione del bit di start.

Si tratta di un ulteriore metodo di debug che rende possibile l’individuazione di eventuali malfunzionamenti senza dover rimuovere l’intero sistema di ricezione e comando.