Salta la barra di navigazione [1] - Vai alla barra di navigazione [3] - Scrivimi una mail [4]

PIC18 e assembly: configurare hardware e software

Assembly PIC18 - PIC18 in C - Sommario - Novità - Tutorial - Progetti - Risorse - Non solo elettronica

Un PICkit collegato ad un PIC

In fase di sviluppo Stesura preliminare In fase di sviluppo

Il PIC18 non ha una tastiera né un monitor; per programmare il microcontrollore ed effettuare il debug del codice è quindi necessario utilizzare un normale PC, il software MPLAB X ed un In-Circuit Debugger (ICD). Nella fotografia è visibile un ICD PICkit 3 collegato, a sinistra, al PC con un cavetto USB e, a destra, al circuito stampato su cui è presente un PIC18F26K20 (PICdemo).

Questa pagina presenta alcuni concetti da conoscere per poter iniziare a scrivere il primo programma.

L'installazione del software è banale. Unica avvertenza: serve una macchina di una certa potenza, dato che MPLAB X non è esattamente un software leggero.

Il collegamento hardware

L'In-Circuit Debugger (ICD) è il dispositivo che permette di programmare il PIC18.

Il collegamento tra PC e ICD è effettuato via USB. L'installazione di MPLAB X include tutti i driver necessari ed anche gli eventuali aggiornamenti del firmware del ICD.

Il collegamento tra ICD e microcontrollore è fatto tramite una specifica interfaccia. Sono necessari, in genere, 5 fili, come mostrato nello schema seguente:

I PIC18 con hardware di debug interno

Alcuni PIC18 (tra cui il PIC18F26K20) includono tutto l'hardware necessario per effettuare il debug; è quindi sufficiente collegare direttamente il circuito integrato al ICD. (nota 1)

Qui sotto, uno schema completo esemplificativo, utilizzato per realizzare il circuito stampato presente nella fotografia di apertura della pagina. Questo circuito è adatto per la programmazione, per il debug e per l'uso senza connessione al PC. Questo circuito è facilmente realizzabile su breadboard.

PICdemo: lo schema elettrico

I PIC18 senza hardware di debug interno

Alcuni PIC18, soprattutto quelli con un minor numero di pin, non hanno l'hardware dedicato al debug: in questo casi occorre utilizzare appositi adattatori, indicati con il termine debug header. In pratica si tratta di versioni modificate del microcontrollore, con alcuni piedini in più. Il circuito si inserisce al posto del microcontrollore reale e si comporta allo stesso modo, permettendo il collegamento al PC.

La creazione di un nuovo progetto

Ciascun programma deve essere incluso in un progetto. La procedura per creare un progetto è guidata:

  1. Inizia ovviamente con Create New Project. Le scelte di default (Microchip embedded e Standalone Project) sono quelle corrette, almeno all'inizio.
  2. Occorre quindi scegliere il PIC18 (è facile sbagliare: molte sigle si assomigliano) e, se richiesto, la debug header
  3. Quindi viene richiesto il modello di In-Circuit Debugger da utilizzare. Se è già fisicamente collegato, viene identificato automaticamente
  4. L'assemblatore da utilizzare (in seguito MPASM). Spesso sono presenti più versioni, potrebbe essere conveniente scegliere quella più aggiornata
  5. Il nome del progetto

Di seguito le finestre principali di MPLAB X:

Un progetto

Configuration Bits

I Configuration Bits definiscono alcune opzioni di funzionamento dell'hardware del microcontrollore.

Si tratta di aspetti piuttosto tecnici in quanto la loro impostazione richiede conoscenze di dettaglio sul funzionamento del PIC18. Tre le possibili strade da seguire, in funzione delle competenze possedute:

I Configuration Bits devono essere impostati come prima cosa e non sono in genere modificati durante l'esecuzione del codice. La loro impostazione deve essere descritta all'interno del codice sorgente attraverso la direttiva CONFIG dell'assemblatore (nota 2) da inserire possibilmente in uno specifico file.

Tra i Configuration Bits che potrebbe essere opportuno conoscere e/o modificare si possono evidenziare i seguenti (nota 3):

CONFIG FOSC = INTIO67 ; Oscillator Selection bits (Internal oscillator block, port function on RA6 and RA7)
Questo bit imposta la sorgente di clock. Nell'esempio mostrato verrà utilizzato il generatore di clock interno al PIC18, lasciando inalterate le funzioni assegnate ai pin RA6 e RA7. Un'alternativa è l'uso di quarzo esterno, ovviamente se presente
CONFIG WDTEN = OFF ; Watchdog Timer Enable bit (WDT is controlled by SWDTEN bit of the WDTCON register)
Permette di disattivare un "cane da guardia" che controlla la regolare esecuzione del software. Fino a quando non se ne comprende il significato, meglio disattivarlo
CONFIG MCLRE = ON ; MCLR Pin Enable bit (MCLR pin enabled; RE3 input pin disabled)
Specifica che un piedino dovrà essere utilizzato come reset. Questa configurazione è necessaria in fase di debug, opzionale durante il funzionamento normale
CONFIG LVP = OFF ; Single-Supply ICSP Enable bit (Single-Supply ICSP disabled)
Permette di programmare il PIC18 senza usare un piedino dedicato solo a questo scopo
 CONFIG PBADEN = OFF ; PORTB A/D Enable bit (PORTB<4:0> pins are configured as digital I/O on Reset)
Configura all'accensione alcuni pin come ingressi digitali anziché come ingressi analogici. Questa scelta può essere cambiata durante l'esecuzione del codice

Codice

Note

  1. In genere è consigliabile riservare i pin di programmazione/debug solo a questo uso. Se serve, utilizzando gli accorgimenti descritti nei fogli tecnici, è però possibile anche il loro uso generico
  2. Non corrispondono quindi a nessuna istruzione macchina e quindi non vengono "eseguiti" dal processo
  3. Si tratta di esempi relativi al PIC18f26k20, eventualmente da adattare al PIC18 in uso

Ultima modifica di questa pagina: 30 marzo 2016 - Una pagina simile: Configurare hardware e software (in C)


Assembly PIC18

Licenza Creative Commons Attribuzione 4.0 Internazionale


EN - Pagina principale - Sommario - Accessibilità - Note legali e privacy policy - Posta elettronica

XHTML 1.0 Strict - CSS 3