Aggiungere una interfaccia USB ad un progetto a microcontroller può
richiedere solo uno sforzo minimo se si utilizza uno dei tanti chip di interfaccia
USB-UART TTL piuttosto che un microcontroller con USB integrata.
Un limite nell'uso intensivo è sempre stato il costo: chip di buona qualità
come quelli di FTDI hanno un costo abbastanza sensibile. Però, l'entrata nel
mercato dei produttori orientali ha cambiato la situazione: infatti esistono chip di interfaccia USB-TTL a costi tali che il loro
inserimento in un progetto diventa ben poco gravoso.
|
Parliamo qui dei chip di Prolific,
un competitor taiwanese di FTDI.
Questo costruttore è abbastanza noto per i chip PL2303TA/HX, di cui sono
diffusi moduli e cavi, ma produce anche altri modelli, in particolare il
PL2303SA, che è abbastanza sorprendente: si tratta di un chip a soli 8 pin in package SO8 per SMD
e che funziona senza
la necessità di un cristallo esterno, il che riduce sensibilmente sia il costo
che il numero dei pin dell'interfaccia. |
Il PL2303SA gestisce solamente i segnali RXD e TXD, ma questo è del tutto
sufficiente per gran parte delle applicazioni, dove i segnali di controllo
hardware della comunicazione (RTS, ecc) non sono necessari.
Peraltro non dispone di I/O, dato il basso numero di pin, ma anche questo in
tante applicazioni non è richiesto.
Sorprende anche il costo, che, per pochi pezzi, è al di sotto degli 80
centesimi di dollaro (FOB Cina).
Il data sheet, insolitamente chiaro, riporta i parametri essenziali e lo
schema funzionale.
|
Lo schema funzionale descrive quanto offerto dal chip.
L'oscillatore a 96MHz è interno e non sono richiesti altri componenti.
Il chip consente una comunicazione full duplex :
- da 75 a 115kbps
- con 1, 1.5, 2 bit di stop,
- con e senza parità e
- con dati a 5, 6, 7 o 8 bit.
Se il pin 3 è a 3.3V, l'uscita è pure a 3.3V. Se il pin3 è a 2.5V,
anche l'uscita sarà a questa tensione (il valore può variare tra 1.8 e
3.3V). 3.3V sono ottenuti da un regolatore interno, mentre il chip
prevede una alimentazione a 5V.
L'ingresso è a 3.3V con tolleranza a 5V.
Sono disponibili buffer separati per i dati in ingresso e in uscita,
mentre un motore interno UART gestisce i flussi da e verso la linea seriale
TTL. |
Si può derivare uno schema tipico applicativo del genere:
|
R1 1k5
R2,3 10-27ohm
C1 0.1uF
C2 10u/16V
I condensatori sono ceramici multistrato. Le resistenze
possono essere di piccole dimensioni (ad es. formato 0805).
Il costruttore consiglia di inserire una perlina di ferrite L1 se si
collega il GND del circuito con lo schermo del cavo USB. |
Come si vede, uno schema semplice con il chip che richiede un minimo di componenti esterni a basso costo.
Si potrebbe pensare di acquistare questo chip e realizzarsi una basetta di
piccole dimensioni, ma, dove è possibile impiegarlo, esiste un modulo già
pronto, anche qui con un costo tale da rendere anti economico il farselo da se.
E questo vale anche per il campo professionale dove conviene integrare il
piccolo modulo cinese nel proprio progetto: per pochi pezzi costa meno di una
realizzazione ad hoc.
|
ll piccolo circuito stampato misura 15.8 x 12.7mm.
Lo schema elettrico è esattamente quello riportato sopra.
E' stato aggiunto un LED rosso collegato al +5V dell'USB che segnala la
presenza della connessione.
Un presa micro consente il collegamento con il bus USB.
|
|
Sul lato opposto ai componenti è presente una serigrafia che indica
le funzioni dei pin verso il microcontroller: a partire dal pin
"quadrato" sono, nell'ordine:
|
Il pin +5V riporta la tensione presente sul collegamento USB, dal quale si può
prelevare alimentazione per il circuito collegato al modulo.
Avvertenza: se il circuito del microcontroller dispone di
alimentazione propria, il pin +5V non deve essere collegato.
E' anche possibile utilizzare esternamente la tensione +3.3V fornita dal
regolatore integrato nel chip, ma tenendo presente che la corrente estraibile è
solo di pochi mA.
La parte di stampato a sinistra dei fori di connessione, che non contiene piste,
può essere staccata
facilmente, dato che è pre incisa.
|
La cosa dipende dal fatto che i campioni sono stati acquistati non
singolarmente, ma in un lotto di 5 pezzi, che arrivano in una unica
superficie, così come escono dalla produzione.
Ogni modulo si separa facilmente facendo leva sulle incisioni nel
circuito stampato. |
Per impiegarlo si potranno saldare direttamente dei conduttori oppure
inserire un connettore a spine passo 2.54".
|
Il connettore non era compreso nella fornitura, ma si trova con
estrema facilità.
in questo modo è possibile utilizzare i classici conduttori con
spine/prese alle estremità. |
Per utilizzarlo, occorre scaricare dal sito di Prolific
il driver per Windows. E' opportuno leggere con attenzione le informazioni.
Sono disponibili anche versioni per Android, MAC-OS, Windows CE e altro nella
sezione di supporto, loggandosi come GUEST.
Test.
La tensione di uscita al pin 5V corrisponde alla tensione presente sulla
porta USB.
La tensione 3.3V è molto precisa.
Il primo test di base consiste semplicemente nel collegare il modulo all'USB
del PC (dopo aver caricato il driver) e collegare tra di loro i pin Txd e Rxd.
Con una delle tante utillity di emulazione terminale sono stati inviati
caratteri a diversi baudrate; fino a 115k non ci sono stati problemi di sorta.
Il secondo test consiste nel collegare il modulo all'uscita UART di un
microcontroller e inviare e ricevere stringhe di dati.
Nelle immagini, il segnale in uscita a 9600 e 115200. Sono state verificati
baudrate maggiori e a 230400 il segnale è ancora ottimo. La tensione di uscita
va da 0 a 3.3V pieni.
Per il microcontroller alimentato a 3.3V non ci sono, ovviamente problemi, ma
anche se alimentiamo a 5V va tutto bene, perchè l'ingresso RX del modulo è
compatibile con 5V e l'uscita del PL2303 è sufficientemente alta per essere accettata
dall'ingresso del microcontroller.
In ogni caso, se si riscontrassero problemi di livello è possibile
correggere la cosa semplicemente inserendo tra il modulo a 3.3V e il pin di
ricezione del microcontroller a 5V un traslatore di livello, ad esempio un
buffer del genere 74LVC1G34 oppure i più facilmente reperibili 125/126 .
Il circuito collegato al modulo potrebbe essere alimentato dal modulo stesso
utilizzando la tensione dell'interfaccia USB, prelevabile dal pin +5V; la
corrente è limitata dalle possibilità della porta USB.
Unica nota, a nostro avviso, che si può discutere è l'impiego di una presa USB
micro. Certamente si tratta di un connettore molto comune nel campo dei telefoni
cellulari, ma per impieghi dove lo spazio non così limitante, una presa mini
USB sarebbe preferibile, in quanto meno soggetta a guasti dovuti ad un uso
pesante.
Altre soluzioni.
Dove non si voglia utilizzare il modulo, esistono in commercio anche cavi con
spina USB:
|
Questi cavi si trovano facilmente dai grandi fornitori Ineternet, come
Amazon, eBay, Aliexpress, Banggood, ecc., anche se con nomi diversi.
Il circuito integrato ed i componenti annessi si trova nella spina
USB. In genere si tratta del Prolific PL2303TA.
Il cavo, lungo circa 1 metro, è terminato con quattro plug. I cavi
colorati indicano la funzione:
Rosso +5V - tensione
dalla connessione USB
Nero GND - massa comune
Verde TXD - dato ricevuto
dal PC
Bianco RXD - dato inviato al PC
Non sono presenti LED che indichino lo stato della connessione.
Anche in questo caso non è fornita alcuna documentazione assieme al
prodotto, ma con facilità si recuperano informazioni sufficienti dal
WEB. |
Anche in questo caso si scaricano dal sito del costruttore i driver che
funzionano per Windows da XP in su, Windows CE, MAC e Linux. Tra l'altro
Windows10 riconosce il cavo, anche se consigliato di usare il driver fornito da
Prolific. Sono stati provati i modelli forniti da Amazon e da Aliexpress.
Il cavo è adatto per schede del genere Arduino e Raspberry, oltre che per
qualsiasi altro microcontroller dove sia richiesto di interfacciarsi n modo
semplice con USB.
Nel caso di prodotti Microchip, è stato utilizzato con 16F, 16F Enhanced,
Pic18F e 24F. Questi cavi con chip Prolific hanno prestazioni forse inferiori
a quelli con chip FTDI, ma hanno anche prezzi così inferiori da giustificarne
ampiamente la scelta in un gran numero di applicazioni.
Alcune indicazioni che possono risultare
utili.
- Sono in commercio numerosi cavi e moduli con chip di produttori diversi (Prolific,
FTDI, SiLabs, Yuheng, ecc); ognuno richiede il driver specifico e non può
funzionare con quello di un altro chip.
- Se il driver è riportato nel Device Manager di Windows con il triangolino
giallo, è possibile che si tratti di un chip contraffatto. Si può
provare a correggere la situazione caricando il driver Prolific 3.2.0.0
per Windows 32/64 bit. Per Windows XP si potrà usare la versione 2.0.2.1.
In ogni case, fare riferimento al sito di Prolific
per quanto riguarda le compatibilità tra i vari chip PL2303 e i sistemi
operativi.
Il costruttore rende disponibile una utility PL2303
CheckChipVersion che determina quale versione di chip è in uso; è utile quando si impiega uno dei numerosi cavi in cui il circuito stampato
è contenuto nella presa USB.
- Se tutto è a posto, la porta di comunicazione sarà indicata come "Prolific
USB-to-Serial Comm Port (xxx)" dove xxx è il numero della COM
assegnato da windows.
In ogni caso è possibile trovare quali COMPort sono installate sul computer
con l'utility FindComPort
- Va tenuto presente che, quando un convertitore USB/Seriale è collegato al computer, il driver assegnato viene caricato solo per lo slot USB / porta COM.
Se è necessario cambiare il numero assegnato da Windows alla ComPort,
accedere al DeviceManager nella cartella delle COM e LPT.
|