Vai al contenuto
PLC Forum


Impariamo Ad Usare I Microcontrollori - Guida pratica all'uso partendo da 0


Livio Orsini

Messaggi consigliati

Come avevo anticipato in una precedente discussione, mi son deciso a pubblicare questa spece di guida pratica all'uso di microcontrollori.

Questo non è un corso, tutorial o simile, ma una specie di cammino passo passo, partendo dalla realizzazione dei circuiti Hw e da prove applicative per verificare ed applicare le potenzialità insite nel microcontrollore.

La scelta del tipo di micro è caduta su i PIC, microcontrollori prodotti da Microchip.

Perchè questa scelta?

Perchè sono microcontrollori molto conosciuti, duffusi; l'attrezzatura di sviluppo è veramente "risparmiosissima". Bastano poche decine di € (<40€) per acquistare un attrezzo Microchip che permette di programmare e "debuggare in circuit" il sistema. Inoltre con la medesima piedinatura si possono usare micro a 8 bits, 16 bits ed anche 32 bits!

Come Hw di base riprendo una vecchia idea che sviluppammo anni fa assieme a due amici del forum: Walterworld e Ifachsoftware.

In pratica si costruiranno una serie di schedine, ognuna specializzata in una funzione specifica, che si interfacciano tra loro tramite morsettiere. Insomma una specie di Lego o di Meccano.

Il primo passo sarà la costruzione dell'unità CPU e di 2 periferiche base: ingressi a pulsanti e uscite a LED.

Spero di mettere a disposizione schemi e foto già in questo fine settimana.

Per gli attrezzi software inizialmente è sufficiente scaricare dal sito Microchip il pacchetto MPLab, completamente gratuito. Questo pacchetto dispone già dell'assemblatore ed è anche possibile scaricare una versione ridotta del compilatore "C".

PicKit3. Questo è il link all'attrezzo di costo minimo (45$), ma veramente completo ed ingrado di fare tutto per quasi tutti i micro.

Link al commento
Condividi su altri siti


Allora cominciamo con il vedere la scheda usata come sistema di sviluppo.

fig. 1

fig. 2

fig. 3

In fig. 1 potete vedere la scheda unita con 8 fili, compresa l'alimentazione, ad un display: un classico 2 righe da 16 caratteri.

le fig. 2 e 3, mostrano la scheda più in dettaglio.

In bassa notiamo i 2 morsetti per l'ingresso dell'alimentazione non regolata; a fianco inizia la morsettiera che ricopia le porte disponibili ai pins compresi tra 1 e 20 del micro.

Sul lato sinistro abbiamo l'alimentatore, il connettore di programamzione ed i morsetti per portare all'esterno + 5 V e o V; i dip switches servono per come porte o come selezionare i vari tipi di PIC, DSPIc e per selezionare le linee B6 e B7 come porte o come linee di programamzione e debug.

La serie di morsetti in alto porta in uscita i pins disponibili come I/O dal 21 al 40.

Prossimamente pubblicherò lo schema semplificato di questa scheda. La foto può essere una guida per lo sviluppo del c.s.

Potrebbe anche essere che Ifachsoftware abbia ancora qualche basetta disponibile; se qualcuno fosse interessato provi a chiedere direttamente a Claudio Ifachsoftware

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Questo è il file zippato per gli schemi degli ingressi da pulsante e le uscite digitali.

Con questo si può realizzare lo Hw minimo per iniziare lo studio e la sperimentaziano.

Di volta in volta saranno aggiunte periferiche per permettere di verificare le nuove funzionalità dei micro.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Vorrei porre una domanda, ho acquistato Picstart Plus della Microchip e sto iniziando lo studio di un PIC in particolare, la programmazione e l'utilizzo del programmatore, Assembler per il momento per poi successivamente provare il C/C++. ( premetto sono un neofita)

Avendo già un prodotto commerciale pronto quindi non devo costruirmi nessun circuito, gestione RGB con PIC16f630, vorrei provare a modificarlo a mio piacimento, questa guida spiegherà anche le basi per la programmazione da poter affiancare ai testi da me acquistati?

Link al commento
Condividi su altri siti

L'idea è quella di partire dalle basi.

L'uso di u Hw piuttosto che un altro è poco importante, proprio per le caratteristiche dei PIC.

Dovrei riuscire ad inserire il primo step prima di Natale. Ovviamente inizialmente si usa esclusivamente la programmazione in assembler.

Link al commento
Condividi su altri siti

  • 7 months later...

ciao Livio

che bello riprendi in mano il progetto pizza micro ahahahaha

ho ancora le schede , la scehda cpu ect

Senti una cosa sto cercando di riprendere in mano un progetto di tempo fa , una scheda con dsPIC30F4011 che svolge le seguenti funzioni .

Tramite tastierino ed lcd seleziona le varie uscite che sono 0-10 V , 4-20 mA, encoder pnp-npn , line drive ect.

Avevo gia creato il disegno e sbrogliato il pcb con proteus e mandato in produzione i pcb , ricevuti , montati i componenti , e programmato il micro .

Con oscilloscopio a pc aveo sistemato gli operazionali , l'AD694 , i vari pwm ect ed il tutto testato con un s7-200 nei suoi due ingressi veloci per quanto riguarda le uscite encoder simulato.

Ora non ritrovando piu i progetti o comunque smarriti in qualche cd che non trovo vorrei fare delle modifiche ma :

ho un nuovo pc con I7 e windows 7 pro e la versione di mplab che usavo con mplab C30 non gira .

Ho provato ad installare su Xp mode ma anche li non rileva l'icd2 non carica i driver usb

Cosi ho visto sul sito microchip che c'e' la nuova versione MPLAB X .

L'ho installata ed installato anche MPLAB C-30 .

Pero a quanto pare non supporta ICD2 .

Praticamente ore perse senza concludere granche

Tu stai usando l'ultima versione di MPLAB X oppure usi le antecedenti ?

Dai documenti sembrerebbe che ci voglia ICD3 , che si trova a circa 150 euro .

Ho dato uno sguardo al datasheet ed ho visto che ha l'uscita rj come ICD 2 , e credo di aer capito che i collegamenti in circuit sono medesimi ,

Ne sai qualcosa , sei al corrente delle evoluzioni microship?

ciao

Walter

Modificato: da walterword
Link al commento
Condividi su altri siti

Walter attenzione che c'è Mplab e MplabX.

Su questo PC ho Win 7 e MPlab 8.73a e gira tutto, vompresa l'interfaccia con ICD2.

MPlab X credo non supporti ICD2, però dovrebbe supportare microkit.

Ora sono nel profondo Sud e non ho sottomano la documentazione. Torno ad agosto.

Hai ancora dei cs della CPU? Se ne hai ancora potresti darmene un paio? ovviamente te li pago.

Come vedi siamo alle solite; son più di 6 mesi che il progetto si è fermato per il solito problema: interessa a pochi.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

ciao Livio

Ho provato ieri sera ad installare MPLAB 8.85 su seven pro

Pero quando introduco ICD2 mi chiede i driver usb

Percorro le cartelle ICD2 ed altre per cercarlo ma non lo trova

Non capisco

Si lo so che c'e' MPLAB X che e' totalmente diverso .

Pero' ho notato che la versione che ho io di MPLAB C-30 va bene per entrambe gli ambienti

Possiamo vederci quando rientri , ho un sacco di schede , quasi il doppione per ogni tipologia

Sentiamoci , io sento Claudio e poi vediamo

ciao

Walter

Link al commento
Condividi su altri siti

ok ora tutto a posto.

Ho installato il driver usb ICD2 su windows XP Mode col tasto USB sopra la finestra e poi automaticamente me lo ha installato anche in seven .

Da seven con MPLAB 8.85 ho scaricato il firmware per un dsPIC30F4011 ed un PIC16F876a

Ho anche scaricato un programmino per testare la cosa , e funziona .

Ho scaricato su demoboard multi micro pizza micro e sulla PICDEM PLUS 2 che avevo gia .

Ora devo ritrovare i progetto seno riscrivere tutto da capo .

ciao

Walter

Link al commento
Condividi su altri siti

I driver USB dovrebbero essere nella cartella di ICD, però visto che hai già risolto in automatico meglio così.

Ci sentiamo quando rientro (dopo il 2 di agosto).

Hai sempre lo stesso numero di cellulare?

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

si ho sempre lo stesso numero.

Ho fatto delle prove ora ... semplice programma con MicroC per dsPIC che genera hex e poi caricato con ICD2 da MPLAB

Certo ogni volta che accendo il pc devo caricare il driver usb da xp mode e poi automaticamente in win 7 ma non e' un problema

Vedevo attentamente le varie schede che propongono quelli di mikroelettronika , devo dire molto itneressanti con una varieta' di schedine aggiuntive per analogica , flash ect .

Quello che doveva essere il progetto pizza micro sulla carta

Magari per il mio compleanno mi faccio un regalo , mi compro una bella scheda da loro con lcd grafico e colori e un po di cosette .

Chiamami sul cell

ciao

Walter

Link al commento
Condividi su altri siti

I drivers dovresti trovarli nella direcory \mplab\ide\icd2.

Le schede della MikroC van bene se poi usi i loro compilatori con le loro librerie.

Prova a dare un'occhiata a questo sito c'è molta bella roba e molto interessante (magari lo conoscevi già).

Ti chiamo quando torno a casa.

Link al commento
Condividi su altri siti

Anche io ho ICD2, e non ho mai avuto problemi con win7 (io ho la versione 32 bit)

nella cartella ICD2 di MPLAB ho i seguenti file:


04/01/2010  16:37		    21.383 ddicd2.htm

02/10/2009  15:58		    22.134 DeviceMgrICD2.gif

02/10/2009  15:58		    23.470 DeviceMgrUnknown.gif

02/10/2009  15:58			 3.874 DeviceMgrUnknownUpdate.gif

02/10/2009  15:58			 4.834 exclamation.gif

07/01/2005  09:02			 2.354 icd2w2k.inf

22/03/2004  02:43		    12.427 icd2w2k.sys

07/01/2005  09:02			 2.429 icd2w2kl.inf

22/03/2004  02:43		    16.556 icd2w2kl.sys

28/04/2006  08:05		    45.056 MCDRV48F.DLL

02/10/2009  15:58		    17.522 MPLABIDE.gif

02/10/2009  15:58			 7.247 Serial.gif

02/10/2009  15:58		    22.997 Update1.gif

02/10/2009  15:58		    23.155 Update2_ICD2.gif

02/10/2009  15:58		    16.538 Update3.gif

02/10/2009  15:58		    21.681 Update4_ICD2.gif

02/10/2009  15:58			 2.089 USB.gif

02/10/2009  15:58		    27.648 USBPlugIn_ICD2.GIF

			  19 File	    293.394 byte


non ricordo che mi abbia fatto storie per l'installazione.

Link al commento
Condividi su altri siti

comunque su siti americani ed inglesi dicono di fare la stessa procedura che ho fatto io

Installare xp mode , isntallare mplab , installare il driver usb icd2 e poi lo ritrovi anche su seven , problema risolto anche se noiso all'avvio ma tollerante

Livio , se vuoi ho anche due libri ognuno di quali propone 15 progetti in assembly con relativo hex ,

Per partire da zero come vuoi fare tu bisogna capire bene le funzionalità del micro , l'assembly , i registri , le label ect .

Si mikroelettronica ha delle belle cose , ora sto studiando il compilatore mikroC per dsPCI e pic24

Poi dovro capire ils enso delle librerie , che molte sono software e magai bloccanti ect

Ora guardo il tuo sito

ciao

Walter

Link al commento
Condividi su altri siti

molto interessante il sito , bravo Livio

Non lo conoscevo .

In italiano , pieno di risorse e ben descritte .

Potresti indicarlo come spunto e studio prima di apprendere un progetto online .

Li c'e' veramente di tutto .

I kit di mikroelettronica girano attorno a due schede base , poi aggiungono un pezzo o una scehdina specifica ma alla fine li ho guardati tutti e a parte il target , il micro e poco altro (forse il quarzo ) sono piu o meno simili .

Sto verificando l'ambiente di sviluppo perche comunque resta sempre un bel prodotto a prezzo molto accessibile .

La praticità sta nel fatto che sulla scheda ci sono dei componenti gia montati e funzionanti e quindi nel caso specifico si evita di perdere tempo a cablare o saldare .

Certo che comunque per poter pensare di sviluppare un qualcosa che abbia un senso pratico ed utile nella vita quotidiana si deve lavorare un pochino .

Per esempio tirare fuoi un datalogger su database sql express che prende info da temperatura , pressione atm , umidità fornite da un pic che immagazzina su sd o eeprom i dati in attesa di essere scaricati sul pc , oppure un controllore per gestire cancelli elettrici , allarmi con rivelatori di presenza , switch finestre ect parametrizzabile da pc ect ect con modem telit per invio informazioni di allarme....

Gestire il protocollo DMX per domotica

Ho chiesto info per un tal oggetto che era pubblicizzato qua sul forum , la scheda cpu CoDeSys della overdigit .... un bel giocattolino ...supporta il codesys

ciao

Walter

p.s. se riesco a trovare il tempo e riprendere in mano proteus o qualcosa di simile e potente magari me la faccio una bella scehda completa , poi invio i gerger a md e con 4 componenti ....

Modificato: da walterword
Link al commento
Condividi su altri siti

comunque su siti americani ed inglesi dicono di fare la stessa procedura che ho fatto io..

Forse non sanno che si può fare a meno di tutta quella trafila. ;)

Su questo PC ho Win7, MPlab 8.73 e non dovuto installare niente altro per lavorare con ICD2. Peccato che non ce l'ho con me (ICD2) altrimenti ti copiavo la schermata.

A perer mio sono interessanti, anche dal punto di vista del costo, le schede della ORBIT. Poi il tizio che manda avanti il sito è molto ben preparato. E' anche interessante una scheda con un processore TI a basso consumo e le relative applicazioni. Anche per questo micro gli strumenti di sviluppo sono veramente a buon mercato, prezzi quasi simbolici da parte di TI.

In quanto al prosiego del progetto di questa discussione se conti gli interessati capisci perchè ho mollato. :(

Link al commento
Condividi su altri siti

un vero peccato, tutti a chiedere cose specifiche per avere la pappa scodellata e nessuno che abbia voglia di mettersi a imparare e fare un po' di pratica. :smile:

comunque su siti americani ed inglesi dicono di fare la stessa procedura che ho fatto io

Installare xp mode , isntallare mplab , installare il driver usb icd2 e poi lo ritrovi anche su seven

Quando si dice le stranezze... XP mode è una macchina virtuale, le due entità sono completamente indipendenti, strano che questo barbatrucco riesca a far funzionare i driver.

Peccato che non ce l'ho con me (ICD2) altrimenti ti copiavo la schermata.

se è utile posso farlo io, questa è la finestra con i dettagli del driver:

icd2driver.png

Questa è la finestra con i dettagli di ICD2 in MPLAB:

versione.png

Per caso hai collegato ICD2 al PC prima di aver installato MPLAB?

Link al commento
Condividi su altri siti

non so che dire a me i driver non li trovava e non li intallava su mplab 8.85

Livio , ormai l'esperienza dovrebbe insgnarti che l'italia non e' il posto dove creare cose itneressanti e condivise , e gli italiani non sono personaggi da poter esercitare tali attività.

Con cio che dicevo ancora anni fa quando avevamo proposto il progetto rabbit ed il progetto scada-on line che ne avrei fatto parte solo alla condizione che ci sia stata una lsita ben precisa di partecipanti con il "dovere" di presentare e dimostrare i lavori svolti.

Il fatto e' che oltre a non far nulla si presentano e si arrabbiano pure se non spieghi riga per riga cosa stai facendo .

E' un peccato si perche si poteva crescere ed imparare molte cose specialmente in periodo di recessione , periodo migliore per studiare e sviluppare , in quanto in tempi migliori c'e' sempre troppo lavoro .

comunque a me non interessa il popolino , io continuo a fare quello che mi piace a che mi interessa .

ciao

Walter

Modificato: da walterword
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...