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

microcontrollore PIC18F

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).

La figura seguente mostra il circuito costruito su una breadboard. Da notare che, per programmare, si utilizzeranno i 5V forniti dal programmatore, e visto che questo è un dispositivo USB bus powered, essi saranno collegati anche al connettore USB. Questa significa che, se sia il programmatore che il cavo USB sono connessi nello stesso momento, c’è potenziale per il programmatore per fornire 5V all’host USB; questo non è raccomandato dagli standard USB.

Se non si possiede una spina USB per il la propria breadboard, si può o crearne una semplicemente usando un piccolo pezzo di stripboard, o si può tagliare un’estremità di un cavo USB , tirare fuori i fili e inserirli direttamente nella breadbord.

È raccomandabile, comunque, dedicare del tempo nella costruzione di un adattatore, che riduce il rischio di fili che si trovano vaganti nel momento in cui si collega e scollega il cavo USB al PC. Se non si è sicuri del cablaggio di un cavo USB, la figura successiva mostra i contatti per una presa USB (tipo B femmina) e il codice di colore standard del cavo.

Dopo aver costruito il circuito, assicurarsi di controllare le connessioni negative e positive, prima di collegare il dispositivo al PC, onde evitare di danneggiare il computer.

Firmware

Per collegare il proprio dispositivo USB al computer, c’è prima bisogno di scrivere un firmware per il microcontrollore PIC18F4550. La Microchip (casa produttrice del microcontrollore PIC) fornisce uno stack USB per questo scopo, scaricabile gratuitamente. Il firmware deve eseguire due importanti task che sono descritti di seguito. Enumerazione del dispositivo. La prima è l’enumerazione del dispositivo – ovvero la comunicazione iniziale con l’USB host (il PC) quando il dispositivo si identifica con l’host e gli dice in che modo vuole comunicare. La comunicazione USB avviene utilizzando degli endpoint che mandano informazioni sia all’host che al dispositivo. Il dispositivo, oltre che settare i canali di comunicazione, deve anche passare il suo nome e altri due importanti valori: il VID e il PID. Il VID è il l’id del venditore, che identifica il produttore del dispositivo. Per avere il proprio VID bisogna pagare una bella cifra, così in questo esempio, per risparmiare, verrà utilizzato il VID di Microchip; nel caso però si fosse interessati a produrre e vendere dei propri dispositivi, è necessario registrarne uno proprio. Il PID è l’ID del prodotto, che insieme al VID costituisce un identificatore unico per il proprio dispositivo, infatti Windows immagazzina una combinazione del VID e del PID per il dispositivo.

STAMPA     Tags:,

Leave a Reply