Una degli aspetti interessanti per chi sviluppa con i PICMicro è la possibilità di disporre di un numero elevatissimo di risorse di terze parti, in termini di compilatori (C, C++, BASIC, PASCAL, ecc) e di dispositivi di programmazione e debugging. Non tutti gli utenti dei prodotti Microchip, infatti, utilizzano i compilatori ed i programmatori/debugger che la Casa di Chandler ha sviluppato e ha messo sul mercato.
Tanto con MPLAB IDE quanto con il più recente MPLABX è possibile integrare compilatori di terze parti che abbiano in qualche modo preso accordi con Microchip per le modalità di integrazione. Qualcuno lo ha fatto, altri invece, come ad esempio MikroElektronika, no. Chi conosce MikroC PRO sa benissimo che questo compilatore dispone di un proprio IDE e che per programmare i PICMicro MikroElektronika ha sviluppato un proprio programmer/debugger.
Così, qualunque sia il vostro IDE preferito, nel caso disponiate di un programmatore Microchip (come PICKit2, PICKit3, ICD2, ICD3), questo articolo fa per voi!
Indice |
MPLAB IPE
Con l'installazione di MPLABX, Microchip mette a disposizione un software per la programmazione dei PICMicro, ma anche qualcosa di più; il suo nome è MPLAB IPE, Integrated Progamming Enviroment. Lo si trova sul desktop, dopo aver installato MPLABX, clicando su questa icona:
Questo software nasce come strumento di ausilio per la programmazione dei dispositivi Microchip sulle linee di produzione, anche se in questo articolo si mostrerà l'utilizzo a livello più hobbistico. Una volta lanciato, si presenta con una unica finestra, suddivisa in aree.
Sezione "Select device and Tool" In questa sezione si va a determinare il dispositivo da programmare. Il primo menu a tendina aiuta a limitare la ricerca del dispositivo ordinandolo per famiglie. Quindi, s si deve programmare un PIC18F, questo va cercato nei "Advanced 8-bit MCUs (PIC18)". Una volta determinata la famiglia, con il secondo menu a tendina si va a selezionare il dispositivo vero e proprio. Con il pulsante accanto, APPLY, si va a confermare il PIC da programmare L'ultimo menu, invece, mostra i programmatori disponibili collegati in questo momento al computer, nel mio caso si tratta del mio fidatissimo ICD3. Compare anche il numero di serie del dispositivo (verificabile anche a occhio, andando a leggere l'etichetta adesiva). Il pulsante CONNECT si preoccupa di collegre il programmatore a MPLAB IPE, assegnando sostanzialmente la risorsa "programmatore" a se stesso. In questo modo, IPE verifica la comunicazione con il programmatore e, se necessario, esegue un aggiornamento del firmware a bordo del programmatore stesso. Sono infatti disponibili diversi firmware sulla base del PIC target da programmare.
Sezione dei file In questa area si caricano i file da utlizzare per programmare il dispositivo. In particolare il file "source" rappresenta il file esadecimale in formato .hex da inviare al PIC. Qualora sia necessario programmare dispositivi con numeri di serie univoci, si dovrà caricare il file SQTP (Serialized Quick Turn Programming).
Sezione pulsanti MPLAB IPE mette a disposizione 5 pulsanti:
- PROGRAM: da utilizzare per programmare un dispositivo
- ERASE: da utilizzare per cancellare un dispositivo
- READ: permette di leggere il contenuto (se non proteto) di un dispositivo
- VERIFY: dopo una programmazione, con questo pulsante è possibile verificare la congruenza dei dati scaricati con quelli presenti dentro a IPE
- BLANK CHECK: permette di verificare se il dispositivo è cancellato oppure no
Sezione Output Rappresenta una finestra di diaologo nella quale OPE informa circa le operazioni che sta compiendo e se sono andate a buon fine oppure no. Nella finestra di Output vengono mostrate tutte le indicazioni circa l'attività del programmatore ed eventuali errori che emergono durante le operazioni di caricamento file e di programmazione.
Sezione Results Si tratta sostanzialmente di una finestra di dialogo con la quale MPLAB IPE informa l'utente circa lo svolgimento delle operazioni. Da quella finestra infatti c'è modo di verificare se il collegamento con il target è andato a buon fine o se ci sono stati problemi, ma anche verificare che la programmazione sia stata svolta a dovere.
Sezione Memory View Mediante un menù a tendina è possibile scorrere e visualizzare tutte le aree di memoria del microcontrollore che si sta programmando. Questo è utile, ad esempio, per modificare alcuni valori di EEPROM. Attenzione: se la memoria che si vuole visualizzare non è presente nel menu a tendina, è necessario accedere alle impostazioni avanzate (Advanced settings)
Advanced settings
IPE consente molte opzioni di programmazione, opzioni che non sono immediatamente accessibili all'utente, in quanto protette da password. Si consideri infatti che IPE nasce come strumento per la programmazione di dispositivi su linea di produzione, ove spesso si vuole (o si deve) impedire all'operatore addetto alla programmazione di modificare impostazioni e/o file. Dal menu Settings selezionare la voce Advanced Mode. L'accesso all'area delle impostazioni estese è, come detto, protetta da password; quella di default è la parola MicrochipTesto in corsivo ma può essere modificata a piacere ed anche tenuta memorizzata.
Dopo aver digitato la password, premendo su Logon si accede alla pagina delle impostazioni avanzate. Nella colonna di sinistra sono presenti diversi pulsanti che permettono l'accesso a funzionalità diverse. Benché molte possano sembrare sono impostazioni per smanettoni, alcune sono particolarmente utili e vale la pena analizzarle.
Operate: permette di eseguire le operazioni di programmazione, cancellazione, lettura e verifica del micro, rimanendo con le impostazioni avanzate a disposizione e disponendo quindi di ampi margini di manovra (modalità per esperti).
Power: è possibile modificare le tensioni di alimentazione e di programmazione. Questo aspetto però è molto delicato e se non si è avvezzi è meglio non modificare i valori proposti. Una cosa interessante è invece la possibilità di poter alimentare il PICMicro direttamente dal programmatore (ICD3, nel mio caso), spuntando la voce "Power Target Circuit From Tool".
Memory: Una volta caricato un file hex, IPE calcola automaticamente il primo e l'ultimo indirizzo di FLASH da programmare. Con questa impostazione è possibile decidere di variare tale range ma anche di decidere di non programmare la EEPROM (preservandone il contenuto) o di non programmare la FLASH. Deselezionando la voce "Allow Tool to select memories and ranges" è possibile operare in manuale. Le aree di memoria che vengono spuntate saranno poi accessibili nella pagina principale.
Enviroment: è possibile salvare diverse configurazioni soprattutto quando si ha a che fare con diversi micro. Invece di riscrivere ogni volta le informazioni relative ai file SQTP, ad esempio, è possibile caricare dei file già precompilati, a nostro uso e consumo.
SQTP: è l'acronimo di SERIALIZED QUICK-TURN PROGRAMMING, una modalità che permette di associare a ciascun PICMicro un numero di unico, una sorta di numero di serie, che potrà essere utilizzato nei modi più disparati, come ad esempio un codice di accesso, una password o un identificativo di prodotto. La generazione del codice SQTP può essere casuale, pseudo casuale o sequenziale. Inoltre può essere posto in FLASH o in EEPROM (se presente). Premendo il pulsante "Generate" viene creato un file ".num" da caricarsi nella nella pagina principale, nella "sezione file".
Technician mode: si accede ad una sezione di opzioni che permettono all'utente non "advanced" di poter disporre di comandi e visualizzazioni extra. In partcolare è possibile mostrare nella pagina principale aree di memoria come la Program memory e la EEPROM, oppure celarle alla vista. Così pure come è possibile permettere l'editing delle caselle di memoria dei file caricati, prima di scaricare il firmware sul dispositivo.
Settings: per gli utenti di PicKit3 la sezione è completamente accessibile ed è possibile andare ad agire tanto sulla velocità di programmazione quanto sulla modalità "Programmer To Go"
Log out: riporta IPE nella modalità di funzionamento ordinario, escludendo di fatto la visualizzazione delle impostazioni avanzate.
User guide
Questo articolo non si pone come risorsa esaustiva di tutte le opzioni offerte da MPLAB IPE, bensì come un tutorial. Va aggiunto che Microchip continua a tenere aggiornato questo software, pertanto non si potrà mai esaurire l'argomento, specialmente qualora vengano aggiunte nuove funzionalità o modificate alcune delle esistenti. Per tutto questo, invito il lettore a consultare attentamente la guida utente che MPLAB IPE mette a disposizione.
Approfondimenti
Per approfondire su SQTP rimando a queste pubblicazioni:
Licenza
Questo articolo ed il software rilasciato rientrano nell'ambito della licenza CREATIVE COMMONS BY-NC-ND 3.0, secondo quanto indicato nelle note legali qui riportate.