Tutorials - Elettronica

 

 

Uscite digitali


Le uscite di un dispositivo logico digitale possono assumere tre configurazioni fondamentali:

  • totem pole
  • totem pole con 3-state
  • open collector / open drain

Totem Pole.

Si tratta di un driver composto da una coppia complementare di semiconduttori N e P (o, nei TTL, anche da due BJT N).

L' uscita può assumere solo due livelli, dovuti all' entrata in conduzione di uno dei due semiconduttori.

La logica interna di controllo impedisce che entrambi vadano in conduzione nello stesso istante, creando un corto circuito tra la tensione positiva e la massa.

E' rappresentabile come un interruttore a due posizioni (interruttore on-on).

Mosfet P in conduzione Il livello 1 sul pin di uscita viene ottenuto chiudendo lo switch P che collega il pin alla Vdd.
Mosfet N in conduzione il livello 0 sul pin di uscita viene ottenuto chiudendo lo switch N che collega il pin alla Vss.

Questi circuiti vanno usati solo per comandare uno o più ingressi successivi.
Non possono essere mesi in parallelo: se una stessa linea venisse comandato da più circuiti di tipo totem-pole che cercano di forzare livelli di tensione diversi, si verificherebbero conflitti con corto circuiti tra Vdd e Vss attraverso i semiconduttori-switches chiusi. Questo darebbe luogo a correnti elevate, molto più del valore nominale, danneggiando, anche definitivamente, i circuiti integrati.

La maggior parte dei GPIO dei PIC è di questo genere.

 


Totem Pole con 3-state.

Un 3-state è il gate tipico per il collegamento ad un bus, dove concorrono su una stessa linea più dispositivi.

Si tratta di un driver composto da una coppia complementare di semiconduttori N e P, ma con la possibilità di disattivare entrambi i semiconduttori

L' uscita può assumere, allora, tre livelli, dovuti all' entrata in conduzione di uno dei due semiconduttori oppure al blocco di entrambi. Questa terza situazione si indica col nome 3-state o alta impedenza (Hi-Z).

E' rappresentabile come un interruttore a tre posizioni, con quella centrale che non chiude alcun circuito (interruttore on-off-on).

Mosfet P in conduzione Il livello 1 sul pin di uscita viene ottenuto chiudendo lo switch P che collega il pin alla Vdd.
Nessun Mosfet in conduzione Il livello su pin di uscita è floating, dato che assume una impedenza molto elevata.
Mosfet N in conduzione il livello 0 sul pin di uscita viene ottenuto chiudendo lo switch N che collega il pin alla Vss.

Queste uscite possono essere usate in parallelo su uno stesso bus e comandati da diversi circuiti 
facendo in modo che uno solo dei dispositivi sia in uno stato attivo e gli altri assumano una condizione di 3-state.

Per ottenere la condizione di 3-state, solitamente i circuiti prevedono un ingresso di comando, definito Output Enable (OE).

Applicando a questo ingresso il livello logico "non attivo" previsto dal costruttore (spesso OE attivo è =0, ma è possibile anche l' opposto) si forza lo stato di alta impedenza, mentre al livello attivo si connette l' uscita  agli switches. 

A lato una possibile implementazione per BJT: in 3-state entrambi i semiconduttori finali hanno le basi bloccate.


Per evitare che, in condizione di 3-state di tutti i dispositivi collegati ad un bus esso assuma una tensione non definita, speso si utilizza un weak pull-up (o anche un pull-down), che porta ad un preciso livello la tensione sul bus. 

E' possibile emulare un totem pole con 3-state da GPIO generici, nel seguente modo :

  • se vogliamo imporre un livello 0 al bus, programmiamo il pin come uscita dopo aver programmato il registro del port a livello 0. Questo collegherà il pin  al bus con il MOSFET N chiuso e il P aperto
     
  • se vogliamo applicare un livello 1 al bus, ovvero lasciare libero il bus al livello imposto dal pull-up. programmeremo il pin come ingresso. Questo lo porta in stato di alta impedenza e R1 tira su (pull-up) la tensione.

 


Open collector - open drain.

Se omettiamo nel totem pole il semiconduttore P, abbiamo una uscita open drain (o, per un BJT, open collector).

L' uscita può assumere, allora, un solo livello definito, dovuto alla conduzione del transistor.

Quando il transistor conduce, collega il pin di uscita alla massa.

Quando è interdetto, il pin resta floating, ad alta impedenza.

E' rappresentabile come un interruttore a due posizioni, con una che non chiude alcun circuito (interruttore off-on).

Mosfet N aperto Il livello sul pin è flottante. L' impedenza è molto elvata.
Mosfet N in conduzione il livello 0 sul pin di uscita viene ottenuto chiudendo lo switch N che collega il pin alla Vss.

Queste uscite possono essere usate in parallelo su uno stesso bus (bus open collector).

In particolare, il livello della tensione sul bus  connessione con altri dispositivi sarà dato da una resistenza di pull-up o da un generatore di corrente.

Mosfet N aperto Il livello sul pin è alto, stabilito dal pull-up.

L' impendenza del pin è molto elvata.

Mosfet N in conduzione il livello 0 sul pin di uscita viene ottenuto chiudendo lo switch N che collega il pin alla Vss.

Nel pull-up scorre una corrente pari a:

Id = V / Rp

Se un solo dispositivo manda in conduzione il suo switch, il bus è portato a livello basso
Il livello basso è quindi predominante su quello alto: qualunque altro dispositivo che cerchi di applicare un livello alto, vedrà vanificata la sua azione.

Il bus open collector ammette che più di un dispositivo vada in conduzione senza creare problemi di sovra corrente, dato che si tratta semplicemente di interruttori verso massa in parallelo e che il livello alto è garantito dal pull-up.

Ne risulta che in ogni caso la corrente massima possibile sarà:

Id = V / R1

e non dipenderà dal numero delle unità collegate al bus.

 

Nei PIC è tipicamente open drain in uscita il pin RA4.
In altri microcontroller alcuni pin sono configurabili come open drain.

Maggiori informazioni su bus open collector qui.

L' uscita open collector, per le sue caratteristiche, è quella tipica per il comando di LED o piccoli relais collegati tra la tensione di alimentazione e il pin del dispositivo.

Alcune considerazioni:
  • la tensione sul carico V+ può essere diversa da quella di alimentazione dell' integrato Vdd, ma occorre verificare che non superi quella ammessa dal semiconduttore
  • la corrente assorbita dal carico non deve essere superiore alla massima supportata dal semiconduttore
  • la logica open collector è negata
base oc pin
0 bloccato floating
1 conduzione 0

Nell' esempio, il carico è un relè; data la sua natura induttiva, occorre il diodo D di protezione per la sovratensione generata alla commutazione.

Per la caratteristica di poter comandare un carico in tensione diversa dalla Vdd, una gate open collector / open drain sarà utilizzabile anche come traslatore di livello tra due diversi sistemi che lavorano con livelli di tensione diversi. 


 

  

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 13/01/12 .