Site hosted by Angelfire.com: Build your free website today!

~ Progetti ~
- powered by JavaScript -

Home page Datasheets from manufacturers This page Links to some interesting sites E-mail the author


Microchip MPLAB ICD...

L'MPLAB-ICD (In-Circuit Debugger) è uno strumento di sviluppo potente e a basso costo, che può essere usato per sviluppare codice per i microcontrollers Microchip della famiglia 16F87x e anche 16Cxx.
Questo strumento è realizzato per i microcontrollers della famiglia PIC16F87x, dei quali sfrutta la possibilità di programmazione In-Circuit (comunemente chiamata ICSP, In-Circuit Serial Programming) e di In-Circuit Debugging.

Quello che vedete è il mio MPLAB-ICD, completamente autocostruito; sul retro è presente un connettore tipo RJ45 per il collegamento con l'Header mentre di fronte si ha un led che mostra lo stato del dispositivo, un connettore per il collegamento al PC attraverso la porta seriale e un connettore per la programmazione In-Circuit dei PIC16F87x.

Le principali caratteristiche dell'MPLAB-ICD sono le seguenti :
  · Esecuzione in tempo reale del codice
· Single Step
· Un breakpoint hardware
· Possibilità di osservare le variabili del programma
· Funzionamento da 3 a 5.5V
· Funzionamento da 32kHz a 20MHz
· Comunicazione col PC attraverso la porta seriale, a 19200 o 57600 baud
· Compatibile con Windows 3.X, Windows 95/98/Me, Windows NT, e Windows 2000


Viene gestito attraverso l'MPLAB IDE dalle finestre visibili qui sotto e, oltre a funzionare come emulatore in real-time (fino a 20MHz), offre la possibilità di programmare in-circuit i PIC16F87x attraverso dei collegamenti esterni.

Questa è la finestra principale.

A lato è visibile la finestra delle opzioni. Viene visualizzata
premendo il pulsante "Options..." nella finestra principale.

Dalla finestra delle opzioni è anche possibile far eseguire un test all'hardware per sapere se tutto sta funzionando correttamente. In questo caso, dopo pochi secondi verrà visualizzata la seguente finestra :


Bello, ma a che serve ?

Credo che un esempio pratico di utilizzo possa rendere meglio l'idea delle potenzialità di questo oggetto.

La User's Guide dell'ICD (che tra l'altro contiene anche gli schemi completi del dispositivo, ma occhio all'errore...) fornita da Microchip è molto chiara e dettagliata, cmq riporto anche qui un esempio di utilizzo pratico, molto conciso, nella speranza che possa tornare utile a qualcuno.

Se l'argomento è di interesse, in seguito amplierò la descrizione dei vari passi e molto probabilmente scriverò del codice di esempio.

Quello che segue è l'hardware minimo necessario al funzionamento di un PIC :

[under construction - lo troverete entro qualche giorno]
[schema circuito]

A questo punto si può passare al software :

A questo punto è possibile eseguire le istruzioni passo a passo premendo il tasto F7 e vederne l'effetto sui registri, oppure F9 per fare eseguire il programma al PIC in tempo reale.
Inoltre, se si apportano modifiche al programma, è sufficiente ricompilare il file, fare di nuovo click sul tasto Program e ripremere F9 per vederne gli effetti sul circuito. Comodo, no ?

 

Prima di cominciare...

In questo esempio non ho considerato le limitazioni dell'MPLAB-ICD.

E' infatti necessario impostare la Configuration Word secondo quanto segue :

Inoltre:
- non è possibile utilizzare i pin RB3, RB6 ed RB7;
- 6 o 7 bytes di RAM sono riservate all'ICD e quindi non utilizzabili;
- l'indirizzo 0 della Program Memory deve contenere l'istruzione NOP;
- gli ultimi 256 o 288 bytes della Program Memory sono riservati all'ICD e quindi non utilizzabili;
- un livello di stack non è disponibile.

La descrizione completa delle funzioni dell'MPLAB-ICD è presente nella sua User's Guide, che si trova su www.microchip.com - Development Tools - MPLAB-ICD.

 

Build your own ICD !

Come già anticipato, nella User's Guide dell'MPLAB-ICD è presente anche il suo schema (ma fate attenzione all'errore !).
E il firmware dell PIC16F876 ? Guardate bene nella directory di installazione dell'MPLAB-IDE...

Ecco cosa si può fare unendo tutto il materiale e mettendo mano al saldatore :

Quella di sopra è una immagine della parte frontale del mio ICD. L'ho dotato di due connettori DB9, uno per il collegamento al PC e uno per la programmazione In-Circuit dei PIC16F87x.

Questo è l'MPLAB-ICD Header con a bordo il PIC16F877, a differenza dell'Header originale qui trova spazio anche un piccolo condensatore elettrolitico da 10µF (visibile in alto a destra).

Sul lato saldature dell'Header è presente il connettore DIL a 40 poli con pin dorati, che va saldato dal lato componenti. Per questo motivo ho dovuto far fare dei c.s. a doppia faccia con fori metallizzati (e solder LC + LS).


This page is (always) under construction.