Questo circuito è una semplice piattaforma didattica pensata per sperimentare soluzioni hardware e software basate sul PIC18.
Esso include:
La scelta di questo microcontrollore ha soprattutto due ragioni:
Il motivo che mi ha portato a realizzare questo circuito è in realtà più ambizioso: è stato infatti un banco di prova per realizzare industrialmente un circuito stampato utilizzando come software di progettazione KiCad.
Sono disponibili anche altri due circuiti stampati con simili caratteristiche:
A fondo pagina potete scaricare lo schema elettrico, il PCB ed il software di test ed esempio.
Il circuito è molto semplice: potrebbe essere realizzato senza alcun problema direttamente su breadboard!
Il circuito è pensato primariamente per essere alimentato dal PC tramite PICkit o ICD. Nulla vieta evidentemente l'uso di una sorgente esterna, rigorosamente compresa tra 1.8 V e 3.6 V, collegata direttamente al PCB oppure tramite le linee predisposte sulla breadboard. Il diodo zener da 4.3 V (opzionale) è l'ultima difesa, peraltro non particolarmente efficace, contro errori di alimentazione...
Il LED D2 indica semplicemente la presenza dell'alimentazione.
I quattro DIP switch SW1 sono collegati direttamente ai quattro bit meno significativi di PORTB, secondo la numerazione riportata sulla serigrafia. Per il corretto funzionamento è necessario configurare PORTB per utilizzare le resistenze di pull-up interne al PIC (weak resistor) oppure collegare 4 resistenze tra i pin e l'alimentazione. Le quattro resistenze presenti hanno il solo scopo di evitare danni nel caso di errata configurazione di PORTB come uscita.
Se un interruttore è aperto viene letto come uno logico. In genere questo corrisponde alla posizione più lontana dal bordo della scheda.
Se si vuole usare PORTB per usi diversi (ingresso analogico, uscita...), è sufficiente lasciare aperti gli interruttori per non avere interferenze.
Lo switch SW2 (opzionale) è collegato direttamente al pin di reset del microcontrollore.
La "barra LED" contiene 10 LED, ciascuno in serie ad una resistenza:
Tutti i LED possono essere fisicamente disattivati togliendo il "jumper" P5. Questa opzione è utile quando si vuole configurare PORTC come ingresso ad alta impedenza.
I due potenziometri sono collegati ai due ingressi analogici AN0 e AN1. Permettono di fornire una tensione compresa tra massa e alimentazione (segnale "raziometrico").
Le due resistenze presenti hanno il solo scopo di evitare danni nel caso di errata configurazione di PORTA0 e PORTA1 come uscite. La loro presenza ha un impatto minimo sul funzionamento dell'ADC.
Possono essere fisicamente disattivati togliendo i "jumper" P7 e P8. Questa opzione è utile quando si vuole configurare i pin 0 e 1 di PORTA come ingresso analogico o digitale ad alta impedenza.
I connettori P2 e P3 rendono disponibili quasi tutti i pin del PIC18; sono stati pensati per il collegamento diretto alla breadboard e quindi vanno montati dal lato saldature, cioè "sotto". In particolare i due pin di alimentazione permettono di portare l'alimentazione direttamente sui "binari" superiori della breadboard, in genere indicati da due linee rossa (+) e blu (-). La numerazione è riportata sulla serigrafia; non vi sono riferimenti alla numerazione fisica dei pin del microcontrollore.
In alternativa, se per qualche ragione non volete utilizzare la breadboard, potete saldare il connettore, diritto oppure anche ad angolo, sul lato componenti, senza farlo sporgere al di sotto, ed appoggiare il PCB su una superficie piana
Tre pin sono stati lasciati intenzionalmente non collegati, conformemente alle indicazioni di Microchip: sono infatti utilizzati in modo esclusivo per il debug e la programmazione del microcontrollore. Sono comunque accessibili attraverso il connettore P4, opzione che peraltro sconsiglio.
Questo connettore permette di collegare il PICkit2, il PICkit 3 oppure l'ICD3 al microcontrollore per effettuare la programmazione ed il debug del codice. Nei primi due casi sono necessari sei pin, nell'ultimo otto, sebbene i due aggiuntivi non sono utilizzati. Nel dubbio, meglio saldare solo sei pin, aggiungendo un minimo di attenzione nell'allineamento del connettore dell'ICD3.
Se intendete usare il circuito stampato agganciato ad una breadboard, come mostrato nell'immagine di apertura, vi consiglio di usare un connettore ad angolo saldato al di sotto del PCB, con lunghezza adeguata per garantire un appoggio meccanico comodo per il debugger. Di seguito un'immagine esemplificativa della configurazione.
In alternativa, se non volete utilizzare la breadboard, potete saldare il connettore, diritto oppure ad angolo, sul lato componenti.
A fondo pagina è riportato un breve codice che permette una sorta di auto-test della scheda:
Non è possibile verificare direttamente il funzionamento dei LED X e Y, in quanto non collegati; è comunque possibile usare un cavetto femmina e collegare il pin X oppure Y direttamente a VDD oppure ad uno dei pin di PORTC.
BAR1 | Barra LED, 10 segmenti | |
C1 | 100 nF | |
C2 | 10 uF, elettrolitico | |
D1 | Diodo zener, 4,3 V 1/2 W | Opzionale |
D2 | LED 5 mm | |
P1 | Pin header 2x1, passo 2,54 mm | |
P5, P7, P8 | Pin header 2x1, passo 2,54 mm | Normalmente è presente un jumper |
P2 | Pin header 22x1, passo 2,54 mm | Da montare sul "lato saldature" |
P3 | Pin header 2x1, passo 2,54 mm | Da montare sul "lato saldature" |
P4 | Pin header 3x1, passo 2,54 mm | Opzionale (e sconsigliato) |
P6 | Pin_Header 6x1 ad angolo (oppure 8x1) | Leggere il testo |
R1, R2, R3, R5, R6, R7 | 1 KΩ * | |
R4 | 27 KΩ * | Microchip consiglia tra 10K e 40K |
R8... R18 | 470 Ω * | Regolano la luminosità dei LED. 220R... 1K |
RV1, RV2 | trimmer lineare, 10 KΩ * | |
SW1 | Dip switch quadruplo | |
SW2 | Pulsante | |
U2 | PIC18F2xK20 DIP |
I valori dei componenti passivi indicati con un * sono non critici.
Il circuito è stato progettato come doppia faccia con fori metallizzati; si tratta quindi di un oggetto non realizzabile facilmente in casa dall'hobbista. L'alternativa praticabile è la realizzazione industriale, presso aziende specializzate nella costruzione di prototipi. Come già scritto, questo "esperimento" è stato un motivo forte che ha portato alla realizzazione del circuito.
In base a ricerche fatte su internet ho individuato come soluzione a basso costo ITEAD Studio. Si tratta (ovviamente) di un'azienda cinese; il costo è stato di circa 20 euro per 10 circuiti stampati, incluse tutte le spese. Il tempo di consegna è ovviamente lungo (tre settimane), soprattutto a causa del trasporto e della sosta in dogana; la qualità è più che sufficiente. Un'alternativa potrebbe essere seeed
Purtroppo aziende italiane o europee hanno costi nettamente più alti...
Per realizzare questo circuito è necessario disporre dei seguenti file o documenti:
PICdemo - Versione 1.1 - Maggio 2015
Copyright © 2015, Vincenzo Villa - https://www.vincenzov.net
PICdemo di Vincenzo Villa è distribuito con Licenza Creative Commons Attribuzione 4.0 Internazionale