La seconda parte del tutorial di Marco Gottardo sui PIC.

Let's GO PIC!!!

secondo capitolo:

ANDIAMO ON LINE

Questo tutorial è dedicato a tutti i fortunati possessori di un esemplare della Micro-GT PIC versatile I.D.E. o a tutti quelli che ne vorranno assemblare una. 

Vi metterò in grado di flashare il PIC e quindi di utilizzare il programmer dedicando pochi minuti alla lettura e all'esecuzione guidata dei test.



Buon lavoro e buon divertimento a tutti.

Marco Gottardo.

Software dedicato o utilizzabile.
Stiamo sviluppando una piattaforma dedicata che in analogia a quella ufficiale di casa Microchip, l'MP-Lab, sarà chiamata MG-Lab. In attesa che sia rilasciata la prima beta release adoperiamo degli strumenti standard sfruttando la compatibilità del nostro progetto con il noto 8076. Questi si programma usando il PICPROG2009 che si trova facilmente in giro.

clicca qua

La piattaforma MG-Lab integrerà un compilatore "Ansi C" che permetterà l'utilizzo delle librerie "C16" totalmente compatibile con il prodotto della "Hitech" normalmente integrato in Mp-Lab

Connessione tramite cavo seriale.
La scheda Micro-GT PIC versatile I.D.E. viene connessa ad un PC tramite un cavo seriale alla porta RS232 di un PC (quando sia disponibile), in caso contrario basterà procurarsi un adattatore USB-RS232, io personalmente uso un mahnattan e non ho mai riscontrato problemi di funzionamento. In caso di collegamento diretto alla porta è importante che sia compatibile IBM e che supporti l'UART 16550, se avete dubbi provate comunque, non succederà nulla al vostro PC.

Bisogna sapere che la circuiteria posta immediatamente dopo il connettore converte il protocollo RS232 in un I2C emulato in modalità handshake.

Gli UART  (universal syncronous receiver transmitter), funzionanti a livello logico TTL e delegati alle operazioni di controllo della parità, sincronizzazione, temporizzazione dei dati ecc, si trovano all'interno del PIC che avete inserito nello zoccolo ZIF, mentre nella Micro-GT PIC sono residenti i due integrati che si occupano al pilotaggio della linea di trasmissione e alla traslazione dei livelli, dato che sui cavi esterni saranno presenti tensioni bipolari a ben 12V.

Il vero driver è il classico MAX232. che ha ad esempio l'importante ruolo di trasformare in unipolare il segnale seriale che in RS232C è bipolare, nonché di portarlo da un livello di 12V a un livello di 5V, viceversa quando il segnale arriva in forma TTL dal PIC e vuole andare verso il PC.

Il cavo da utilizzare è semplicemente passante, ovvero configurato pin to pin.

Un importante accorgimento è quello di comprare i connettori cannon SUBD miniature a 9 pin di tipo compatibile con quanto avete già montato sulla Micro-GT, e tenendo presente che per questioni di standard, sul lato PC questo è sempre di tipo "maschio". Un piccolo approfondimento, senza andare troppo fuori tema, si può portare dicendo che in sistemi di trasmissioni comunicanti si può distinguere tra DCE (data comunication equipment) e DTE (data terminal equipment). per standard i DCE (lato PC) è sempre maschio, ovvero vediamo i pin spuntare, mentre nel dispositivo pilotato (DCE, quali ad esempio erano i vecchi mouse seriali) il connettore è sempre femmina.

Anche se non siete costretti a fare così, vi consiglio di montare sulla Micro-GT il connettore Cannon SUBD 9 poli femmina, e quindi il cavo avrà una femmina da collegare al lato PC e un maschio da collegare al vostro programmer Micro-GT. Se seguite questo consiglio vi troverete correttamente impostati anche se uscite in usb da un portatile e utilizzate il convertitore USB/RS232 di cui ho accennato in precedenza.

Ecco lo schema di come cablare il connettore se non avete già disponibile un cavo passante (prolunga seriale).



Collegamento e primo collaudo.
Prima di accendere il sistema assicurarsi che non via sia alcun PIC alloggiato nel textool, quindi colleghiamo il cavo alla porta seriale del computer oppure al convertitore USB/RS232 se stiamo ad esempio operando con un PC privo di questo connettore.

Alimentiamo il dispositivo portando tensione al morsetto X1 (quello a sinistra della seriale). Per fare questo avrete ampio margine di manovra perché è progettata per essere alimentata sia in continua che in alternata. Se invertirete la tensione continua a 15 volt che portate al morsetto X1 non succede nulla, si accenderà correttamente. In definitiva, se avete un nudo e crudo trasformatore con tensione efficace misurata al secondario di 12V, attaccatevi a X1 e tutto funziona, come anche tutto funziona se attaccate un vecchio alimentatore da PC portatile, di tensione maggiore o uguale a 15 volt. Non scendete sotto a questa tensione perché i PIC per essere flashati, se non si abilita la modalità a bassa tensione via software, hanno bisogno di una tensione di 13,2 volt che noi otteniamo ponendo in serie al piedino di massa del regolatore di tensione due diodi di tipi 1N4148. Questi diodi essendo posti nel PCB subito dietro al regolatore più a sinistra (quello a 12V) non sono visibili nella foto iniziale.

Connessa l'alimentazione il led POWER si illumina, segnalando che sono presenti i 12v e dato che il secondo regolatore risulta in cascata, se questo è operativo, anche i 5volt necessari per l'alimentazione del PIC.

Nella vista dall'alto si nota meglio la posizione del led e il fatto che essendo alimentata risulta acceso.

A questo punto siamo pronti per lanciare il picprog2009, ovviamente dopo averlo installato nel vostro PC, e tenendo ben presente che si tratta di un ripiego, per quanto totalmente funzionante, fino a che non rilasceremo la prima beta release del sistema integrato di programmazione MG-Lab.

 

Grossomodo la sezione circuitale che riguarda la programmazione, a meno della modalità di collegamento in supervisione che è specifica della nostra Micro-GT, assomiglia a quella del prodotto per cui è stato scritto il picprog2009, così che avrà l'impressione di essere interfacciato al sistema che si aspetta, facendo girare le stesse routine diagnostiche.

 Confrontiamo cosa si aspetta di vedere questo software "alieno" con quello che in realtà c'è in campo, così vi fate anche un'idea preliminare di come verranno  sviluppate le interfacce grafiche del MG-Lab.

Clicchiamo sul pulsante con l'icona "a pcb" che ci porta nell'area diagnostica, dopo aver selezionato il microcontrollore di nostro interesse, per il momento il 16F877A:



Si viene proiettati in una schermata che rappresenta il sistema nativo per questo software, ma che nella nostra versione mostrerà il layout della Micro-GT PIC.

Su questo layout vediamo alcune cose di particolare interesse, in primo luogo i led di segnalazione di stato dei dati e delle tensioni.

 

Questi led hanno una corrispondenza quasi diretta con quelli presenti nella Micro-GT PIC versatile I.D.E. come possiamo notare nella foto sottostante.

Trovandosi sul lato sinistro della scheda l'orientamento non coincide, sono infatti disposti in verticale. Dall'alto verso il basso sono DVPP (verde), DPGC (rosso), DPGD (rosso).

La diagnostica si può eseguire in due diverse maniere:

 Entrati nell'area  diagnostica, come accennato vedete il layout della scheda che nel nostro software sarà quello della Micro-GT, ma ora focalizziamo l'attenzione sul fatto che, avendo impostato il controllore di interesse nella precedente schermata, il programma ci suggerisce dove collocare i fili volanti del connettore ICSP (in circuit serial programming) facendoci vedere la disposizione fisica. Ovviamente se cambiamo microcontrollore ci viene suggerita la nuova corretta disposizione dei medesimi.

L'informazione in questa immagina è importantissima dal punto di vista operativo perché su tre colonne mostra la piedinatura del connettore ICSP, dello zoccolo ZIF, o textool, e del PIC reale, quindi siamo ben guidati contro gli errori di collegamento. Tutto quanto ci suggerisce questa foto è valido anche per la Micro-GT, e sarà riportato identico nel nostro software dedicato.

Alcune immagini qui sotto mostrano la corretta costruzione del cavo ICSP e del suo posizionamento nei connettori della "Micro-GT PIC", Questi due connettori hanno, come nella foto sopra, una chiara serigrafia che li indica. Fate attenzione che il il pin numero 1 si trova a sinistra e deve corrispondere al filo marrone.

Cavo ICSP dedicato alla Micro-GT, l'altro lato lasciatelo libero e semplicemente inseritelo assieme al pin del processore nello zoccolo textool. Ancora vi raccomando di rispettare i colori.

 

Una chiara indicazione di come inserire il connettore ICSP nel connettore ICSP1 della scheda, esiste anche una seconda via ISCP2 che per il momento non usiamo.

Una volta lanciata la diagnostica, se avete assemblato bene la scheda, o perlomeno la parte che riguarda la comunicazione con il PC, le sequenze di accensione automatica a video vanno di pari passo con i led reali in campo. Siete quindi pronti per programmare i PIC  in maniera reale dopo che avete testato il funzionamento del vostro file .hex usando realpic simulator, come spiegato nella prima parte di questo corso online. Chi non lo avesse ancora letto lo faccia ora.

Filmato del test della comunicazione e dei data line.
Nel filmato possiamo vedere la Micro-GT PIC collegata al mio netbook tramite un adattatore seriale USB. Per il momento il software che uso per eseguire il test è il picprog2009, utilizzabile anche per flashare i PIC come spiegato sopra. Per ogni specifico PIC  la scheda va configurata tramite i filetti colorati del connettore da attaccare ai connettori ICSP, mentre dal lato libero consiglio di alloggiare i cavi semplicemente pinzandoli assieme al microcontrollore all'atto dell'alloggiamento nel textool. È più semplice ed efficace, oppure usate dei singoli strip femmina e collegatevi al corretto pin di direct I/O per il quale devo rimandarvi allo schema elettrico. Se vi compare questo messaggio di errore significa che avete sbagliato qualcosa in fase di assemblaggio o che il o i cavi usati non sono adatti. potrebbe anche significare che la porta del PC a cui vi siete collegati non è operativa

 

 

Clicca qui per scaricare il filmato  in formato "3gp" del test della comunicazione.

Esercizio proposto.
Come prima esperienza completa vi invito a caricare il file .hex del led lampeggiante eseguito nel primo tempo del tutorial. Vi ricordo che è stato usta un PIC 16F877A ma che potrete usare tranquillamente un 16F876.

Vi ricordo che i led si accendo solo se collegate i catodi a massa agendo sul dip switch S13, immediatamente sopra ai trimmer dei segnali analogici. Le tre vie del dip switch sono, da sinistra, RB, RC,RD.

Prima di ogni utilizzo con un nuovo PIC sarebbe bene che questo dip sia sempre aperto così da evitare che una diversa piedinatura di un diverso pic possa ad esempio mandare a massa il clock tramite un LED.

Circuito stampato della Micro-GT PIC versatile IDE.
Il circuito stampato, come anche gli schemi elettrici in formato Eagle, sono disponibili sul mio sito personale e liberamente scaricabili. L'onere della realizzazione potrebbe essere per molti utenti fuori portata dato che il pcb presenta molte connessioni passanti metallizzate tra il lato saldature e il lato componenti. La fabbrica in cui ho commissionato la campionatura si trova in Cina e li sono già depositati i file gerber, quindi se e solo se siete interessati a farvene almeno un centinaio potete contattare Sandy che vi farà da interprete presso questa fabbrica.  L'indirizzo di posta elettronica è: bonzisandy88@hotmail.com   

Se invece siete interessati a un singolo esemplare o ad alcuni esemplari, che risulterebbero troppo onerosi come ordinazione in fabbrica e trasporto dalla Cina, possiamo attingere dalla mia scorta personale, ovvero dalla campionatura che ho citato più sopra. Mandatemi un messaggio privato e ve la spedisco a casa assieme a un'altro piccolo PCB per pilotare i display a sette segmenti che useremo come demoboard durante il nostro corso online di programmazione.

 

pcb della Micro-GT PIC versatile IDE, misura 165mm x 155mm.

Nella foto sottostante c'è il secondo pcb che riceverete nella stessa busta della Micro-GT, si tratta in effetti del pcb dell'orologio a microprocessore di un altro mio progetto. Alloggia un PIC a 18 pin, quindi è molto compatto. È in grado di pilotare 4 display collegabili tramite cavo Flat al connettore a 12 pin che vede in alto, Con questo faremo esercizi di conteggio, di visualizzioni di livelli, indicazioni numeriche (ad esempio il piano in cui si trova l'ascensore), e perché no l'orologio stesso per il quale è nato il pcb.

 

Le misure del pcb sono 57mm x 45mm, tecnologia dual layer supporto FR4.

Scarica il file orologio.hex da inserire nel pic 16F84A per la realizzazione dell'orologio con quarzo a 3,27 Mhz (accetta 4 Mhz). I sorgenti per la modifica di alcuni parametri sono scaricabili dall'articolo dell'orologio. Come utile esercizio invito gli utenti a programmare l'orologio in C16 e a trasformarlo in radiosveglia. Vediamo chi riesce a presentare questo risultato.

Conclusioni.

Nella terza parte del tutorial che si intitolerà "Let's go PIC !!!, digital I/O", ci divertiremo con l'utilizzo degli ingressi e delle uscite digitale, dopo ovviamente avere appreso l'hardware interno e i registri con cui questi sono implementati.

Gli utenti che non hanno ancora assemblato la scheda si affrettino, come anche chi ne volesse una si faccia avanti perché come già detto, vi fornisco i due PCB al solo costo del rimborso delle spese che ho sostenuto per costruirli.