Let's GO PIC !!! cap. 32
Micro-GT 32 mini
La potenza dell'architettura a 32 bit nel design Micro-GT.
(Pinguino IDE X4 compatibile).
Iscrizione alla newsletter Micro-GT
Compatibile MPLAB Harmony (Integrated software Framework)
Già con l'arrivo della Micro-GT 18 mini, si è adottato il nuovo formato di PCB
di 5 x5 cm che distingue la famiglia mini di Micro-GT.
Questa volta si è pensato di fornire un hardware completamente PTH, ovvero con elettronica tradizionale con pin attraverso i fori, allo scopo di agevolare l'hobbista o lo studente nel montaggio e le eventuali riparazioni.
Lo schema è essenziale ma abbastanza completo.
La modalità freePort rende disponibili tutti i pin non vincolati, come ad esempio lo sono quelli delle alimentazioni, e delle varie tensioni di riferimento che sono di fondamentale importanza in questa famiglia di PIC.
Rispetto alle altre versioni sparisce la porta seriale e rimane solo la USB che nei 32 è di più facile utilizzo grazie alla vasta bibliografia e documentazione disponibile in rete.
Benché esistono prodotti simili in commercio, la Micro-GT 32 mini di certo può reclamare il suo spazio sia nell'ambito hobbistico che didattico grazie alla sua robustezza e facilità di intervento "in circuit" qualora ne fosse necessario.
Una caratteristica semplice ma che concede una grande comodità è la mancanza di un alimentatore esterno dato che la scheda si accende e funziona regolarmente con un cavo USB da stampante collegato a una normale porta USB del PC sia desktop che portatile.
https://www.youtube.com
Per finire, in tempi postumi alla progettazione di questa scheda ci si e' resi conto che l'IDE Pinguino disponibile liberamente in internet è perfettamente compatibile e quindi puo' essere impiegato per la programmazione.
Il sito di riferimento e' questo -> Pinguino home.
Il sito ufficiale della casa mette a disposizione i bootloader per le versioni a 8 bit e a 32 bit. E' comodo anche il fatto che con lo stesso IDE potremmo programmare anche la versione Micro-GT 18 mini su cui normalmente si alloggia il PIC18F2550 oppure il 2553 e anche quelli indicati con J.
Puoi scaricare i bootloader direttamente da questo link -> open surce Pinguino bootloader
L'IDE che ho testato per il funzionamento della scheda funziona in modalità portable, quindi basta unzippare sul desktop e lanciare con doppio click il file pinguino.exe (non è stata necessaria alcuna installazione). Potrebbe essere che la casa madre cambi a breve questa filosofia, quindi è bene congelare la situazione funzionante caricando in questo server l'IDE che ho testato. -> Download Pinguino IDE (se Grix consente FTP di olter 100MB), in caso di difetto di questo link cercate con Google "Pinguino Portable".
Visita la pagina del download del'IDE Pinguino -> Download Pinguino IDE ultima versione
Caratteristiche tecniche.
Le caratteristiche principali di questa scheda sono.
Vediamo l'anteprima 3D della scheda. In alto la sezione di simulazione degli ingressi formata dai 4 pulsanti in chiusura (normalmente aperti), le loro resistenze di pull up da 10K e sul lato sinisto il connettore strip a 4 vie da cui è possibile prelevare i segnali per portarli ai pin di I/O digitale del PIC.
In seconda fila abbiamo gli 8 LED in cui si può visualizzare lo stato di altrettante uscite digitali. La limitazione della corrente fuoriuscente dai catodi e delegata alla rete resistiva da 1k alla cui destra è presente il connettore strip (qui rappresentato femmina) a cui trasferire i segnali provenienti dall'I/O digitale del PIC.
Al centro vediamo il PIC 28 pin con architettura interna a 32 bit. Alla sua destra il pulsante di reset collegato al pin MCRL e alla sua sinistra il quarzo normalmente montato a 20Mhz. Va detto che il quarzo poù essere omesso e dai fori dei condensatori ceramici che resteranno liberi si potranno recuperare altri due pin di I/O. Questa è uan caratteristica da non sottovalutare dato che il PIC è piuttosto limitato come numero di I/O.
In basso a sinistra vediamo il connettore ICSP a cui possiamo collegare il PICKIT3 per la programmazione in circuit. Si devo porre attenzione ad impostare il PICKIT3 al valore di 3,3V oppure di lasciare l'impostazione in cui l'alimentazione della scheda non sia data da esso. Un errore in questa fase potrebbe comportare la rottura del device ma questo non è un difetto della scheda bensì una questione intrinseca dei microcontrollori. Possiamo stare però tranquilli dato che durante la fase di programmazione MPLAB ci avvisa in maniera chiara e ci invita a controllare l'impostazione software delle tensioni di programmazione prima di poter continuare.
A destra del connettore ICSP vediamo la porta USB che mostra 4 pin di collegamento e due robusti fori di ancoraggio collegati alla massa. Si consiglia di effettuare una saldatura robusta a questi fori così che lo sforzo di estrazione e inserimento del connettore scarichi le forze meccaniche li e non nei 4 pin di segnale e alimentazione.
A destra la sezione di alimentazione con i vari condensatori di cui necessita.
I connettori strip, che figurano subito sotto il PIC, rispettano lo standard già ben collaudo nei precedenti modelli di Micro-GT mini, ovvero la fila più vicina al PIC è connessa ai singoli punti di I/O del medesimo. La fila centrale è collegata a Vdd e la fila più esterna è collegata a massa.
Questa configurazione ha un duplice scopo, il primo è quello di poter facilmente aggiungere delle resistenze di pull up o pull down qualora servissero nell'applicazione utente, la seconda è quella di poter innestare in maniera diretta i servo motori da modellismo.
Dato che i servomotori potrebbero essere ben 13 è bene non alimentarli ne tramite la USB del PC ne tramite il solo regolatore a 3,3V in dotazione con la scheda, ma si consiglia di procedere alla separazione delle alimentazioni sfruttando il pin numero 2 del connettore ICSP al quale si potrà inviare una tensione, sempre a 3,3V ma molto più robusta. In caso si utilizzino solo servomotori a 5V allora si dovrà isolare l'unica pista che vediamo confluire al pin 28 e proveniente da tutti i centrali dei connettori degli eventuali servo motori. In questo caso di deve fare attenzione a non usare più i centrali come pull up perché i pin del PIC non sono tutti 5V tolleranti.
Descrizione del PIC a 32 bit.
I PIC a 32 bit con il core MIPS microAptiv o M4K sono microcontrollori ad alte
prestazioni. Alcune versioni risultano essere veramente performanti, con un
clock di 80 o oltre Mhz benché tra caratterische dichierate per il PIC che
presentiamo compaia un valore massimo di 50Mhz. La possibilità di utilizzare il
real time clock integrato al quale sarà sufficiente collegare un cristallo da
32,768 Khz. Alcune versioni dispongono di porta ethernet integrata. La porta di
comunicazione nativa è la USB per la quale sono predisposti internamente gli
oscillatori per la generazione delle tensioni di riferimento aggiungendo
semplicemente delle capacità. Gli oscillatori interni sono performanti e
facilmente utilizzabili.
Le periferiche interne sono numerosissime per cui si rimanda al databook dello specifico modello se si volesse approfondire.
Praticamente tutti i PIC 32 si alimentano alla tensione massima di 3,3V, e come nel caso mostrato qui sotto, pochi pin ben evidenziati, sopportano tensioni più alte come i classici 5V della serie 16F e 18F, e la tensione di programmazione come previsto per la modalità ICSP.
Benché si tratti di MCU potenti e innovative il costo rimane contenuto.
La versione a 28 pin usata per la Micro-GT 32 mini è solo una palestra in cui familiarizzare con l'architettura e i tools di programmazione che sono disponibili e in questo articolo brevemente descritti.
download databook PIC32MX250F128B
Leggendo il databook scopriremo che il PIC è predisposto per l'acquisizione di sistemi touch come pulsanti e slider di tipo capacitivo, che può gestire interfacce e periferiche di tipo audio, che ha ben 5 canali PWM e 14 convertitori AD a 10 bit.
Il chip integra 3 comparatori analogici.
Sono disponibili 2 periferiche per la comunicazione SPI e 2 per la I2C.
Una cosa importante, che fa la differenza rispetto al modello 18F2550 è che esiste una separazione tra il PLL dedicato al core (CPU) e quello dedicato alla periferica USB che non costringe il progettista ad usare uno specifico quarzo, ad esempio 20Mhz, quando si intende usare questo tipo di comunicazione sacrificando la massima velocità che il PIC potrebbe raggiungere.
Schema elettrico.
Alcune delle caratteristiche dello schema elettrico sono ereditate dalle
precedenti versioni di Micro-GT mini, come ad esempio al soluzione a tre file
di strip line, rappresentate sul lato destro dello schematico. I Pin 1, sono
tutti collegati a massa, i pin 2, quindi in posizione centrale, sono collegati
al Vdd, in questo caso a 3,3V, e il pin 3 è direttamente connesso ai PORT del
PIC.
La configurazione risulta particolarmente utile quando si voglia definire dei pull up o dei pull down allo scopo di acquisire degli ingressi digitali ulteriori rispetto ai 4 predisposti e visibili in basso a sinistra. In questo caso al connettore SV2 arrivano dei segnali normal 1 -> pressed 0 controllabili tramite i pulsanti normalmente aperti indicati con S1,S2,S3,S4.
Tramite un cavo flat possiamo portare al connettore SV9 la simulazione dello stato di 8 uscite digitali.
La porta USB impegna i due pin D+ e D- ma rispetto alla versione 18 mini non necessita delle due resistenze da 27 ohm come specificato nel data book.
L'oscillatore al quarzo è predisposto ma molto spesso risulterà inutile dato che questa MCU è corredata internamente di una sezione interna che lo puo' effettuare in maniera molto efficiente.
Molti dei firmware che troverete disponibili non useranno il quarzo esterno quindi potrebbe tornarvi utile recuperare altri due punti di I/O digitale prelevabili dalle piazzole dei condensatori da 18pF.
Le capacità presenti ai pin 15 e 20 sono essenziali al funzionamento e il valore è consigliato nel databook.
Scarica lo schema elettrico a alta risoluzione
La sezione di alimentazione è costituita dalla sorgente rappresentata dalla porta USB, dalla quale possiamo prelevare fino a 500mA a cui è collegato il regolatore a basso dropout, (stimato in circa 1V) LD1117. Questo regolatore è disponibile nel mercato con tensioni fisse regolate di 2,5V , 2,85V, 3V ,3,3V, e 5V. Mentre i 3 centrali potrebbero fare funzionare la scheda, il primo ha una tensione troppo bassa e non la accenderebbe mentre l'ultimo la distruggerebbe a causa dell'extra tensione. Al momento dell'acquisto del componente va quindi specificato che si necessita della versione di 3,3V.
Se si realizza la scheda su millefori, va posta attenzione alla piedinatura perché non coincide con quella dei regolatori della serie LM78xx che siamo abituati a utilizzare. Se messi in circuito nella stessa maniera si verificherebbe un corto circuito verso messa.
La piedinatura dei vari package del componente è mostrata nell'immagine qui sotto:
Come si nota dal layout del pcb quello impiegato è il TO-220. La piedinatura rispetta lo standard dei regolatori di tensione in TO220 di tipo regolabili, ad esempio il classico LM317.
Le sigle corrette per comprare la versione a 3,3V si ricavano da questa tabella:
La massima tensione applicabile all'ingresso è di 15V, ma dato che il sistema è progettato per funzionare con la tensione prelevabile dalla porta USB, sia questa del PC desktop che del portatile, il salto a cui sarà soggetto il regolatore è sempre minimo, circa 1,7V, quindi lavorerà pressoché freddo.
Il circuito stampato.
Come anticipato il supporto PCB rispecchia la filosofia della famiglia Micro-GT mini, ovvero è un quadrato di 5 centimetri di lato.
Micro-GT 32 mini PCB.
Le serigrafie sono ben chiare ma bisogna prestare attenzione all'assemblaggio dei LED.
Eagle ha infatti questa piccola scomodità su come stampa la serigrafia dei LED, ma l'orientamento risulta più agevole osservando l'immagine del piano delle serigrafie mostrato qui sotto:
Si nota agevolmente che tutti i catodi dei LED (la parte tagliata della mezzaluna) sono orientati verso il basso ovvero verso la porta USB. Lo stesso orientamento lo si ha per il LED di accensione.
Un suggerimento per l'assemblaggio delle spie LED è quello di usare il colore verde per i diodi 8,7,6 il bianco per 5 e 4, e il rosso per 3, 2, 1 così da formare la bandiera italiana. La questione è ovviamente estetica e non ha nulla a che fare con la funzionalità del progetto.
Il led POWER ci sta bene di colore giallo.
Cenni sul Pinguino IDE.
IL Pinguino IDE (ambiente di sviluppo integrato), si presenta con un'iterfaccia utente essenziale e intuitiva. Una volta lanciata l'aspetto e' quello in figura. (questa e' la versione per Windows, ma non differisce dalla versione per Mac e per Linux).
Questa è la versione portable, ma di spone di tutto quello che serve.
Osserviamo, in basso a destra, che per default si predispone per il PIC 2550, e per la funzionalità di caricamento tramite bootloader. In effetti questa è l'impostazione corretta per la Micro-GT 18 mini e non per la 32 mini. E' ;possibile che il vostro esemplare si apra in maniera diversa tenendo in memoria ciò con cui avete lavorato nella sessione precedente.
Vediamo i tasti essenziali.
(ad esempio il nostro PIC32 oppure il 18F2550 della versione Micro-Gt 18 mini).
Quando si clicca su "seleziona PIC in scheda target" compare la seguente finestra di dialogo:
Si entra successivamente nell'editor in cui si può sviluppare il proprio programma. Esiste una varietà di template sul sito della pinguino che ci possono aiutare ad iniziare il nostro programma qualsiasi sia l'ambito in cui opererà.
Personalmente non condivido molto questo modo di programmare e suggerisco di sempre di usare i compilatori Microchip o Hitech perché questi sono gli strumenti che si utilizzeranno sul posto di lavoro.
Esempio di codice in XC32 per utenti MPlab X.
Benché il sistema sia, come sopra scritto, compatibile con l'IDE Pinguino la filosofia Micro-GT è, e resterà sempre, quella di utilizzare strumenti ufficiali di casa MicroChip, in modo da non distrarre i nuovi tecnici da quegli strumenti professionali che dovranno poi utilizzare al lavoro.
Microchip, produttrice di queste unità MCU, consiglia l'utilizzo del compilatore XC32 che distribuisce assieme al proprio IDE.
Procurarselo è semplice e in prima istanza gratuito.
Se avete MPLab già installato, la pagina iniziale vi suggerisce il link.
Una volta entrati nella pagina vedrete il grafico sottostante che vi compara le performace delle varie versioni scaricabili. Possiamo notare che la versione Free potrà essere attivata anche come pro nel momento in cui lo deciderete per una durata di 60 giorni e poi tornerà a funzionare come free.
Per tutti gli scopi didattici che ci prefiggiamo le funzionalità sono ottimali e non noteremo limitazioni sui costrutti e librerie disponibili.
Nella stessa pagina si trovano i link per scaricare i compilatori (cliccare su download) che riporto qui sotto per agevolarvi nella ricerca. Come si può notare funziona su Windows, Mac e Linux.
MPLAB XC32 V1.33 per Windows a 32 e a 64 bit.
MPLAB XC32 V1.33 per Linux.
MPLAX XC32 V1.33 per Mac OS 10.xx.
Una volta scaricato e installato il compilatore si dovrà entrare nell'ambiente MPLAB X ed utilizzarne l'editor. Tutti i passaggi necessari per la creazione del progetto, in cui si seleziona l'unità MCU, il device di programmazione il compilatore con il relativo tool chain, si nomina il progetto e si inseriscono i file di libreria, sono stati ampiamenti spiegati nei miei precedenti articoli e nel testo Let's GO PIC !!! the book. Tuttavia, per chi non avesse dimestichezza con il sistema, è possibile scaricare il mio e-book GRATUITO dal link sottostante.
Scarica ebook Primi passi con i PIC sui sistemi Micro-GT
Il sito www.lulu.com potrà richiedere che vi registrate (aprire un account) prima di consentire il download che comunque rimarrà gratuito.
Ecco un'anteprima.
Esempio di codice XC32 per la Micro-GT 32 mini.
Vediamo un esempio semplificato di sorgente XC32 per la Micro-GT 32 mini.
All'inizio dell'articolo è stato proposto il link ad un filmato youtube che ne mostra la funzionalità.
Si tratta di un semplice effetto luci supercar su 5 dei LED montati on board.
Al momento i pulsanti, come input digitale, non sono utilizzati, ma potrà diventare il primo esercizio la modifica del sorgente qui proposto. Ad esempio si potrà subordinare l'effetto sui LED alla presenza di uno dei tasti.
Nel codice sorgente si è abilitato l'oscillatore interno percui il quarzo nella scheda è in questo caso inutile.
Va ricordato che in alcuni casi si potrà o si dovrà liberare qualche pin, aumentando il numero di I/O disponibile, così che questi saranno prelevabili dalle piazzole occupate dai condensatori da 18pF, sul lato attivo.
Le librerie utilizzate sono quelle standard proposte dalla stessa Microchip.
Vediamo il contenuto del file luci.c che conterrà il main e l'inclusione delle librerie necessarie.
// Le delay hanno un aspetto notevolmente diverso da quello della classi usate con il compilatore HitechC, qui ne viene definto il prototipo.
// Il codice della funzione si troverà sotto la chiusura del corpo del main. Analizzando il codice si vede che funzionano con il metodo del time waste.
// questo ciclo : while((ReadCoreTimer()-tStart)<tWait); corrisponde all'effettiva perdita del tempo.
Da questo link scarichiamo il progetto per MPLAB X che contiene anche il file .hex
Cenni di MPLAB Harmony.
MPLAB® Harmony Integrated Software Framework (traduzione dal sito ufficiale).
MPLAB® Harmony è una piattaforma flessibile, astratta, completamente integrate per I microcontrollori PIC32. Trae i suoi elementi chiave da un design modulare e object-oriented e aggiunge la flessibilità di usare il Real-Time Operating System (RTOS) o di lavorare senza di esso e fornisce un framework di moduli software facili da usare, configurabile per bisogni specifici e che lavorano assieme in completa armonia.
MPLAB® Harmony includes un set di librerie periferiche, drive e servizi di sistema che son accessibili per lo sviluppo di applicazioni. Il formato di sviluppo del codice permette il massimo ri-utilizzo.
Con MPLAB® Harmony framework software, strumento di sviluppo professionale di Microchip a basso costo, con compatibilità pin/periferica con i PIC a 16 bit, PIC32 MCU permette di realizzare rapidamente i vostri progetti in modalità grafica.
Il code configurator. (per esperti)
Molti PIC di nuova generazione permettono di rimappare i pin in posizioni più idonee al PCB disponibile oppure alla vostra specifica esigenza.
Ad esempio sono rimappabili i pin dei PIC che nella sigla contengono il "J", ad esempio il 18F26J50, ma non solo.
Configurare i pin non era però molto semplice fino a che non è stato sviluppato questo tool facilmente integrabile in MPLAB X.
Dato che l'argomento è un pò complesso è bene lasciarlo presentare agli esperti selezionati dalla casa produttrice dei PIC.
Vi consiglio quindi la visione di questo filmato.
Bibliografia:
Le nozioni utili o di approfondimento usate in questo articolo sono contenute nel libro "Let's GO PIC!!!" e il libretto in formato e-book "Primi passi con i PIC sul sistema Micro-GT mini" Gratuito, segnalo che esiste una versione ridotta "Let's GO PIC!!! essential" orientata alle scuole.
L'ebook è gratuito e per scaricarlo dal link si deve effettuare la login su www.lulu.com dopo avere creato un account.
Per vedere le anteprime cliccare sulle copertine.
"Questo articolo contiene informazioni e link divulgativi sui sistemi Micro-GT anche assimilabili a pubblicità senza alcun guadagno economico per grix.it ma al solo fine di agevolare, per chi lo voglia, la reperibilità dei componenti utilizzati e/o approfondirne gli argomenti trattati."
Questo progetto è ridistribuibile secondo i termini di licenzaCreative Commons Attribuzione-Condividi allo stesso modo 3.0 Italia