Tutorials - PIC

 

Cosa serve per seguire questo corso ?

e, in generale, per lavorare sui PIC  ?

Chi inizia si pone per prima cosa la domanda : "Di cosa ho bisogno ?"

La risposta è semplice : di ben poco che non abbiamo già per le mani. O meglio, serve quanto normalmente è necessario per lavorare con tutti i microprocessori o microcontroller !

Qui intendiamo l' attività di uno sviluppatore non professionale, di auto istruzione, per cui le preferenze sono poste sulla funzionalità in relazione al costo. 


Gli elementi necessari sono :

  • IL PC

  • L' ambiente di sviluppo

  • I Linguaggi

  • Il Programmatore

  • Emulatori

  • Il supporto hardware

  • Il chip !

  • L' Editor

  • Tools di conmunicazione

  •  Istruzione, istruzione ...

  • La documentazione

  • I links

  • Cosa costa il tutto ?

Vediamo ora più dettagli.
E chi ha fretta, può passare direttamente alle conclusioni :


IL PC

Innanzitutto serve un PC, ma non facciamo i furbi: se state leggendo queste pagine, è perchè molto probabilmente lo avete già !  E non serve altro.

Questo PC è il supporto su cui gireranno i programmi di assemblaggio, i linguaggi evoluti, i compilatori, i tools di sviluppo, le utility e quant' altro.

Non occorre nulla di megagalattico, basta al limite anche un vecchio 486. E non serve neppure Windows, in quanto molti tools e ambienti di sviluppo, anche GNU possono lavorare anche con Linux.

Però MPLAB, su cui noi ci basiamo, gira con Microsoft, quindi le "finestre" sono d' obbligo.

Un PC un po' datato vale quanto l' ultimissimo modello, perchè ambienti di sviluppo e programmi accessori non corrono certo dietro alle mode del momento (anche se MPLAB è aggiornato costantemente e ora va anche su WIN7-64).
Però non servono funzioni grafiche e multimediali particolari per questo genere di applicazioni. Basta una macchina robusta e funzionante: stiamo andando a lavorare il campo e serve un buon trattore e non una lussuosa Ferrari.

C'è, però, la necessità di avere porte seriali e parallele per interfacciarsi con le unità esterne, come certi programmatori o emulatori, ma si deve rilevare che queste sono scomparse dalle ultime generazioni di PC (e sopratutto di notebook);  viene messo in difficoltà proprio chi intende usare un portatile, su cui da un certo qual tempo i produttori hanno deciso di poter fare a meno della RS-232 e della parallela, a favore del perverso USB. 
Fortunatamente quasi tutti i tools sono stati realizzati ultimamente per l' accesso USB, col che il problema è, per la maggior parte dei casi, risolto.

Attenzione che i convertitori (dongle) seriale-USB raramente funzionano in applicazioni diverse da quelle di una RS232 standard : questo dipende dal fatto che emulatori, programmatori, ecc. usano usano i pin delle interfacce in modo non del tutto "canonico" e i driver degli adattatori USB raramente sono in grado di supportare queste modalità. 

In un PC desktop, se servono seriali o parallele, basta aggiungere una scheda da poche decine di euro, mentre, volendo usare notebook, l'unica possibilità sono gli adattatori : in questo caso è d' obbligo provare prima che tutto funzioni, altrimenti ci si trova con facilità ad aver buttato via tempo e denaro.

Un altro problema con i dispositivi su parallela e seriale, sopratutto quelli che prelevano la loro alimentazione dalle porte del PC, è quello di trovarsi con chip di interfaccia sulla scheda madre non in grado di fornire le correnti o le tensioni richieste dai dispositivi esterni, sopratutto nei PC più recenti e nei notebook.

RS 232 e Centronics non sono state progettate per alimentare periferiche, ma, con alcuni trucchi, è possibile drenare una certa potenza dalle linee dei segnali. Questo, però, dipende dai chip che gestiscono queste linee; nei PC IBM originali erano preposti a queste funzioni chip in grado di fornire diversi milliampere a 12V e quindi non c'era alcun problema. 

Le attuali interfacce LPC sono in grado di fornire molta meno corrente e spesso l' interfaccia 232 lavora a tensioni ben più basse dei 12V tipici, sopratutto sui notebook (tenete presente che lo standard ammette da poco meno di 4 volt fino a più di 30 !). 

In queste condizioni, gli aggeggi esterni che sperano di trarre la loro alimentazione dalle porte del PC si trovano buggerati e non funzionano, o peggio, funzionano male. Ne riparleremo più avanti nel paragrafo dei programmatori. Quindi, se usate notebook, meglio cercare periferiche USB oppure avere una docking station (di buona qualità) dove seriale e parallela sono ancora presenti.

Quello che è indispensabile sul PC è :
- un buon monitor, per non stancare la vista, che sarà impegnata a lungo con i listati dei programmi. Se non lo avete, si trovano LCD da 19" a poco più di 200 €. (meglio grande per avere aperte più finestre dell' ambiente di sviluppo, ma acquistatene uno veramente buono, non solo guardando il prezzo...).

Si può anche trovare comoda una buona tastiera layout USA, per via dei segni speciali usati nella scrittura dei vari linguaggi, sopratutto il C, posti in modo più accessibile di quella italica - d'altronde va ricordato che tutto l' ambiente computer ruota praticamente da sempre attorno all' area anglofona. Non costa più di una decina di euro.

In sostanza può essere ottima cosa riciclare un vecchio PC, dotandolo di un buon monitor e una buona tastiera. NON serve una scheda video mega galattica, perchè non c'è niente di 3D; basta che possa pilotare bene il monitor scelto.


L' ambiente di sviluppo.

Fornirsi di adeguati tools per lo sviluppo del programma, Assembler o linguaggi più evoluti che siano è cosa assai semplice, almeno per le versioni base. Almeno nei primi tempi ci saranno diverse difficoltà ed un buon ambiente di sviluppo aiuta a ridurre lo stress (a saperlo usare, altrimenti peggiora la situazione...).

In commercio c'è varia roba, ma la preferenza è da dare all' MPLAB distribuito gratuitamente sul sito della Microchip. Si tratta di un ambiente integrato che comprende il compilatore Assembler MPASM e il simulatore MPSIM , oltre ad un LINKER, con funzioni di editor, comando di programmatori, di emulatori, di ICE, ecc. 

Anche se sono reperibili in rete altri assemblatori, sia gratuiti che a pagamento, questo, a nostro parere è un ambiente di sviluppo ben completo e completamente gratuito e costantemente aggiornato; ed essendo fatto dalla mamma dei PIC, non può che essere più che adeguato.

Oltre tutto è linkabile con vari compilatori di terze parti. 


Ecco una pagina di lavoro di MPLAB con numerose finestre "di servizio" aperte : per quanto complesso, non è poi così difficile da usare come può apparire a prima vista, anche perchè pare uno di quei programmi (pochi) che sono stati scritti in funzione dell' utente e non del programmatore. 

Una pecca, se così si può dire, è che si tratta di un file piuttosto grande (nelle ultime versioni va verso i 100 MB) e richiede una linea ADSL per il download, a meno di volersi svenare a favore della Telecom con il misero 56 k (digital divide all' opera...).
(comunque, nei tools di sviluppo di Microchip, se ne trova sempre una versione su CD).

Quindi, basta collegarsi a http://www.microchip.com , clickare nel menu su MPLAB IDE, scaricare l' ultima versione e installarlo seguendo le istruzioni (è un programma come un' altro...).

Fatelo e cominciate a mettere il file ottenuto da qualche parte, magari facendo sul disco una cartella C:\PIC in cui cacciare, nel modo più ordinato possibile,  tutto quanto andiamo facendo. 


I Linguaggi

Per quanto riguarda l' Assembler, abbiamo detto prima : MPASM è compreso in MPLAB ed è una ottima scelta. E' un macroassembler.

Ovviamente in rete si trovano vari altri assembler, ma non si vede proprio la necessità di andare a cercare un prodotto diverso: l'unico risultato possibile sarebbe quello di avere sorgenti che si portano con difficoltà !  Anche se molti di questi asm sono gratuiti, e non valgono certo MPASM, e se quelli a pagamento possono avere qualche feature in più, hanno anche costi in più.

Fino a che non se ne sente la necessità, MPASM è sicuramente la scelta migliore. Tra l' altro, MPASM è una utility integrata nell' ambiente di sviluppo MPLAB, ma può funzionare e produrre oggetti e liste anche separatamente (MPASMWIN).

Per quanto riguarda i linguaggi ad alto livello, esistono C e BASIC,, tutti reperibili sia gratuitamente nelle versioni lite,  che a pagamento, a seconda del prodotto.
Microchip offre C18 e C30, mentre altri produttori (Hitech, CCS, ecc) hanno versioni del compilatore adatte per le varie famiglie. 
Escluse le versioni lite, demo o education, si tratta di prodotti a pagamento.

Esistono poi altre cose, come Pascal o JAL, ma si tratta di divertissements per appassionati, più che altro di valore ludico e da evitare in quanto limitati nelle possibilità.


Il Programmatore

Sarà necessario avere un dispositivo di programmazione : una volta scritto il codice e compilato l' eseguibile, bisogna cacciarlo nel chip, attraverso il programmatore.  
Si intende come "programmatore" un dispositivi "stand-alone", ovvero che funziona da solo, sotto controllo di un programma specifico, che trasferisce il compilato nel processore.

Microchip offre dispositivi interessanti, come PICSTART plus , che programma praticamente tutti i PIC in DIP. 

Un vantaggio è che opera in modo integrato in MPLAB, ma non costa pochissimo. 

Però il WEB è infestato da decine e decine e decine di programmatori, come se fosse l' unica cosa in cui vale la pena di cimentarsi, da quelli costituiti praticamente da tre pezzi in croce ai più complessi; moltissimi sono gratuiti, puntando al fatelo da voi più taccagno, altri sono disponibili in kit o montati, a pagamento. Alcuni nomi noti : JDM, TAFE, TAIT, SCHAER, Willepro, YAL, Fluffy, ecc, di cui potete trovare i link semplicemente con Google.
Fanno generalmente capo a software open source: il nome più noto è il famoso  ICPROG. Ci sono versioni di alcuni di questi oggetti anche per ambiente Linux.

Ma se avete un debugger ICSP, come quelli elencati nel paragrafo seguente, un programmatore NON serve !!   perchè questi tools fanno pure questa funzione.

Basta che sulle board sia presente un semplice connettore a sei poli per l' in-circuit Serial Programming (ICSP) e nient'altro.
Programmatori del genere sono adatti a tutti i nuovi chip flash e si trovano in rete sia schemi  (gratis) che kit o prodotti finiti, a costi anche molto bassi. Questa programmazione  consente di caricare il chip senza levarlo dallo zoccolo o dissaldarlo da circuito.
Dato che tutti i chip consigliati per iniziare possono essere programmati così, un programmatore classico, con zoccolo e tutto, è, al giorno d' oggi, poco utile.

Comunque, per chi voglia a tutti i costi un programmatore, il consiglio è quello di evitare i prodotti più semplici, che non sono semplici, ma semplicistici: andranno bene per giocare, ma se siete interessati a lavorare in modo quasi serio sui microcontrollers, vale la pena di scegliere qualcosa di più evoluto. 

Ma conviene il fatelo da voi ? La risposta è NO, almeno i casi come questo. 
Il nostro consiglio è quello di non autocostruirsi alcunchè fino a che non si è in grado di capire cosa si sta facendo: niente di peggio che iniziare con tools fatti in casa e che funzionano solo il 32 del mese !
E sono da evitare principalmente i programmatori alimentati direttamente dalle porte del PC, per i motivi detti prima: niente di peggio di un trespolo che programma il chip a caso per trasformare in un inferno una attività interessante ed istruttiva.


 Emulatori e debugger

Una ottima cosa sarebbe quella di avere sotto mano un ICE, che non è un pezzo di ghiaccio, ma un emulatore in tempo reale (In Circuit Emulator). 
Un ICE ha lo scopo di sostituire il microntroller nel circuito con un plug che lo emula, sotto la supervisione diretta dell' ambiente di sviluppo. In questo modo si potranno, ad esempio, far avanzare le linee del programma una ad una, comandare direttamente gli I/O, modificare i registri, fissare breakpoint nell' esecuzione, sincronizzarsi con segnali esterni, ecc. 

Con un attrezzo del genere si viene a capo di praticamente qualsiasi groviglio hardware e software. Microchip  produce un MPLAB-ICE200 che, con gli opportuni adattatori, permette una reale emulazione in-circuit dei PIC.

Il problema è che un ICE costa parecchio (da poche a molte migliaia di euro) ed è quindi qualcosa di riservato al professionista.  

Ma c'è un'altra possibilità, che è quella di sfruttare la funzione di debug interno dei PIC (In Circuit Debugger - ICD), attraverso la presa ICSP/ICD: non si tratta di vero e proprio ICE, ma è un aiuto indispensabile e sorprendentemente valido per effettuare il debug di un programma e venir fuori da molte situazioni di stallo.
Il debugger è in grado di effettuare molte funzioni dell' ICE, sia pure attraverso il meccanismo di debug integrato nei chip: si possono far avanzare le istruzioni a passi, attivare breakpoint, leggere lo stato dei registri e della memoria, modificarli, programmare il chip. Il tutto senza toglierlo dall' hardware in cui è inserito.

Microchip  offre diversi oggetti, tra cui l' economico PicKit3 o  un oggetto chiamato ICD, arrivato alla versione 3 (ICD-3), che, nonostante la bizzarra forma a scatola di pastiglie, è un ottimo attrtezzo o il più complesso MPLAB-Real ICE, molto potente, ma costoso.

In rete sono disponibili cloni di alcuni di questi tools, sia come progetto completo per un fatelo-da-voi che come prodotti finiti (guarda un po', dalla Cina...) .
Però solitamente si tratta di copie delle versioni meno recenti, il cui firmware è "sfuggito" a Microchip, probabilmente anche solo come parte della politica user friendly che ha dato così tanto spazio ai prodotti di questa azienda.

Di nuovo, però, non c'è ragione di autocostruire niente, nè acquistare cloni : per iniziare, un Pickit3 costa poche decine di euro e va più che bene (e, sopratutto va...).
Anche qui, lasciamo le autocostruzioni al momento in cui si avranno conoscenze adeguate per capire cosa si sta facendo e quindi farlo al meglio.


Il supporto hardware

Per sviluppare un progetto qualunque ed il relativo software, bastano carta e penna, pardon, editor e PC.
E per vedere funzionare un programma al limite non serve neppure un hardware: la funzione SIMULATOR dell' ambiente di sviluppo permette di verificare che un programma "giri" anche senza avere alcun PIC collegato.

Ma se poi vogliamo vederlo funzionare dal vero occorre realizzare un circuito hardware in cui fare agire questo software. Solitamente il "programmatore", di hardware e di elettronica ne sa poco o nulla. 
Sfortunatamente per lui, il microcontroller è strettamente legato al circuito in cui sta, dato che la sua funzione è ben diversa da quella del gestore di un data base o di un programma di contabilità.
Questo non vuol dire che chi non è ingegnere elettronico non può usare i PIC; vuol solo dire che occorre un minimo di conoscenza dei circuiti elettrici.

E per realizzarsi il proprio circuito ci sono due vie :

  • fatelo-da-voi

  • fatelo-fare-agli-altri

Nel primo gruppo possiamo individuare :
 
- il circuito stampato, adatto a bricoleurs elettronici esperti. Qualunque hobbista elettronico esperto sa  farsi da sè un circuito stampato mono rame.
I limiti stanno nella necessità di avere l' attrezzatura e nel tempo necessario per disegnare, incidere, forare, saldare. Inoltre non è semplice farsi in casa dei circuiti a doppia faccia, spesso necessari nei sistemi digitali (e non solo).
Per contro, se ben realizzato, un cs non ha niente da invidiare ai prodotti commerciali
E' la soluzione che preferiamo.

- Una seconda possibilità è quella di usare una scheda millefori, che qualsiasi hobbista (e non solo) elettronico conosce : é una scelta economica, ma  ideale solo per chi ama lavorare di saldatore ed ha la sufficiente conoscenza ed esperienza. 
Ha lo svantaggio che le parti saldata sono difficilmente recuperabili per una applicazione del tutto differente. E non si impiega certo pochissimo tempo se il circuito è complesso e si vuole fare un lavoro ordinato (che, in questo ambito, è indispensabile).

- Una alternativa più pratica alle millefori certosinamente saldate è la tecnica del wire wrap : nel passato era molto comune realizzare circuiti logici in questo modo. Però sono richiesti attrezzi non economici, sopratutto se elettrici, e zoccoli particolari, e per queste ragioni non ha mai preso piede al di fuori delle applicazioni professionali.
In campo hobbistico sono stati realizzati sistemi analoghi, con attrezzi manuali, anche con fili auto spelanti, ma, al di fuori dell' ambiente USA, hanno poco peso, per la difficoltà di trovare attrezzi e materiale.

- Una terza possibilità, che consente di fare molto senza mettere mano al saldatore, è quella di usare una breadboard per esperimenti, di quelle che permetto il contatto senza saldature, molto comuni in scuole e laboratori. Se ne trovano a iosa in rete, anche su eBay e a costi veramente minimi.

Con questo supporto si potranno realizzare infiniti prototipi ed esperimenti, potendo riutilizzare senza fatica le varie parti e potendo modificare il circuito senza saldare nulla: i contatti elettrici sono ottenuti con micro morsetti elastici in cui i componenti sono semplicemente infilati a pressione. 

Costa qualcosa in più della precedente alternativa, ma non richiede l' attrezzatura per fare circuiti stampati, ne saldatore, quindi, alla fine, la scelta paga. Richiede, però, comunque, una conoscenza dell' elettronica, dei componenti, dei circuiti .

Nell' immagine, una breadboard di ottima qualità, con accessori (DigiKey - TW-E41-1060) che è fornita su un supporto dotato di morsetti per il collegamento con l' alimentatore e di un kit di fili colorati e contatti per i collegamenti.

Personalmente, le troviamo poco pratiche se il circuito è un po' complesso: sicuramente i componenti si riciclano facilmente, perchè non vengono fatte saldature, e  per questo motivo non servono saldatore, stagno, ecc; e, sempre per lo stesso motivo, è molto semplice fare modifiche. In più , una volta esaurito l' esperimento, si smonta tutto e c'è subito spazio per un' altro. Inoltre, modifiche anche sostanziali al circuito, si fanno in poco tempo.
Lo svantaggio è che il tempo di montaggio, per non fare garbugli improponibili, non è poco: studiare una disposizione di molte parti e collegamenti, piegare componenti, tagliare e spelare fili per i ponticelli, ecc. non è cosa da 2 minuti.

Nel gruppo del fatelofaredaglialtri ci sono :

- i prodotti commerciali
Decine di produttori hanno a disposizione ogni genere di board, dalle più elementari alle più complesse, con i costi più variabili. In queste strutture sono già pre montati display, tastiere, potenziometri, alimentatori e perfino interfacce di programmazione, accesso a  SD card, Ethernet, CAM, e chi più ne ha più ne metta. Sono la soluzione che più si adegua a chi è interessato alla programmazione più che alla realizzazione di circuiti stampati, in quanto le varie componente sono nelle condizioni di essere viste quanto più possibile come black box da trattare via software, limitando il più possibile gli interventi sull' hardware. 

E' la scelta assolutamente da fare sia per chi non ha sufficienti conoscenze di elettronica per il bricolage, sia per chi è interessato a dare maggior peso alla programmazione, liberandosi dei molti e non indifferenti problemi che può presentare la realizzazione di un hardware do-it-yourself, anche solo la ricerca e il costo delle parti.
 

MikroElektronika, ad esempio, vende ottimi prodotti, anche assai completi, e non solo per PIC, a costi per nulla eccessivi. Inoltre offre molti accessori dedicati, oltre a linguaggi BASIC, C  e Pascal ed il sito contiene molte utili informazioni. 

Qui a lato vediamo la notevole EasyLV-18F, perfetta nei dettagli, ricca di componenti anche non convenzionali ed espandibile con numerosissimi accessori, sempre prodotti da MikroElektronika.

Si può sperimentare dall' USB all' Ethernet, all' interfaccia con SD Card, accelerometri, potenziometri, CAN, I2C, ecc, tutto a portata di mano senza fare saldature

Tra l' altro, il costi di queste bellezze (elettroniche) è molto contenuto (meno di 150$ - non è gratis, costa, ma di meno di quanto costerebbe acquistare le singole parti ed assiemare il tutto !) e sono disponibili bundle convenienti con linguaggi vari (BASIC, C, PASCAL). Da notare che queste board integrano un ICD e non necessitano di altri tools. Sono acquistabili direttamente dal costruttore, che è serio ed efficiente.
Tra l' altro MikroElektronika produce schede del genere per lo sviluppo anche su PIC a 16 bit e dsPIC, oltre che per parecchi altri processori (AVR, 8051, ARM, PSoC), e, recentemente, delle schede "universali" in grado di operare con tutti questi microcontroller , semplicemente sostituendo una schedina di supporto per i vari chip. 
Inoltre ha in catalogo una marea di accessori che permettono di realizzare sistemi di prova per un ampio spettro di applicazioni, dai GPS ai Real Time Clock.

Anche Microchip offre schede di valutazione, ma per i prodotti più complessi i costi non sono sempre bassi. Però ci sono bundle con Pickit, acquistabili in rete da RS Components o direttamente dallo shop di Microchip Direct   a costi minori dei componenti acquistati singolarmente. 

Ad esempio, il Pickit3 è solitamente offerto anche in bundle con una Demoboard, una scheda che supporta un processore PIC e  LED o pulsanti o altro e un piccolo spazio millefori per integrare ulteriori componenti.

La presa ICSP incorporata pemette di collegre la scheda direttamente al Pickit ( tra l' altro, non occorre neppure alimentatore esterno perchè questo tools deriva la tensione dii 5 V dalla connessione USB con il PC).

Un CD con esempi di programmazione e l' MPLAB e il cavo USB completano la confezione.

Inoltre ci sono varie schede dedicate a settori particolari (LCD, motori, wireless, grafica, ecc).

Si possono ricordare anche altri nomi, come Olimex , che offre una buona gamma di prodotti non solo per PIC a costi molto contenuti. Inoltre produce circuiti stampati per prototipi ed è collegata ad un forum di utenti.
E poi, tanto per citarne alcuni, Apogee, SK Pang ,Modtronix, MCPros , Rentron , Warburtech e tantissimi altri, ognuno con soluzioni differenti, non solo per i PIC, ma anche per altri microcontrollori più diffusi : basta fare una ricerca con Google per trovare in poco tempo quello che si sta cercando.


Il chip !

Ovviamente, poi, va scelto il chip con cui cominciare. Va tenuto presente che molti chip sono pin compatibili tra di loro, anche se appartengono a famiglie diverse. Per cui, disponendo di un hardware di base come le board sperimentali sopra dette, è possibile intecambiare i vari chip ed estendere le possibilità della sperimentazione. Evitiamo sicuramente l' obsoleto 16F84 e i 16F e partiamo con i PIC18F.

Va detto che se si intende usare il C in modo serio, è opportuno considerare componenti con molta memoria, ad esempio 18F2525 o 18F2610. E, anche meglio, iniziare con i 16 bit, PIC24 o PIC30, che molto meglio si adattano per risorse e struttura a linguaggi consumatori di risorse.

Però, per un primo approccio, anche molto completo, i PIC18 sono la scelta migliore.

Solitamente, se si intende avere a che fare con l' hardware, è meglio usare dei chip in contenitore DIP, perchè facili da inserire e togliere dagli zoccoli. 
I componenti SMD, se sono integrati su schede di sviluppo o valutazione, bene, se no è roba adatta a chi ha una buona mano con i saldatori.

In generale, in nostro PIC ideale avrà queste caratteristiche:

  • In Circuit Debug integrato

  • 28 pin

  • AD, UART, MSSP, Timers, Comparatori, CCP

Praticamente tutti i PIC18 a 28 pin hanno queste caratteristiche. Per il corso, principalmente useremo un PIC18F2321 che può essere considerato un sostituto diretto del PIC16F876.

Si potrebbe cominciare con PIC più piccoli, ma nella famiglia enhanced per ora i più piccoli sono dei 18 pin e questo, ridotto dei tre pin necessari per ISCP/ICD, limita un poco le possibilità di sviluppo. Inoltre questi piccoli PIC non hanno debugger integrato.

Si possono benissimo usare, invece, anche PIC a 40 pin: la sigla del componente avrà un 4 iniziale (ad esempio PIC18F4321 è la versione a 40 pin di 18F2321). Il vantaggio è di avere più I/O a disposizione (perchè le periferiche integrate sono analoghe al modello nel package più picColo), il che non guasta mai. Però lo spazio occupato sarà maggiore e la scheda di supporto più ampia.
Stesso discorso con i 64 e 80 pin, che però esistono solo in package smd (però esistono evaluation non costose di Microchip o EasyPIC di Mikroelektronika con questi componenti.

Il discorso è semplice: all' interno della famiglia enhanced, la portabilità è più che buona ed è possibile sviluppare un programma su un 40 pin e poi trasferirlo pari pari ad un 28 pin cambiando solo gli headers del processore.

Non occorre avere un cesto di chip, ne bastano uno o due, anche perchè la flash che contiene il programma può essere cancellata e riscritta numerose volte e lo stesso pezzo può servire per molteplici esperienze.
Ed è opportuno non cominciare con i più piccoli, ma con elementi che offrano un minimo di risorse di memoria, di IO e di periferiche.
Infatti è molto meglio partire nello sviluppo di un progetto da un componente ben fornito e poi, se possibile, passre la versione definitiva ad un componente più ridotto che non trovarsi a dover fare l' inverso.
Con un altro esempio, se abbiamo disponibile una libreria con 10000 volumi e una con 1000, nella prima avremo possibilità di consultare ogni genere di testi durante il lavoro. Concluso questo, se basta potremo mettere a disposizione una libreria più piccola, anche di 1000 volumi. Ma se partiamo da quella da 1000 volumi e durante il lavoro ci accorgiamo che ne servono il doppio o il triplo, dovremo ripartire scegliendo la libreria maggiore. tanto vale farlo subito: il costo di un chip non è tale da mandare in bolletta nessuno sperimentatore.

Un discorso a parte riguarda i PIC piccolissimi, quelli a 6 e 8 pin (PIC12 e PIC10) : si può cominciare anche da questi, ma non è consigliabile per due motivi :
- hanno pochi pin e quindi non sono adatti ad un debug ICSP/ICD
- hanno moltissime limitazioni hardware e software

Sono stati progettati per impieghi particolari (ed è favoloso avere in mano un microprocessore grande come un NE555 o meno): secondo il nostro parere possono essere affrontati quando ci si è formata una minima conoscenza dell' ambiente.

 


L' Editor

E' molto utile avere anche un buon editor : una cosa è scrivere una lettera o una mail, un' altra è scrivere centinaia di linee di codice e capirci poi qualcosa. Per cui, niente Word : meglio un editor adeguato. Certamente in MPLAB c'è un editor, ma questo serve più ad agire sul sorgente durante il debug che non a scrivere il sorgente stesso. Per questo serve un editor che sia in grado, ad esempio, di colorare automaticamente le varie parti del testo, in modo da evidenziare codici, commenti, labels, ecc. Chiaro che si può usare anche l' eccessivamente spartano Notepad di Windows, ma con un buon tools, la fatica si dimezza. 

Ottimo si è rivelato TEXTPAD , downloadabile in trial e poi shareware acquistabile a basso costo, ma ce ne sono molti altri. Qui sotto un esempio di schermata di lavoro con diversi testi aperti.

 Da notare le diversa colorazione (programmabile) degli elementi del testo, che ne facilitano immensamente la lettura e permettono a prima vista di correggere errori, oltre alla finestra a sinistra dove dono raccolti gli opcodes dei PIC18F, ma che può contenere numerosi altri layout (programmabili) da ASCII a C a PHP, ecc.

Comunque i text editor per programmatori con caratteristiche analoghe sono un must della rete. Per citarne alcuni :

e molti altri, sia freeware che shareware.


Tools di conmunicazione

Sarà poi opportuno avere qualche tools di comunicazione se si intende lavorare con le porte seriali; è utile disporre di qualcosa del genere di Hyperterminal, che, anche se fa abbastanza schifo, è in già presente in Windows e, in mancanza di qualcosa di meglio... 
Però si trova diversa roba migliore in rete for free. Siti come MajorGeeks o SoftPlaz o Winfiles e simili sono una fonte preziosa di utilities. Trattandosi di tools non di uso comune, molti hanno licenza shareware e sarebbe giusto pagare i pochi dollari che solitamente gli autori chiedono. 

Da citare RealTerm e Terminal.exe


La documentazione

Certamente non si fa nulla senza una buona documentazione. Nel passato era tutto cartaceo (e sotto certi punti di vista non era un male); ora è tutto disponibile in rete. Ovviamente sul sito della Mamma trovate tutto quello che serve, dai data sheets dei singoli chip, a schemi applicativi, codice a chili, utilities e quant'altro.

Attenzione perchè le application o i codici disponibili a caso sulla rete non sempre sono ok al 100%.
 
L' unica sfortuna è che tutto quanto è in inglese, perchè, come abbiamo detto, l' elettronica si è sviluppata in ambiente anglofono. 
D'altronde Microchip è in Arizona e non in Puglia, per cui toglietevi dalla testa di poter trovare più che tanto in idioma nostrano  (che, tra l'altro, è così poco importante a livello internazionale da essere stato escluso da alcune traduzioni dal vivo in ambiente CE, il che è tutto dire). 

Semplicemente non c'è e non ci sarà mai ! 
Nessuno , al di fuori dell' Italia, che tecnologicamente conta zero, parla italiano, al di la del Canton Ticino (che è italiano solo formalmente, mentre si parla tra la gente, un dialetto lombardo); perfino la nostrana SGS (ora ST) scrive i data sheet dei componenti prodotti ad Agrate Brianza prima in inglese e solo dopo li traduce (a volte) in Italiano.

Pertanto una conoscenza minimale dell' inglese è INDISPENSABILE, sia per leggere le documentazioni, sia perchè le voci usate in informatica e persino i nomi o gli acronimi dati alle istruzioni sono inglesi. 
Non occorre un master a Oxford, in quanto il linguaggio tecnico è piatto e facilmente comprensibile, non facendo uso che di vocaboli specifici e senza tutte le finezze della prosa e della poesia o i modi di dire del parlare comune anglosassone o americano. Un ragazzino di terza media, che qualcosa di inglese abbia realmente fatto a scuola (raro, ma possibile ...), non è in grado certamente di apprezzare Joyce o Carrol, ma, a parte la conoscenza dei termini tecnici, può leggere quello che scrivono gli autori americani dei vari corsi on-line. Una persona interessata ad un argomento tecnico, poi, avrà ancor più facilità. 
Il rifiuto di apprendere quel poco di pensiero anglofono che permette l' accesso alla tecnica elettronica , tipico di tanti connazionali ("io di inglese non capisco nulla, a scuola l'ho studiato male, ecc. ecc") è sicuramente la via migliore per non avanzare per niente, non solo nelle proprie conoscenze, ma in nessuna direzione.


I links

Nella pagina dei links sono raccolti diversi indirizzi, grosso modo per categoria, a cui fare riferimento per avere maggiori informazioni.


CONCLUSIONI

  • IL PC : quello che avete va bene, sia desktop che notebook (meno bene i netbook) : i sistemi di sviluppo non richiedono risorse speciali. Essenziale è avere un buon monitor che non stanchi la vista.

    Azione: ma ce l' avete davanti al naso !
     

      

  • L' ambiente di sviluppo : nessun dubbio.  Scaricate dal sito di Microchip l' ultima versione di MPLAB.

    Azione: scaricare al sito di Microchip (gratis).
     

      

  • I Linguaggi : se volete la massima aderenza con l' harwdare, l' Assembler (MPASM compreso in MPLAB) è l' unica scelta. E la versione lite del C.  Qui useremo questi.
    Non c'è per ora in programma, almeno per ora,  BASIC, in quanto non è facile considerarlo come un qualcosa di adatto all' uso con i microntrollori embedded.

    Azione: scaricare al sito di Microchip (gratis).
     

     

  • Il Programmatore : non serve un programmatore separato. Il debugger (vedi dopo) fa anche questo.

    Azione: non considerarlo - non serve.

     
  • Debugger- Emulatori : Per chi comincia e ha poco budget, assolutamente il PickIt3 di Microchip. Se siete più "in grana", l' ICD3, se non il REAL ICE, sempre di Microchip. E fanno anche da programmatori. Qui useremo Pickit3 (o 2) o Real ICE.

    Azione: acquistare un Pickit 3 .

     
  • La breadboard : Dato il numero elevato di connessioni che possono derivare dal PIC, le beradboard vanno bene limitatamente. Meglio qualcosa del genere delle DemoBoard che Microchip offre spesso in bundle con i debugger. Ma si può usare qualsiasi altra cosa, a patto che abbia una presa ICSP. Un discorso a parte sui super sistemi tipo le EasyPIC di Mikroelectronika, lussuose, ma economiche e molto adatte per istruzione. 
    Qui useremo le Demoboard di Microchip o un sistema fatto in casa, molto efficiente, che sarà descritto in un progetto a parte.

    Azione: a vostra scelta.
     

      

  • Il chip : Un qualsiasi PIC18F per cominciare, a meno che vogliate subito passare ai 16 bit.
    Qui useremo principalmente il PIC8F2321, ma anche altri similari andranno bene.

    Azione: disporre di un PIC 18F a 28 o 40 pin.
     


  • L' Editor : Un Editor è sempre molto utile. Qui useremo TextPad, ma anche gli altri indicati vanno benissimo.

    Azione: scaricare l' editor che si preferisce
     

      

  • Tools di conmunicazione : Colloquiare con cosa, se non con il PC ? A parte l' antico e claudicante, ma ancora utile se non c'è altro, Hyperterminal, sul WEB ci sono una marea di emulatori di terminale, di cui molti gratuiti. Qui useremo RealTerm o Terminal.exe.

    Azione: scaricare un terminale dal web o usare Hyperterminal.
     

      

  •  Istruzione, istruzione ...: Ma è qui, perbacco ! O meglio, qui trovate qualcosa. Quello che manca si trova sparpagliato sul WEB. Google è indispensabile.

    Azione: seguire questo corso.
     


  • La documentazione: Ovviamente dal costruttore, dove si trovano fogli dati, application, supprti vari, oltre un forum specializzato.

    Azione: se non l' avete mai fatto, iniziate a dare una occhiata al sito di Microchip (gratis).
     

     


Cosa costa il tutto ?


- il PC l' avete già (costo = 0)
- MPLAB e C lite sono gratuiti (costo = 0)
- Un Pickit3 costa attorno alla trentina di euro
- Breadboard e pochi componenti o Demoboard28 : da 30 a 150 euro
- Il PIC c'è già sulle Demoboard, se no costa in PIC18F2321 meno di 10 €
- Un editor GNU è gratuito o shareware (costo = 0)
- Lo stesso per gli emulatori di terminale (costo = 0)
- L' istruzione è qui (in parte)
- la documentazione è gratis (costo = 0)

Cosa volete di più ?

 

Azione: Adesso che c'è tutto, è ora di cominciare.
 

 


Nota finale


Questi sono consigli, non ukase tassativi

Abbiamo detto il nostro parere, frutto dell' esperienza. Poi, ognuno è liberissimo di fare come meglio crede, dallo sviluppare si macchine Unix ad usare i programmatori più economici e con il metodo brevettato "scrivo-programmo-picchio la testa nel muro (perchè non va niente)".

E, sopratutto, le soluzioni elencate NON sono le uniche disponibili : il mercato degli embedded è vasto e in continua evoluzione. Quindi è ben possibile lavorare con altri tools o linguaggi ed avere comunque ottimi risultati e anche di più.

Quindi, se avete già qualche cosa, dalle schede di supporto ai chip, dai programmatori ai cloni di ICD2, va bene lo stesso: si potrà seguire quanto viene detto in queste pagine ugualmente, adattandolo alla propria situazione.

Però le scelte indicate sono le più pratiche, immediate e disponibili, non troppo costose, se non del tutto gratuite, aggiornate e documentate.
Se scegliete altro, verificate di cosa si tratta. 

 


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 03/12/10.