Micro-GT 18 mini
Micro-GT 18 mini
Scarica il pacchetto contenete il bootloader e downloader USB pinguino.
E' arrivata l'evoluzione della Micro-GT mini, orientata agli estimatori del PIC18F2550, ottima per le applicazioni didattiche come per le istallazioni a bordo macchina di piccoli Robot.
Questa scheda è stata progettata in tecnologia ibrida SMD, ovvero mezza PTH e mezza SMD e costituisce l'ormai inevitabile salto di qualità per tutti quegli hobbisti o tecnici che fino ad oggi non hanno ancora avuto il coraggio di fare il passo.
Il pin numero 1, da fare coincidere con il triangolino stampato sul PICKIT 3,
oppure con il filo marrone (Vpp) della porta icsp della Micro-GT IDE, è quello
più a sinistra. in questo modo, infilando il PICKIT3, dovrete vedere le scritte
della marca e modello, correttamente ovvero verso l'alto.
PICKIT 3 di Microchip
Il PICKIT 3 è un dispositivo USB e i suoi driver sono integrati nell'ambiente di sviluppo MPLAB X. Per chi possiede il PICKIT 2 non ci saranno problemi, al fine di programmare questa scheda saranno assolutamente equivalenti.
Collegamento della Micro-GT al PICKIT 3
Ricordo inoltre che la versione 2014 della Micro-GT IDE, integra la sezione PICKIT 2, quindi possederne una permette il risparmio sull'acquisto di questo dispositivo.
Usando il connettore pentapolare della Micro-GT IDE si dovranno rispettare i seguenti colori:
Connessioni ICSP
Il cavo pentapolare, sul lato
programmer, ha questo aspetto, di cui si raccomando di rispettare la sequenza
dei colori. Suggerisco di fissare le saldature con un po’ di colla a caldo
altrimenti il cavetto a causa della rigidità dei fili si romperà spesso.
Cavetto ICSP per la programmazione della Micro-GT 18 mini.
Nel lato programmer, potrà essere inserito nella maniera mostrata nella successiva immagine.
Uscita ICSP del programmer integrato nella prima versione di Micro-GT.
il cavetto ICSP della figura sovrastante entra nel connettore ICSP nel modo visibile nella foto sottostante. Il cavetto pentapolare può provenire anche da altre fonti ICSP in cui i colori sono comunque standardizzati. In questa foto notiamola presenza del condensatore al poliestere da 470nF di tipo standard perché all'atto del montaggio del prototipo non di disponeva a magazzino del corrispondente smd. La funzionalità è la medesima e la saldatura non troppo difficoltosa.
Si noti che il pin 6 del connettore ICSP potrebbe risultare non connesso come nella foto. Questo è comunque corretto.
innesto del connettore ICSP.
La programmazione tramite bootloader.
La modalità ICSP indicata sopra impone che il proprietario della scheda disponga anche di un altro dispositivo utile alla sua programmazione, il programmer.
Il costo del sistema aumenta notevolmente se ci si deve procurare anche questo dispositivo. Il costo diventa inaccettabile qualora si debba attrezzare un laboratorio multipostazione come ad esempio una scuola. Esiste una maniera di caricare il file .hex sfruttando direttamente le porte native del PIC.
Il bootloader e' un particolare programma, che istallato una sola volta all'atto dell'assemblaggio della scheda, permetterà la riscrittura dell'area programma in maniera veloce e ripetitiva usando il solo cavo seriale o il cavo USB a seconda del bootloader impiegato.
Va tenuto presente che il bootloader sincronizza le sue azioni di scrittura seriale dei dati nell'area programma sul segnale di clock, quindi a diversi quarzi corrispondono diverse versioni di bootloader.
Il quarzo naturale per il bootloader rilasciato da Microchip, e operante sia per il PIC18F2550 a 28 pin (quello di questa scheda) che per il PIC18F4550, a 40 pin e' quello a 20 Mhz.
Chi per qualche ragione avesse montato nella scheda un quarzo da 4Mhz potrà utilizzare la seguente versione (sempre di provenienza internet).
Scarica il bootloader per 18F2550 abbinato a quarzo da 4Mhz -> download.
I bootloader di questo tipo, operanti anche su porta USB, funzionano in maniera un po’ diversa dai classici operativi sulla seriale, ad esempio quello normalmente impegnato nella Micro-GT mini con a bordo il PIC16F876a, e' infatti necessario istallare l'apposito downloader e agire sui pulsanti Boot e reset e non solo sul pulsante hardware di reset come fatto finora, inoltre il programma potrebbe non andare automaticamente in esecuzione ma richiedere una sorta di start da parte dell'utente che dovrà agire sul tasto di reset.
Si deve porre attenzione anche all'area di memoria in cui allocare il bootloader e al fatto che questo non venga sovrascritto dal programma utente. A tal fine Microchip mette a disposizione del "linker" ovvero strumenti in qualche maniera correlati alla compilazione, in grado di riservare le aree di memoria basse al bootloader.
L'occupazione di memoria, nella parte bassa dell'area programma e' di 2Kbyte, ovvero dall'indirizzo 000H all'indirizzo 7FFH del pic di riferimento 18F2550 con cui si intende rilasciare, a chi fosse interessato, degli esemplari della Micro-GT 18 mini.
Sara' cura di chi sviluppa i programmi di non invadere questa area sovrascrivendo il bootloader. Rimangono comunque liberi ben 30K di memoria sui 32k disponibili nei 18F2550.
Va ricordato che questo tipo di programmazione non imposta i fuses del PIC e quindi la cosa deve essere implementata in code, ma del resto questa e' la consuetudine per chi ha seguito il corso online "Let's GO PIC !!!" o letto l'omonimo libro.
Scarica il bootloader per 18F2550 con quarzo a 20Mhz -> download
scarica il bootloader per 18F2550 con quarzo a 8 Mhz -> download
A inizio pagina è presente il link alla pagina web dell'IDE PINGUINO a cui la scheda è compatibile. Tramite la suite di programmi downloader/bootloader testata e suggerita potrete programmare la Micro-GT 18 mini usando il bootloader USB.
Scarica il pacchetto contenete il bootloader e downloader USB pinguino.
Il downloader e' facilmente rintracciabile in internet, ma nel caso non riusciate a trovarlo contattatemi alla mail ad.noctis@gmail.com
Porta seriale
La porta seriale è il classico connettore CANNON-DB9 sub miniature (femmina). Ufficialmente il protocollo RS232 definisce il protocollo di interfacciamento tra un DTE (data terminal equipment) e un DCE (data communication equipment) tramite il quale avviene uno scambio di dati. I segnali essenziali sono i pin 3 e 2 rispettivamente TX e RX del lato DCE.
Va ricordato che secondo le regole impostate nelle telecomunicazioni il DTE è il terminale computer mentre il DCE rappresenta la periferica di comunicazione quale era il modem seriale o una periferica quale il mouse e in questo caso il sistema di controllo Micro-GT 18 mini.
Un cavo "modem" sarà disegnato in modo da soddisfare la connessione pin to pin tra DTE e DCE, mentre un cavo così detto Null Modem presenterà un incrocio delle connessioni ai pin 2 e 3 tra il lato DCE e DTE. In questo secondo caso i segnali di consenso alla trasmissione e riconoscimento dell'avvenuta ricezione saranno cortocircuitati ai connettori dei rispettivi lati realizzando una sorta di inganno di "auto consenso all'invio" e "auto conferma della ricezione". Ne risulta che nella connessione null modem sono sufficienti tre conduttori, il due incrociato con il tre e il 5 al 5 per il riferimento alla massa mentre i segnali RTS e CTS cono cortocircuitati da entrambi i lati.
Analizzando lo schema si vede che dovremmo usare il protocollo a 5 fili, e quindi un cavo di tipo modem. In questo caso useremo il medesimo cavo che impieghiamo per la Micro-GT mini classica, ovvero quella che è stata presentata al capitolo 10 del corso online Let's GO PIC!!!.
Traslatore di livello MAX232.
Per essere più concreti mostriamo l'immagine del connettore in cui si riportano i nomi dei segnali abbinati al numero del PIN.
Posizione dei segnali al connettore RS232.
Vediamo l'interno del circuito intergrato MAX232 per giustificare la modalità di connessione alla porta seriale per uscire dalla scheda e ai pin TX e RX per entrarci.
interno del max232, fonte databook Maxim.
Lo standerd seriale EIA RS232C è basato su segnali che viaggiano nei cavi in maniera bipolare, con un range di riconoscimento valido piuttosto ampio, tra i +/- 6V e +/-12V, (e anche leggermente fuori nell'intorno di questi valori). Sorge quindi il problema di interfacciare un ambiente unipolare come l'alimentazione del PIC (detto anche MCU = microcontroller unit) a tensione genericamente TTL, ma oggi sempre più spesso a 3,3V, con l'ambiente bipolare del cavo di trasmissione.
Supponiamo il chip MAX232 alimentato a Vcc=+5V (pin 16) rispetto alla sua massa (pin 15). La sezione interna, più in alto nello schema a blocchi, collegata ai pin 1-2-3 alimentata TTL al pin 16, esegue la duplicazione della tensione disponibile, tramite una sezione step up che necessita dei condensatori elettrolitici C1 e C3. Quest'ultimo, se non si ha disponibile lo schema interno, potrebbe sembrare collegato rovescio dato che il suo terminale negativo viene posto al pin 16 l'alimentazione positiva del chip. Bisogna invece considerare che internamente la tensione viene duplicata e quindi al pin 2 abbiamo una tensione di +10Volt che giustifica il tipo di polarizzazione di questo condensatore. In pratica sembra rovescio ma non lo è perché al suo polo positivo ha una tensione più alta che a quello negativo. Le due capacità C3 e C5 si trovano in serie e formano quindi una sorta di partitore capacitivo motivo per cui sono indicate della stessa capacità. Tuttavia, in molte applicazione si potrà trovate C5 ridotto anche fino a 100nF. Benché la cosa non sia del tutto corretta funzionerà ugualmente.
La seconda sezione interna, a cui sono collegati i condensatori C2 e C4, implementa tramite una soluzione circuitale nota come "pompa di carica" l'inversione della polarità in modo da ottenere i -12V (ma vanno bene anche -10V) previsti per lo standard EIA RS232E.
In alcune applicazioni, ad esempio nel creare il riferimento negativo necessario a alcuni display grafici LCD, potremmo sfruttare questa sezione. Attenzione però al fatto che la corrente necessaria è piuttosto limitata, inferiore a 20mA, quindi dovremo munire questo riferimento negativo di un bypass a transistor per fornire l'eventuale corrente necessaria.
Collegamenti reali tra porta COM e MAX232.
Si vede nell'immagine che il secondo canale di comunicazione e' sconnesso dal lato interno ma collegato dal lato porta DB9. Questo e' per avvantaggiare future espansioni del protocollo ad esempio implementando un hand shake. Nella versione precedente sono state predisposte delle piazzole di collegamento eliminate in questa per questioni di spazio. Nel caso volessimo implementare questo protocollo dovremmo collegare manualmente il pin 10 e il 9 del MAX232 al dispositivo che lo richiede. E' comunque evidente che per il PIC ospitato nel PCB sarebbe inutile e questo trova giustificazione alla rimozione di quelle piazzole.
Quando si decide che tipo di cavo seriale utilizzare dobbiamo porci una domanda: Vogliamo collegare tra loro due DTE oppure un DTE a un DCE?
I casi sono:
1) DTE ->DTE = usare un cavo null modem
2) DTE->DCE = usare un cavo modem.
Il nostro è il caso 2, quindi useremo il cavo utile per la Micro-GT mini presentato al capitolo 10 di "Let's GO PIC!!!".
Va detto che il tipo di porta installato sui dispositivi non è casuale ma sui DTE andrebbe montato il maschio e sul DCE la femmina. Il caso della Micro-GT è un pò anomalo dato che si è deciso di montarci la femmina anziché un maschio.
Chi volesse montare un maschio, perché lo disponibile a magazzino, dovrà fare attenzione alla numerazione perché risulterà invertita. Anche il cavo di collegamento risulterà anomalo avendo le femmine da entrambi i lati. Questo non significa che sia impossibile o errato montare un connettore maschio.
Impostazione porta seriale per comunicazione.
Per eseguire questa impostazione cliccare su pannello di controllo->Sistema->Gestione dei dispositivi
Una volta entrati qui dentro, puntare alla porta COM a cui si intende collegare il cavo seriale e la Micro-GT 18 mini.
E' possibile comunicare con la Micro-GT anche tramite un adattore USB->RS232, ad esempio quando si usi un portatile sicuramento privo di una porta COM nativa.
Cavo seriale per Micro-GT 18 mini, funziona anche con adattore USB.
p.s. Questo cavo funzionera' anche con la Micro-GT mini e con la Micro-GT 2 IDE, mentre per ma Micro-GT IDE standard richiede lo spostamento di un conduttore. In questo ultimo caso si veda l'articolo Let's go PIC che presentava quella scheda.
Porta USB
Il PIC 18F2550 integra una periferica USB 2, in grado di funzionare alla piena velocità prevista da questo standard. Questo USB, o universal serial bus, è stato pensato per poter interconnetere periferiche ad una discreta velocità usando sempre lo stesso connettore a 4 terminali e consentendo le funzionalità plug and play.
Quando questo standard è stato pensato si è previsto un sitema ad albero con un gestore alla radice con una estensibilità tramite HUB fino a 127 dispositivi, compri i nodi rappresentati dagli hub e il gestore alla radice.
La lunghezza massima a cui collocare un dispositivo USB è di 5 metri, quindi meno della metà di un dispositivo seriale RS232. Oltre questa misura è necessario amplificare i segnali tramite hub alimentati, ma va comunque tenuto presente che lo standard consetirà al massimo la opresenza di 5 HUB in cascata.
L'ultima versione della USB è la 3, ma quella nel PIC in questione è la versione 2 che in modalità full speed arriva a trasferire 480 Mbit/s. La versione 3 potrebbe raggiungere velocità di 4,8 giga bit al secondo, e lo vedremo nella prossime generazioni di PIC.
La piena velocita' della porta USB, denominata' "full-speed mode" si raggiunge solo se da qualche parte nella scheda e' presente una segnale di clock a 48Mhz, ma questo non deve essere necessariamente il quarzo dato che il microcontrollore dispone di un moltiplicatore interno spiegato nel databook alla voce PLL.
Questa possibilita' rende compatibile la programmazione tramite bootloader con la piena velocita' di trasmissione USB, ma vi e' una leggera complicazione del firmware.
I livelli di tensione sono posti a 0 , +5V, ma va posta attenzione a quei PIC alimentati a 3,3V, e la corrente trasportabile verso la periferica alimentata tramite il connettore stesso è di mezzo ampere.
Le line dati sono indicate con D+ e D-.
La forma assimetrica del connettpre ne impedisce l'inserimento al contrario in modo che non si possano verificare dannose inversioni di polarità.
Pin | Nome segnale | Colore filo |
---|---|---|
1 | VBUS | ROSSO |
2 | D- | BIANCO |
3 | D+ | VERDE |
4 | GND |
NERO |
piedinatura della porta USB e standard dei colori.
Per i connettori va detto che esistono due tipi, A e B, quello presente sui cavi, ad esempio del mouse, è il tipo A, mentre quello montato nella Micro-GT è la femmina del tipo B.
Vista frontale dei connettori USB maschi.
Troveremo praticamente sempre i connettori femmina sugli stampati e i maschi sui cavi, ed essendo la forma assiemtrica risulta impossibile l'inversione fortuita della polarita'.
Per questioni circuitali interne al PIC e' necessario limitare la corrente sulle linee dati con due resistenze che nel nostro caso vaolgono 27 Ohm.
Circuito per la comunicazione USB con 18F2550.
Il condensatore C4 e' di fondamentale importanza perche' permette al regolatore di tensione interno di dare il giusto riferimento per la periferica USB dato che questa funziona a 3,3V anche se normalmente manipolata a 5V.
La questione e' leggeremente piu' complessa e richiederebbe un po' di studio delle architetture interne di questa serie di microcontrollori, ma ho personalmente testato i valori 470nF e 220nF e sono risultati entrambi perfettamenti funzionanti.
La presenza di questa capacita' si potrebbe giustificare pensando che durante le commutazioni interne delle linee D+ e D- dell'USB.
Nella community Micro-GT, alla sezione "Librerie Micro-GT" e' stato inserito un programma demo, completo di pilotaggio del display LCD e della comunicazione USB.
Il programmma e' liberamente scaricabile e contiene moltissmi spunti software per iniziare i vostri progetti con il PIC 18F2550.
Questo sorgente e' scritto in Hitech C per PIC 18.
Il link diretto per il download e' questo: Scarica programma demo per Micro-GT 18 mini
Se vuoi partecipare alla community Micro-Gt presentando dei tuoi lavori visita il link sottostante. Qui potrai trovare una bozza di articolo, scritto in word, che potrai completare e spedire via posta per la pubblicazione.
http://www.gtronic.it/community/community.html
Per alcuni approffondimenti in tema di comunicazione USB vi rimando al link della casa madre "MicroChip" da cui potrete scaricare i tools necessari, ad esempio il bootloader e esempi di programmazione.
http://www.microchip.com/pagehandler/en-us/technology/usb/home.html
Uscite servomotori
La scheda può controollare in maniera diretta 6 servomotori, un numero più che dimezzato rispetto alla versione precedente che ne pilotava ben 14, ma rimane comunque un numero di tutto rispetto. Va anche detto che questo numero è riferito ai soli servo motori che trovanno alloggio direttamente nel connettore e che nulla vieta di impiegare altri pin per estendere il controllo a molti altri. Nella foto vediamo il connettore dedicato alle uscite pseudo PWM da inviare ai servomotori.
Connettore per collegamento diretto di 6 servomotori.
Come abbiamo visto nel capitolo 14 del corso online "Let's GO PIC!!!" i servomotori sono, genericamente parlando, dei piccoli attuattori DC, fortemente impiegati nella robotica leggera e nel modellismo, costituiti nel caso più semplice da un sistema analogico di controllo in retroazione negativa. Tale sistema si compone di un piccolo attuattore DC, spesso a magnete permanente, controllato tramite un ponte H a cui perviene un segnale di inversione in caso che l'asse si spostasse oltre la tolleranza angolare consentita da un set point impostato. Tale setpoint è proporzionale ad uno stimolo monostabile, rinfrescato tipicamente con una frequenza di 50 - 60Hz, a seconda dei modelli, e di durata monostabile di solito compresa tra 1,5 ms e 2,5 ms. In funzione di questo stimolo rettangolare, rinfrescato ripetutamente, si ha la proporzione angolare. Il sistema di controllo, costituito da dal suddetto ponte H, da un insieme di comparatori, un potenziometro analogico che si muove solidale con l'asse grazie a una catena cinematica (ingranaggi) tarata sono chiusi all'interno delle scatoline nere che vediamo nelle foto anche in modalità stagna al fine di garantire il funzionamento anche in ambienti umidi o addirittura bagnati. Le tensioni di alimentazione delle scheda di controllo interna sono spesso 5V dc, ma si possono scostare leggermente, fino anche 9V, in funzione della marca e del modello del servomotore. Motivo in più per necessitare di un canale di alimentazione separata, oltre ovviamente, alle questioni di potenza assorbita specie in fase di movimento simultaneo.
Da quanto detto ne consegue che un servo motore generico da modellismo, come quelli in figura, necessita di tre terminali. Il centrale è sempre l'alimentazione positiva, così che una eventuale inversione di inserimento non comporta inversione di polarità ma semplicemente il non funzionamento. Questo terminale è quasi sempre il rosso. Quello non collegato direttamente ai pin del PIC, è la massa, di colore nero, mentre il terzo,lato PIC, ovvero il lato visibile in figura, ha un colore spesso blu, ma qualche volta anche bianco o giallo, in dipendenza dello standard adottato dalla casa costruttrice. In questo terminale azzurro invieremo il nostro segnale monostabile ripetuto, ovvero il segnale pseudo PWM che posizionerà l'asse del servo connesso a quel canale all'angolo scelto.
Micro-GT 18 mini collegata a 6 servomotori.
Nella foto è importante notare il cavo rosso che esce dal terminale 3 dello strip "SVR4_Supply". Il cavo rosso in quella posizione proviene da un'alimentazione robusta esterna a +5V, che bypassa il regolatore di tensione 78L05, che non è assolutamente in grado di mantenere regolata la tensione al PIC e energizzare nel contempo 6 attuatori che devono vincere una coppia resistente presente ai bracci meccanici.
Una seconda osservazione la facciamo sui servo stessi. Quelli di sinistra hanno gli ingranaggi in nylon quindi sono leggeri e silenziosi, ma soggetti a rapida usura, mentre quelli di destra hanno gli ingranaggi in metallo e risultano quindi più rumorosi e più pesanti, ma nel contempo sono più robusti (non si sgranano). Sarà l'applicazione che ci farà decidere quali impiegare.
Per approfondimenti sul tema consiglio di leggere il mio articolo, pubblicato su lulu e sul mio sito personale, "Open servo reverse engineering".
Software di programmazione.
Esistono varie maniere di programmare questa scheda ma si consiglia di usare gli strumenti ufficiali offerti dalla casa madre MicroChip.
L'IDE software sara' Mplab X, nella versione attualmente scaricabile e i compilatori potranno essere XC8 ,C18, hi-tech PICC18 ecc.
La versione "student" e' scaricabile dal sito della casa madre.
Gli insegnati delle scuole superiori, dei centri di formazione e dei corsi di formazione sono invitati a visitare questa pagina.
http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/
Il libro di testo consigliato per iniziare con MPLAB X, particolarmente indicato per le scuole, lo ho scritto e messo a disposizione su amazon all'indirizzo:
Chi volesse i circuiti stampati, singolo esemplare o piccole forniture per le scuole e i laboratori di elettronica, o anche le schede montate e collaudate potrà contattarmi alla mail ad.noctis@gmail.com benché il contenuto di questo articolo, schemi, disegni, software demo, ecc ecc dovrebbe mettere chiunque in grado di autocostruirsi il proprio esemplare di Micro-GT 18 mini.
il contenuto di questo articolo, purché non alterato nella forma e nei contenuti, e' liberamente riproducibile.
Auguro a tutti buon divertimento.
Marco.
Questo progetto è ridistribuibile secondo i termini di licenzaCreative Commons Attribuzione-Condividi allo stesso modo 3.0 Italia