Costruiamo uno Switch USB con funzione di autoswitch

Costruire uno switch usb

Avete mai notato quanto spazio occupa una tastiera? Non molto in realtà, ma se avete due computer da controllare può essere piuttosto scomodo avere una coppia di mouse ed altrettante tastiere, con annessi cavi che corrono da tutte le parti, e troppo poco spazio per poggiare anche solo un foglio. Quello di cui parliamo è un metodo, piuttosto avanzato, per mettere ordine sulla vostra scrivania. La dimostrazione, se volete, che progettare significa trasformare una esigenza giornaliera in un circuito elettronico. Eccovi un’idea per uno switch USB con autoswitching.

Questo progetto nasce dall’esigenza di riuscire a gestire due computer, un portatile ed un desktop, fisicamente posizionati sulla stessa scrivania, utilizzando meno spazio possibile. I due condividevano già il monitor, tramite due collegamenti dei quali uno è VGA mentre l’altro DMI. Ho scoperto, mio malgrado, che l’accoppiata mouse e tastiera, ancorché senza fili, possono davvero occupare molto spazio ma averne addirittura due cominciava a diventare un po’ troppo.
D’altronde, il portatile una tastiera ce l’ha già incorporata ed il mouse non sarebbe indispensabile, se non fosse che utilizzare il computer per tante ore al giorno, magari per progettare, tra le altre cose, rende (nella mia personale esperienza) necessario utilizzare un mouse trackball, dispositivo certamente poco integrabile in un portatile ma molto consigliato dal punto di vista igienico.
Peraltro l’occupazione di spazio sulla scrivania era largamente inefficiente perché l’utilizzo di un computer preclude quello dell’altro; quindi, di fatto, le due coppie di mouse e tastiera non vengono mai utilizzate contemporaneamente.
Da qui l’idea: perché non creare uno SWITCH USB a cui collegare almeno la tastiera facendo in modo che sia possibile collegarla al computer attivo in quello specifico momento? Questa idea, è chiaro, si può applicare ad altri casi, ma lo vedremo poi in seguito.

Definizione delle specifiche

Nel ragionare su che cosa dovesse essere capace di fare, la prima cosa che mi è venuta in mente, come detto in precedenza, era la possibilità di commutare, per cui solo uno per volta dei due percorsi possibili doveva essere abilitato.
In secondo luogo, una funzione più avanzata, poteva essere l’auto rilevamento del percorso conduttivo da abilitare. Per farlo ho immaginato che bastasse rilevare il livello di tensione presente sulla linea V+ delle porte USB e commutare abilitando solo quella attiva. Dopo aver fatto qualche ricerca, ho trovato un integrato della Texas Instruments, il TS3USB221, ed allora il progetto ha cominciato a prendere vita.

L’integrato che ho scelto

Le caratteristiche principali del TS3USB211E sono elencate qui di seguito:

  • Tensione VCC da 2.5 V a 3.3 V;
  • Switch di segnali I/O fino a 5.5 V;
  • Pin di controllo compatibile con 1.8 V;
  • Basso consumo di potenza quando OE è disabilitato (limitato ad 1 μA);
  • rON = 6 Ω (max);
  • ΔrON = 0.2 Ω (tipico);
  • Cio(on) = 7 pF (max);
  • Basso consumo di potenza (30 μA max);
  • Temperature di esercizio: da -40 °C a 85 °C;
  • Ampia banda passante (1 GHz, tipico).

Il Pin-out dell’integrato è 10SON, 10UQFN e le sue dimensioni sono piuttosto contenute, trattandosi di componente di tipo DRC quadrato da appena 3 mm di lato. Sul datasheet del componente sono disponibili moltissime informazioni che spiegano per esteso le funzionalità dell’integrato. In questa sede riportiamo solo alcune delle più importanti, ad esempio:

  • la descrizione dei pin ed annessa funzione, come da immagine che segue:
  • la tabella della verità, grazie alla quale il funzionamento resta univocamente definito
  • il diagramma a blocchi:

In questo schema in particolare c’è esattamente la risposta alla domanda iniziale. Le linee di enable e di controllo permettono l’operazione di commutazione tra un canale e l’altro.

Riportiamo, in ultimo, il diagramma ad occhio per le prestazioni dello switch; questo, nello specifico, è riferito al caso di segnale USB 480 Mbps con  switch su percorso 2D.

TS3USB221EVM

Una delle principali difficoltà in questo progetto era, chiaramente, il montaggio. Come detto nel paragrafo precedente, l’integrato è di dimensioni estremamente contenute, il che rende assolutamente impossibile la prototipazione “in casa”. Fortunatamente ho trovato la soluzione: mi sono dovuto “accontentare” di acquistare una scheda di valutazione, il cui nome completo è TS3USB221/A/E High Speed USB 2.0 (480 Mbps) 1:2 Multiplexer/Demultiplexer Switch Evaluation Module, che trovate disponibile presso i più forniti rivenditori on-line.
E così, dopo aver aspettato i necessari tempi di consegna, eccola qui:

Il contenuto della box è il seguente:

Ed ecco la board (fronte)

Questo è, invece, il retro della scheda:

Nella prossima immagine si vede chiaramente come la scheda risulti isolata. Si tratta di una board multilayer; l’importanza del buon isolamento deriva dal fatto che il circuito lavora sia con segnali DC sia dati, per cui è importante garantire che non ci siano interferenze.

Sul sito della Texas Instruments è disponibile la documentazione della scheda in oggetto, che potete trovare qui.
Tra le particolarità della scheda in questione c’è il fatto di essere stata progettata specificatamente per supportare il protocollo di comunicazione USB versione 2.0, quindi stiamo parlando di una versione più “performante” di quanto non lo fosse l’applicazione per la quale è iniziata la ricerca. D’altronde questo rende la scheda ancora più utile per effettuare valutazioni di prestazioni anche con dispositivi che, viceversa, di tali velocità hanno bisogno, pensiamo ad unità di archiviazione di massa.
Il supporto alla comunicazione è bidirezionale, quindi è possibile utilizzarla sia per dispositivi di solo input sia per effettuare anche scrittura su dispositivo, ad esempio collegando proprio un disco rigido.
Viene alimentata, ovviamente, grazie ai 5V già presenti nell’USB stesso.
Ed ecco un diagramma a blocchi della scheda:

poiché essa ha uno scopo illustrativo, la Texas ha previsto due canali di comunicazione: il primo, partendo dal connettore J1 verso J2, mentre il secondo, sul quale effettivamente opera lo switch, tra la “sorgente” connessa a J3, e le periferiche di uscita, che vengono collegate su J4 e J5.
Nel nostro caso, la tastiera (o chi per essa) sarà collegata a J3 mentre i due computer a J4 e J5.
Ma prima di continuare è importante specificare cos’altro serve rispetto alla semplice scheda.
Considerato che una tastiera (ma non solo), di solito, ha un connettore USB di tipo A maschio, occorrerà un adattatore che sia USB tipo A femmina -> USB tipo B maschio.
Inoltre, occorrono due cavi USB tipo A/A, M/M.
Perché tutto funzioni, è necessario abilitare la sezione 3.3 V-LDO aprendo il connettore J8 (il cui circuito di riferimento è riportato nella figura che segue).

Rimuovendo, infatti, questo jumper si abiterà l’erogazione della tensione Vcc=3.3V per il TS3USB211, necessaria per il funzionamento.
In pochi semplici passi, ecco quello che è necessario fare:

  • connettere la tastiera all’adattatore e questo al connettore J3;
  • rimuovere il jumper J8;
  • abilitare l’integrato cortocircuitando il connettore J7;
  • utilizzare J4 e J5 come sopra;
  • selezionare l’uscita corretta.

Se per effettuare la connessione J1-J2 non c’è alcuna necessità di configurare i jumper, visto che questo è solo un percorso di test per verificare la comunicazione tra i dispositivi; quando, invece, lo switch deve essere chiamato in causa c’è da configurare opportunamente i jumper come segue: il percorso J3-J4 è abilitato se J6 è corto circuitato mentre il percorso J3-J5 è attivo quando J6 è aperto.

Di seguito riportiamo, per completezza, lo schema di collegamento realizzato sulla scheda:

La prova

Poichè più critica della mia applicazione specifica, probabilmente è utile verificare la bidirezionalità della comunicazione; ecco come funziona la comunicazione utilizzando un hard disk con USB 2.0.

Connessione J1-J2:

Hard disk connesso al canale 1, configurato:

Hard disk connesso al canale 2, configurato:

Resta da vedere come fare per realizzare la funzione di autoswitching. Visto che le piste son realizzate in questo modo è un po’ difficile “metterci le mani” quindi, è necessario utilizzare un transistor (magari un BC237, tanto per fare un nome) da connettere alla V+ di J4. Tramite una resistenza, magari da 4 kOhm (nell’esempio da 10 k), pilotare il transistor e connettere il collettore a J6 (pin 1) e l’emettitore a massa.

La configurazione è chiaramente quella ad emettitore comune ed in questo modo la tensione di controllo  sarà proprio quella che accende o meno il transistor.

Se non si effettuano altre modifiche, il circuito funzionerà alimentando J4 quando il transistor sarà polarizzato mentre di default alimenterà J5, ovvero il canale 2 (perchè J6 sarà sempre open).

Un’altra possibilità per realizzare la funzione di auto-switching è quella di utilizzare le porte logiche, sintetizzando una funzione che utilizzi V+ del canale 1 e V+ del canale 2 come variabili di ingresso e che abbia come uscita la variabile “percorso conduttivo da alimentare”. Tuttavia, in effetti, questa strada risulta un po’ più tortuosa.

In conclusione

Beh, direi che ho certamente trovato l’integrato sul quale puntare per progettare il mio SWITCH USB. E dico che questo è solo un punto di partenza perchè nel progetto che ho in mente, e quindi nella board che voglio realizzare, la funzione di autoswitch dovrà necessariamente esserci ed essere integrata.

Inoltre, si può sempre pensare che sia la coppia mouse e tastiera a subire lo switching, non vi pare? Così come, cambiando integrato, perchè non progettare un switch USB + Video?

E voi, cosa ne pensate? Come lo avreste implementato? Che funzioni trovereste utile aggiungere?

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

9 Comments

  1. Boris L. 4 dicembre 2012
  2. Emanuele Emanuele 4 dicembre 2012
  3. Fede86 4 dicembre 2012
  4. Piero Boccadoro Piero Boccadoro 5 dicembre 2012
  5. Piero Boccadoro Piero Boccadoro 5 dicembre 2012
  6. Piero Boccadoro Piero Boccadoro 5 dicembre 2012
  7. Fede86 5 dicembre 2012
  8. Fede86 5 dicembre 2012
  9. Piero Boccadoro Piero Boccadoro 5 dicembre 2012

Leave a Reply