AN013 - Traslatore di livello a transistor

In molti casi ci si trova a dover interfacciare circuiti logici che lavorano a tensioni diverse, per esempio 3.3V e 5V, ed il problema consiste nel fatto che la tensione di uscita di un circuito digitale (che chiamiamo A) a livello alto è diversa dalla tensione accettata in ingresso dal secondo circuito (che chiamiamo B) con cui deve interfacciarsi.

Questa situazione è molto diffusa (basti pensare al caso in cui un modulo audio LPM11162 a 3.3V deve comunicare con una scheda Arduino a 5V - vedi articolo tecnico AN009) e la soluzione consiste nell'interporre fra i due circuiti un terzo circuito detto traslatore di livello, che ha il compito di traslare il livello di tensione presente all'uscita del circuito A e portarlo al livello accettato dal'ingresso del circuito B in modo che possa essere correttamente interpretato.

La soluzione più comune è l'uso di un circuito integrato dedicato, ma in questo articolo viene proposta una soluzione alternativa a componenti discreti che può risultare più vantaggiosa se le linee da interfacciare sono poche, per cui l'uso di un circuito integrato risulterebbe uno spreco.

 

Realizzazione

I casi che possono presentarsi sono due:

1) la tensione di uscita del circuito A è maggiore della tensione di ingresso accettata dal circuito B
2) la tensione di uscita del circuito A è minore della tensione di ingresso accettata dal circuito B

Il caso 1 è il più favorevole e semplice, perchè per ridurre la tensione è sufficiente realizzare un semplice partitore resistivo opportunamente dimensionato. Il seguente schema mostra un traslatore di livello da un'uscita a 5V verso un ingresso a 3.3V:

schematics3

Il caso 2 invece è più complesso perchè la tensione d'uscita deve essere innalzata. In questo articolo proponiamo un'interessante soluzione per realizzare il traslatore di livello, che impiega solo tre componenti. Ecco lo schema:

schematics1

In questo esempio il circuito A a 3.3V deve inviare un segnale logico al circuito B a 5V.
Viene mostrato per primo il caso in cui l'uscita di A sia a livello 0. L'emettitore si trova a 0V (GND) mentre la base del transistor NPN è polarizzata dai 3.3V attraverso la resistenze di base, quindi il transistor è in conduzione.
La corrente di collettore scorre attraverso la resistenza collegata ai 5V e la caduta porta in saturazione il transistor, quindi con tensione di collettore a 0V (o quasi). Fino ad ora niente di sorprendente, abbiamo solo verificato che il livello di uscita 0 venga riportato correttamente da A verso B.

Vediamo invece il caso in cui il circuito A porti a livello 1 la sua uscita, quindi a 3.3V:

schematics2

In questo caso l'emettitore e la base vengono a trovarsi allo stesso potenziale di 3.3V, pertanto il transistor NPN non può condurre e non ci sarà alcuna corrente di collettore che fluisce attraverso la resistenza connessa ai 5V del circuito B. Quindi la caduta sulla resistenza è nulla ed i 5V vengono riportati all'ingresso del circuito B.

Abbiamo così ottenuto l'adattamento di livello desiderato:

- quando il circuito A esce con 0V il circuito B riceve in ingresso 0V
- quando il circuito A esce con 3.3V il circuito B riceve in ingresso 5V

Semplice no? Sono necessarie soltanto due resistenze ed un solo transistor (anche un comune BC337), pertanto il tutto risulta facile, economico e poco ingombrante.

 

 
Prodotti
Distanziale M2.5 12mm PCB (4pz)
Distanziale M2.5 12mm PCB (4pz)
Cuffia con microfono
Cuffia con microfono
Display 7 seg. Rosso catodo comune
Display 7 seg. Rosso catodo comune
7812 - Regolatore 12V
7812 - Regolatore 12V
Stagno D.1mm 100gr 60/40
Stagno D.1mm 100gr 60/40
PIC16F628A-I/P
PIC16F628A-I/P
Home