Come programmare i PIC

  • by

Sono molti a scrivermi per chiedere informazioni su come programmare i controllori. Nonostante i riferimenti in rete non manchino, ritengo utile riassumere qui una mini guida, almeno per comprendere i concetti base e capire come approcciare la questione.

PICKit2BInnanzi tutto che cosa significa e perchè i PIC sono da programmare. L’elettronica ha drasticamente mutato il modo di realizzare i circuiti con il passaggio da logica cablata a logica microprogrammata. Per farla breve, senza addentrarci in dettagli qui non pertinenti, un circuito implementa una logica cablata quando esso viene costruito per uno scopo ben preciso. I componenti vengono scelti e collegati per attuare quanto ci serve per il particolare scopo. Si scelgono componenti di volta in volta e si calcolano i valori che vengono “saldati” sul circuito. L’idea di realizzare componenti e circuiti flessibili porta alla progettazione di schede generiche che possono svolgere molteplici operazioni.

Questo approccio ci porta alla necessità di affiancare allo schema fisico l’elenco delle operazioni che ci servono. Questo è il programma. Di fatto quindi possiamo vedere l’elettronica microprogrammata come una serie di circuiti mollto flessibili e capaci di svolgere tante operazioni e un programma che racchiude la sequenza di operazioni che devono essere esguite per una particolare operazione.

Esempio. Prendiamo un controllore e colleghiamo una delle sue uscite ad un LED. Diamo alimentazione e non succede nulla!. Se però inseriamo nel controllore una sequenza di operazioni per cui il piedino a cui è collegato il led passa alivello 1, dopo alcuni secondi passa a livello 0 e dopo alcuni secondi ricomincia da capo, abbiamo realizzato un lampeggiatore.

Se ci fermiamo al primo step, abbiamo un LED sempre acceso. Possiamo controllare quel piedino con oscillazioni a frequenza elevata, per realizzare un PWM e regolare la luminosità del led.

Facile comprendere con questo esempio che il circuito fisico non è mai stato modificato, ma con tre differenti programmi abbiamo ottenuto tre circuiti diversi.

L’attenzione si sposta quindi dal circuito al programma. Per quanto riguarda l’aspetto fisico, abbiamo realizzato qualcosa di molto generico: un processore e un led.

Se avessimo voluto intraprendere la strada del cablato, avremmo collegato un led in serie ad una resistenza per tenerlo acceso. Nel momento in cui ci piace farlo lampeggiare, dobbiamo dissaldarlo, realizzare un multivibratore astabile e collegare il LED alla sua uscita.

Chiara la differenza?

Tutto questo ha avuto ampia diffuzione con l’abbassamento dei prezzi dei controllori e ulteriormente con l’arrivo di memorie flash. Non è più infatti necessario avere programmatori di EPROM particolari e poterle ripulire solo con le lampade UV.

Per molti ma non per tutti

Purtroppo questa flessibilità si paga con una necessità maggiore di conoscenze e competenze.

Abbiamo a che fare con un microprocessore ed un programma.

Partiamo dal programma: per scrivere un programma si deve conoscere un linguaggio di programmazione (i più utilizzati per i controllori sono l’assembler e il C). Si deve conoscere la logica di programmazione.

Le capacità di programmazione migliorano con l’esperienza, quindi bisogna dedicare molto tempo.

Il cuore del progetto risiede nel programma. In caso di errori dobbiamo essere in grado di eseguire il debug con una buona capacità di troubleshooting.

Per quanto riguarda il microprocessore, è l’oggetto che stiamo programmando. Anche se non nel dettaglio più fine, almeno sapere come funziona un microprocessore, che cosa sono i registri, una ALU, il program counter sono concetti che dobbiamo avere ben presenti.

Gli strumenti necessari

Passiamo all’elenco del materiale:

Ci serve un programmatore, un circuito che serve per trasferire il firmware sul controllore. Per i PIC io utilizzo il PICkit2 di microchip, ma ne esistono moltissimi.

Ci serve un computer. Per scrivere il programma abbiamo bisogno di un PC e uno strumento di sviluppo. Sempre di Microchip, fornito gratuitamente esiste MPLAB.

Ovviamente ci serve il controllore!

Dove acquistare

In qualsiasi negozio di elettronica (ormai in via d’estinzione) anche online, oppure si può risparmiare più del 50% acuistando direttamente dal sito Microchip.


Leave a Reply