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 :
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.
-
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.
|
|