Come creare dispositivi USB usando un microcontrollore PIC18F. 1/4

In questo articolo verrà mostrato come realizzare un dispositivo generico USB HID (Human Interface Device, dispositivi che interagiscono con gli umani e da loro ricevono input, per poi restituirglieli), utilizzando un microcontrollore PIC18F e infine creando l’interfaccia Windows per il dispositivo che permetterà di controllare un LED dal PC. Con l’avvento di Windows 7 c’è bisogno di una certificazione di validazione costosa per creare driver USB personalizzati (senza di essa molti utenti non possono neppure installare il software creato).

L’utilizzo dei driver integrati per i dispositivi HID, invece, fornisce un semplice metodo per creare dispositivi compatibili con Windows e Linux e inoltre rende l’elaborazione sia del software che del firmware molto più semplice. Visto che lo standard HID non richiede driver personalizzati, non c’è bisogno di procurarsi un certificato per il proprio driver. In questo articolo ci si baserà su un dispositivo USB piuttosto semplice, che permetterà di controllare un LED da Windows e anche di vedere lo stato di un interruttore a bottone sul dispositivo. Cercando di mantenere il costo e la difficoltà al livello più basso possibile, ci concentreremo sulla costruzione dell’hardware, utilizzando pochi componenti, il firmware PIC18F sarà basato sul (disponibile gratuitamente) compilatore C MPLAB e Hitech, il software per Windows sarà creato tramite Microsoft Visual C++ 2008 Express (anche quest’ultimo scaricabile gratuitamente).

Nonostante questo articolo sia basato sul microcontrollore PIC18F4550, è comunque possibile sostituirlo con il più piccolo ed economico PIC18F2550, che ha il codice compatibile con il più grande 4550. Se si è interessati a seguire con questo articolo, è consigliato scaricare il software da questo link (in fondo alla pagina). Inoltre, assicurarsi di avere installati MPLAB e Hitech C per il PIC18F e Microsoft Visual Studio 2008 Express. N.B. : gli screenshot sono relativi a Windows 7.

Hardware

Per prima cosa c’è bisogno di costruire un dispositivo USB con il quale comunicare. Nel seguente diagramma di un circuito si può vedere la configurazione minima per l’utilizzo di un dispositivo USB. Il dispositivo include un header ICSP (In Circuit Serial Programming) e una connessione USB di tipo B. In aggiunta, c’è un LED e un interruttore a bottone che rappresenta i dispositivi di input e di output.

Il circuito è molto lineare. PIC18F4550 sarà “bus powered”, e questo significa che il dispositivo acquisirà energia dall’host USB (il PC nel caso specifico), quindi non c’è bisogno di nessuna regolazione di potenza. Il condensatore 470nF (C3) è richiesto per far si che il microcontrollore possa far funzionare il sistema di circuiti USB interno. L’header ICSP permette di connettere un programmatore PIC, usando o l’economico programmer PICkit2 o altri programmatori ICSP compatibili. Inoltre è richiesto un clock a 20Mhz per le applicazioni USB. Questo da la possibilità al PIC di usare PLL, che porta la velocità di clock ai 48Mhz necessari per una comunicazione USB.

Scarica subito una copia gratis
Tags:

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend