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

PIC-USB

Sommario - Novità - Tutorial - Progetti - Risorse - Non solo elettronica

PIC-USB connesso al bus USB, al PICkit e alla breadboard

In fase di sviluppo Pagina in preparazione In fase di sviluppo

Questo circuito è una semplice piattaforma didattica pensata per sperimentare l'utilizzo del bus USB con il PIC18. Il circuito è progettato per rendere semplice sia la connessione USB verso il PC, sia il collegamento di circuiti periferici utilizzando una breadboard, sia il debug e la programmazione attraverso il PICkit/ICD. Nella fotografia di apertura è mostrato collegato al PIC, ma non al PC.

Il circuito stampato include:

Il circuito è il terzo di un piccolo set di circuiti destinati all'apprendimento del PIC18. Gli altri due: PICdemo e PICdemo R2

A fondo pagina potete scaricare lo schema elettrico, il PCB ed il software di test ed esempio.

Descrizione del circuito

Il circuito è semplice: potrebbe essere realizzato senza particolari problemi direttamente su breadboard, prestando solo attenzione al disaccoppiamento delle alimentazione e, se intendete utilizzarlo, all'oscillatore quarzato, aspetti critici per questa applicazione. Per il connettore USB sono disponibili per meno di un euro comodi adattatori USB ↔ breaboard: li trovate su note piattaforme di aste on-line o nelle "fiere dell'elettronica".

PIC-USB

L'alimentazione

Il circuito può essere alimentato tramite PICkit / ICD a 3,25 V, opzione comoda durante la programmazione ed il debug, oppure tramite il connettore USB.

In questo secondo caso è utilizzato un regolatore di tensione da 3.3 V, adatto a fornire al circuito e ad eventuali componenti esterni un centinaio di milliampere, purché all'interno delle caratteristiche termiche del regolatore che non può essere meccanicamente fornito di dissipatore. Il componente utilizzato può essere sostituito da altri regolatori fissi con le seguenti caratteristiche:

Il LED D5 indica semplicemente la presenza dell'alimentazione.

Gli interruttori

I quattro DIP switch SW1 non sono collegati al microcontrollore, ma occorre utilizzare quattro cavetti femmina attraverso il connettore P6 (nella fotografia di apertura: blu, viola, grigio, bianco)

Possono essere utilizzati per fornire ingressi digitali al PIC oppure ad altri circuiti presenti sulla breadboard. Per il corretto funzionamento è necessario utilizzare esternamente quattro resistenze di pull-up oppure, opzione consigliata con il PIC, usare PORTB configurata  le resistenze di pull-up interne (weak resistor). Nota: le quattro resistenze presenti sul circuito stampato non sono adatte a fungere da pull-up e hanno il solo scopo di evitare danni nel caso di errata configurazione di PORTB come uscita.

Se un interruttore è chiuso, cioè collegato a massa, viene letto uno zero logico, altrimenti un uno logico.

I LED

Sono presenti 4 LED, ciascuno in serie ad una resistenza, non collegati direttamente al microcontrollore. Anche in questo caso per l'utilizzo sono richiesti quattro cavetti femmina oppure maschio/femmina, da collegare a P5 (nella fotografia di apertura: arancio, giallo, verde, blu).

Il potenziometro

Il potenziometro permette di fornire una tensione compresa tra massa e alimentazione, tipicamente da collegare ad un ingresso analogico del PIC. Non è collegato direttamente al PIC, ma serve utilizzare un cavetto tra P4 e RC7 (nella fotografia di apertura è quello verde singolo).

La resistenza R5 ha il solo scopo di evitare danni nel caso di errato collegamento. La sua presenza ha un impatto minimo sul funzionamento dell'ADC.

I connettori P1 e J2

I connettori P1 e J2 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 P1 permettono di portare l'alimentazione direttamente sui "binari" superiori della breadboard, in genere indicati da due linee rossa (+) e blu (-); attenzione a non utilizzare la breadboard "al contrario", invertendo i due colori. Se possibile, è meglio utilizzare pin pin più lunghi del normale, di 20.25 mm.

I nomi dei pin sono riportati sulla serigrafia; non vi sono riferimenti alla numerazione fisica dei pin del microcontrollore.

Occorre osservare che i due pin RA6 e RA7 possono essere utilizzati per il collegamento opzionale del quarzo. In questo caso è assolutamente necessario non collegare nulla ai corrispondenti pin della breadboard; potrebbe anzi essere consigliato evitare del tutto la saldatura del due pin corrispondenti del connettore J2.

Il connettore J1

Questo connettore, ad angolo e saldato al di sotto del circuito, permette di collegare il PICkit2 o il PICkit 3 al microcontrollore per effettuare la programmazione ed il debug del codice.

Il connettore P2

Tale connettore permette di collegare un circuito stampato esterno. Esso rende disponibili oltre alle alimentazioni, sei segnali di PORTC, in particolare quelli associati alle interfacci I2C, SPI e UART.

Al momento non esistono applicazioni hardware o software che ne fanno uso.

CON1

Questo connettore mini USB permette lo scambio di dati con il PC e l'alimentazione del circuito nel caso di assenza del PICkit.

Il quarzo

Il quarzo può essere utilizzato allo scopo di garantire una frequenza di clock ad alta precisione necessaria all'interfaccia USB; deve essere necessariamente di 12 MHz. Con il PIC18(L)F25K50 l'uso del quarzo è facoltativo e potrebbe essere utile non saldarlo per guadagnare due pin e risparmiare qualche centesimo di euro sul costo finale.

La scelta della capacità dei due condensatori C3 e C4 (nominalmente 22 pF) è solo indicativa e potrebbe essere non corretta con alcuni modelli di quarzo, soprattutto nelle condizioni di temperatura o alimentazione estreme. Occorre inoltre tener presente che la presenza di due pin collegati alla breadboard aggiunge una capacità di qualche picofarad, difficilmente controllabile. Al fine di ridurre i problemi nell'uso del quarzo è opportuno:

Il software

A fondo pagina è riportato un codice dimostrativo che permette una sorta di auto-test della scheda utilizzando USB in modalità CDC (communications device class, in pratica è una emulazione delle antiche porte seriali). Sono inclusi anche alcuni file copiati dalle Microchip Libraries for Applications (MLA), nella versione più recente disponibile al momento della stesura di questa pagina (ottobre 2015). A meno di grossi cambiamenti, è consigliabile sostituirle con altre più recenti (basta copiare i file nella cartella, sovrascrivendo quelli esistenti)

Per l'utilizzo è necessario:

I comandi accettati:

Di seguito uno screen-shot di esempio (CuteCom in ambiente Gnome, Debian Jessie)

Esempio di comunicazione USB PC-PIC

Nella parte bassa sono mostrati i comandi impartiti (accensione del primo LED; accensione dei primi due LED e spegnimento dei due successivi, visualizzazione della versione, dello stato degli switch e della tensione misurata dall'ADC); nella parte superiore l'output trasmesso dal PIC.

I componenti

U1 PIC18F25K50 (DIP 28 pin) In alternativa e previa modifica del software: PIC18LF25K50 oppure PIC18F27J53
U2 LP2950/3.3 (TO-92) O altro regolatore simile (vedi testo)
C1, C2 100 nF *
C3,C4 22 pF Necessari solo in presenza del quarzo
C5, C7 10 µF elettrolitico *
R1, R2, R3, R4, R5, R6, R7,R8, R9 1 KΩ*
R11 27 KΩ* Microchip consiglia tra 10K e 40K
P1 2x1 Pin Header, passo 2,54 mm Lunghezza consigliata: 20 mm
P2 2x4 Pine Header femmina, passo 2,54 mm Opzionale
P4 Pin Header singolo
P5, P6 4x1 Pin Header, passo 2,54 mm
J2 6x1 Pin Header ad angolo, passo 2,54 mm  Vedi testo
J2 19x1 Pin Header, passo 2,54 mm Lunghezza consigliata: 20 mm
Y1 Quarzo 12 MHz  (hc-49s) Con il PIC18xF25K50 è opzionale (ved testo)
SW1 DIP switch x4
D1, D2, D3, D4 LED 3 mm
D5 LED 5 mm
RV1 Trimmer multigiro, 10 KΩ *
CON1 Connettore mini USB

I valori dei componenti passivi indicati con un * sono non critici.

Il circuito stampato

Il circuito stampato misura circa 50 mm x 50 mm,  è a doppia faccia con fori metallizzati. Di seguito il lato componenti (top) e quello saldature (bottom)

Il PCB è stato realizzato con KiCad. Nel file compresso che trovate a fondo pagina, è contenuto tutto quanto necessario alla sua realizzazione e all'eventuale modifica

File da scaricare

Per realizzare questo circuito è necessario disporre dei seguenti file o documenti:

Osservazioni

  1. Al momento, non sono stati effettuati test in ambiente MS Windows, ma il funzionamento dovrebbe essere simile a condizione di installare i driver presenti sul sito Microchip.
  2. Per individuare il nome della porta seriale creata è possibile utilizzare da terminale il comando:
    vv@vv-15rse:~$ ls -l /dev/ttyACM*
    crw-rw---- 1 root dialout 166, 0 ott 18 08:25
    /dev/ttyACM0
    Inoltre è necessario verificare che l'utente appartenga al gruppo dialout, altrimenti occorre aggiungerlo:
    vv@vv-15rse:~$ groups
    vv
    dialout cdrom floppy audio dip video plugdev netdev lpadmin scanner bluetooth i2c wireshark vboxusers libvirt pico

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