Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata
21
voti

Convertitore USB-seriale

La linea seriale è, per un microcontrollore, un sistema semplice e potente per per interfacciarsi con l' esterno, per il trace dei programmi e per il debugging del codice. Purtroppo i PC moderni non hanno più le due classiche porte RS-232 e quindi è necessario utilizzare un convertitore da USB a seriale. In commercio si trovano molti convertitori che sembrano dei semplici cavetti a vedersi, e che presentano da un lato la spina USB e dall'altro la spina con il classico connettore D-type per la RS-232. Costano poco ma è necessario utilizzare una circuiteria di adattamento dei livelli del segnale per potersi collegare al micro. Una soluzione più semplice è quella di utilizzare un integrato che faccia da convertitore. Ne esistono parecchi in commercio, tuttavia in questo brevissimo articolo vorrei descriverne uno in particolare che potrebbe essere una soluzione veloce ed a basso costo fornendo lo schema elettrico di come realizzare un collegamento fra la seriale di un micro ed il PC.

Indice

Un PIC come convertitore

Il PIC18F14K50 è un bellissimo micro (è la mia mascotte) e la microchip offre un esempio già pronto per la realizzazione di un convertitore da USB a seriale. Io lo uso di frequente perché mi basta programmare il micro, metterci quattro componenti in croce per avere il collegamento seriale.
Tra l' altro accetta anche i comandi di impostazione della velocità di comunicazione che può arrivare fino a 115200 baud.
L' unico neo è dato dal fatto che non gestisce i segnali RTS e CTS ma implementare un protocollo Xon/Xoff (sul micro su cui si lavora) non è poi quella grande complicazione.

Il circuito

Il circuito è molto semplice e può essere realizzato su millefori.

In questo circuito non mi sono inventato niente, ho solo applicato quello che si trova nella documentazione del sistema di sviluppo Low Pin Count USB Develpement System.
I due LED si possono omettere, servono per dare un' indicazione sullo stato del collegamento USB. Se lampeggiano velocemente ed insieme significa che la periferica non è vista dal PFC, un solo LED accesso significa che è in fase di enumerazione mentre nel funzionamento normale lampeggiano tutti e due alternativamente con un frequenza di circa 2 Hz.
Il microcontrollore principale si collega al convertirore tramite i due collegamenti contrassegnati con DOUT (Uscita dei dati dal convertitore) e DIN (ingresso dei dati al convertitore) che dovranno esssere collegati rispettivamente ai pin RX e TX del micro.
Questo è un circuito che utilizzo molto quando realizzo dei prototipi filati perché, oltre ad avere un collegamento seriale semplice da realizzare mi permette di ottenere la tensione di alimentazione a 3,3V per i micro che utilizzo senza bisogno di utilizzare un alimentatore esterno. Il circuito seguente è quelllo che di solito uso.

Anche se i micro che utilizzo hanno di solito gli ingressi per la seriale "5V tolerant" preferisco metterci la R5 e lo zener. Per i dati in ingresso non ci sono problemi perché un 3,3V viene visto dal PIC come stato logico 1.
Questo è un esempio di come ho utilizzato il convertitore. La parte cerchiata in rosso è il circuito che ho mostrato.

USB-seriale.jpg

USB-seriale.jpg

Il bestione a destra dell' immagine è un ARM Cortex-M3 che ha a bordo 5 seriali, infatti ho utilizzato un cavetto doppio per selezionare la seriale sulla quale desidero lavorare.

Dove trovare il progetto

Il progetto lo si trova nella Microchip Library for Apllications. E' sufficiente scaricarla, installlarla e poi, nella cartella USB, troviamo la sottocartella "Device - CDC - Serial Emulator" che contiene il progetto.
I vari progetti sono nella cartella "Firmware". Io ho usato il progetto denominato "USB Device - CDC - Serial Emulator - C18 - Low Pin Count USB Development Kit.mcp" che è appunto quello specifico per il PIC18F14K50. E sufficiente compilarlo (chiaramente bisogna disporre del compilatore C18, anche quello Lite va bene), programmare il PIC ed il gioco è fatto!
Il driver si trova nella cartella "inf" ed è un driver che fa riferimento a quello standard usbser.sys di windows.
Il convertitore funziona anche sul MAC, ho fatto una prova veloce ma funziona bene.
Per chi lo volesse già programmato lo può trovare a questo indirizzo.

Conclusioni

Se è vero che esistono convertitori molto validi questo presenta alcuni vantaggi:

  • E' un PIC e lo si può riutilizzare quando il convertitore non serve più.
  • Sfogliando la libreria della Microchip si possono trovare tantissimi esempi di applicazioni di vario tipo.
  • Esplorando il progetto si può estrapolare la parte di comunicazione per integrarla in un progetto più corposo, in effetti il codice generato è corto e quindi c' è spazio per inserirci altre funzioni e compiti all' interno del programma.

Buona sperimentazione a tutti!

10

Commenti e note

Inserisci un commento

di ,

Molto utile, Grazie.

Rispondi

di ,

Grande !!!

Rispondi

di ,

Articolo davvero interessante! Risponde a quello che stavo ormai cercando da tempo, un sistema semplice per disporre di interfaccia usb, ma sopratutto adattandosi anche a basetta millefori. Complimenti!

Rispondi

di ,

Molto interessante, soprattutto per la possibilità di adattare il firmware ad altre funzioni. Grazie della segnalazione, TardoFreak!

Rispondi

di ,

Grazie, molto utile!

Rispondi

di ,

Molto molto interessante.. Gracias Tardo! ;)

Rispondi

di ,

Risolto con poco un problema piuttosto complicato: quello di impiegare USB. Bravo TardoFreak.

Rispondi

di ,

La cosa più interessante è studiare come hanno applicato la classe CDC. Purtroppo il framework è complesso perché si adatta a tutte le famiglie. Secondo me vale la pena di impiegare del tempo per capire come si implementa l' USB nei PIC. Una volta capito il trucco si possono sviluppare applicazioni interessantissime; la SCU, per esempio, è figlia di queste cose.

Rispondi

di ,

Un esempio applicativo molto utile. Molto interessante. Grazie.

Rispondi

di ,

Grazie, TardoFreak!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.