Traslazione dei livelli logici

All’inizio dell’era digitale, la logica TTL e quella CMOS a 5 Volt erano le più diffuse. Tutti i dispositivi adottavano questi due standard e la realizzazione dei circuiti, uniti alla questione dell’interfacciamento,  non comportava alcun problema. Anzi, la semplicità e soprattutto  la tipologia di logica positiva prevista (0 Volt per L e 5 Volt per H) consentivano di collegare direttamente le varie porte, senza prevedere alcun tipo di adattamento. Con lo svilupparsi dei metodi  di integrazione, del risparmio energetico e della velocità dei dispositivi, inevitabilmente anche i livelli logici previsti da questi, hanno subito modifiche sostanziali, soprattutto  per ciò che concerne il potenziale di lavoro. Ecco quindi che esistono logiche con diversi livelli di tensione, sia per esprimere stati bassi che alti. Anche le tensioni negative possono essere utilizzate per rappresentare condizioni logiche, secondo standard che possono cambiare con le tipologie di porte e di sistemi. In questo articolo faremo una panoramica sui metodi di adattamento tra le uscite e gli ingressi logici tra i vari dispositivi. Un passo obbligato per evitare errori e risolvere al meglio gli interfacciamenti tra logiche diverse.

Introduzione

L’aumento della complessità dei moderni sistemi porta inevitabilmente ad un abbassamento del voltaggio nei circuiti logici, anche per quel che riguarda la rappresentazione dei livelli di stato (Figura 1 e 2). La tensione inferiore consente di ridurre in maniera proporzionale i consumi e quindi allungare notevolmente la durata di eventuali batterie. Questo, da un lato porta indubbiamente ad un incremento delle prestazioni dei circuito, (abbassamento dei consumi e aumento della velocità operativa), dall’altro causa inevitabilmente  una incompatibilità  tra  i  vari sistemi logici.

Figura 1. Semplice metodo per la traslazione dei livelli logici

Figura 1. Semplice metodo per la traslazione dei livelli logici

Figura 2. Un altro semplice metodo per la traslazione dei livelli logici

Figura 2. Un altro semplice metodo per la traslazione dei livelli logici

Ad esempio, potrebbe essere problematico collegare tra loro porte logiche con livelli di valori alti fissati a 5 Volt con altri operanti a 3,3 Volt e con altri ancora a 1,8 Volt. In questo articolo si vedrà come ridurre tale diversità, permettendo la connessione tra porte logiche di diverse famiglie. Questa problematica prende il nome di traslazione dei livelli logici (Figura 3).

Figura 3. Interfacciamento TTL-CMOS

Figura 3. Interfacciamento TTL-CMOS

Perché circuiti  promiscui

Talvolta è conveniente utilizzare, in un circuito, diverse famiglie di porte logiche, anche se di differente tipologia di livelli logici. La maggiore motivazione si ha quando si vogliono sfruttare le principali caratteristiche dei diversi modelli, in modo da ottenere risultati ottimali. Purtroppo  lo  sviluppo  dei  circuiti  integrati  digitali, come detto prima, implica necessariamente una traslazione dei livelli logici, in modo da permettere il corretto “colloquio” tra le varie parti dei circuiti. Per i circuiti integrati che non “tengono” il passo dell’avanzamento tecnologico, è necessario applicare la traslazione dei livelli logici. Un esempio tipico può essere quello di un microcontrollore funzionante a 3,3V che lavori con una memoria EEPROM, un motore o un'altra MCU che richiedono 5V di alimentazione. Lo svantaggio principale di tali configurazioni è quello di richiedere due alimentazioni diverse oltre alle opportune interfacce di traslazione dei livelli della tensione (Figura 4).

Figura 4. Traslazioni con MAX1840 o MAX1841

Figura 4. Traslazioni con MAX1840 o MAX1841

Metodi

I metodi  per traslare i livelli logici possono essere molteplici,  secondo le caratteristiche del circuito trattato,   pertanto influiscono  sulle  metodologie adottate l’intervallo di tensione previsto dai circuiti integrati,  il  numero  delle linee digitali  traslate e, soprattutto, la velocità di elaborazione. Oggettivamente è più semplice ottenere una traslazione da un livello logico alto ad uno più basso (per esempio da 5 Volt a 3,3 Volt High) che non viceversa. I metodi più semplici prevedono addirittura l’utilizzo di transistor o alcune resistenze e diodi.  Per basse velocità, questo tipo  di soluzione potrebbe  essere ideale, ma per un transfer rate elevato è consigliabile adottare metodi più complessi.

ESEMPIO DI INTERFACCIAMENTO

Portiamo, a titolo di esempio, l’interfacciamento tra i due sistemi più diffusi di porte logiche: TTL e CMOS. Sebbene i due livelli di tensione, a potenziale basso, non diano problemi di sorta, a livello alto potrebbero dare luogo ad alcune incompatibilità.

Uscita TTL, ingresso CMOS

Se l’uscita TTL è bassa, essa è pienamente compatibile con l’ingresso basso CMOS, in quanto il potenziale, essendo prossimo allo zero, garantisce un livello falso stabile. Pertanto un valore digitale basso TTL è correttamente valutato come tale da un ingresso CMOS. Viceversa,  se l’uscita TTL è alta, non è detto che venga garantita la corretta interpretazione da parte della porta CMOS. Si utilizza pertanto una resistenza di pull-up, che porta a VCC l’ingresso CMOS.

Uscita CMOS, ingresso TTL

Non esistono problemi di compatibilità,  in quanto i segnali CMOS sono pienamente adatti a pilotare le porte  TTL. Occorre solamente stare attenti  che in talune situazioni, le correnti entranti nelle porte TTL potrebbero  leggermente variare il potenziale, innalzandolo oltre il valore consentito. La soluzione consiste nella creazione di un buffer di ingresso, che preservi lo stato dei livelli ai valori standard di ingresso TTL.

TRASLAZIONE DA LIVELLO ALTO A LIVELLO BASSO – MODO MONODIREZIONALE

Esistono sul mercato molti circuiti integrati che sono adibiti alla traslazione dei livelli logici, in particolare da un livello alto ad un livello basso. La maggior parte di questi circuiti posseggono una tolleranza sull’eventuale innalzamento del segnale in ingresso, sopra una tensione di soglia. Sono definiti  Input Overvoltage Protected quei dispositivi che sopportano un ingresso più elevato di quello della propria alimentazione, senza subire alcun danno. Si possono processare in questo modo segnali in ingresso più elevati, anche se la relativa tensione di alimentazione è fissata ad un livello di tensione ben preciso. Purtroppo l’applicazione opposta, ossia la traslazione da livello basso a livello alto è abbastanza complicata da ottenere. Non è infatti semplice generare un potenziale alto di un segnale, partendo da un segnale più basso.

TRASLAZIONI MISTE ALTO-BASSO E BASSO-ALTO

Alcune applicazioni (come il bus SPI) richiedono contemporaneamente traslazioni da livelli alto a basso e viceversa. Ad esempio, in un sistema con processore operante a 1,8V, con relative periferiche ad esso collegate a 3,3V, è possibile utilizzare le tecniche sopra descritte. In ogni caso esistono chip che in modo autonomo ed indipendente riescono ad eseguire completamente le corrette traslazioni, come il MAX1840, MAX1841 o MAX3390.

TRASLAZIONI BIDIREZIONALI

Per i sistemi basati su protocollo I2C oppure nel caso di bus di tipo “1 Wire”, è richiesta la traslazione in entrambe le direzioni. Pertanto i sistemi basati su un solo transistor non vanno assolutamente bene, in quanto essi lavorano in modo unidirezionale. Per una grossa mole di dati, un modo  molto  utilizzato  è  quello  di  impiegare  un bus switch (74CBTB3384 o equivalente). Tali dispositivi sono ben ottimizzati per operare nei sistemi a 3,3V e 5V. Per i sistemi “1 Wire” e “2 Wire” tale metodologia porta a due problemi: occorre un pin separato per il controllo del flusso dei dati ed inoltre sono necessari molti circuiti integrati  che farebbero lievitare la difficoltà dell’intero sistema. Come si vede dunque tutte le tecniche hanno dei pro e dei contro.  L’ideale sarebbe disporre di un dispositivo universale che effettuasse correttamente tutti i tipi di traslazione, con qualsiasi livello di tensione e, soprattutto, che prevedesse la bidirezionalità del flusso dati. La soluzione sembra esistere grazie all’implementazione del MAX3370, che risolve egregiamente tutti  i problemi legati alla modifica della tensione di lavoro. Il MAX3370 utilizza un metodo di trasmissione “a porta” per garantire la corretta traslazione dei livelli logici. Può operare correttamente pertanto in uno stadio “open-drain”  oppure  “push-pull”.  Inoltre  si possono anche sfruttare due vantaggi che lo stesso dispositivo offre:  esso include  alcuni  resistori  di  pull-up  di 10Kohm, per cui non è necessario aggiungerne esternamente altri, garantendo in questo modo una bassa costante di tempo. In secondo luogo il MAX3370 è contenuto in un piccolo package SC70, che consente di risparmiare molto spazio sui propri circuiti (Figure 5-11).

Figura 5. Il MAX3370

 

Figura 6. Costante di tempo di un FET open-drain a 20 Khz

Figura 6. Costante di tempo di un FET open-drain a 20 Khz

Figura 7. Limiti di velocità utilizzando un sistema a doppio transistor a 400 Khz

Figura 7. Limiti di velocità utilizzando un sistema a doppio transistor a 400 Khz

Figura 8. Limiti di velocità utilizzando un sistema a doppio transistor a 100 Khz

Figura 8. Limiti di velocità utilizzando un sistema a doppio transistor a 100 Khz

Figura 9. Traslazione da 1,8V a 5 V a 400 Khz con il MAX3370 con effetto capacitivo ridotto

Figura 9. Traslazione da 1,8V a 5 V a 400 Khz con il MAX3370 con effetto capacitivo ridotto

Figura 10. Il resistore di pull-up da 4,7K sul MAX3370 riduce ulteriormente l’effetto capacitivo

Figura 10. Il resistore di pull-up da 4,7K sul MAX3370 riduce ulteriormente l’effetto capacitivo

Figura 11. Test ad alta velocità del pilotaggio rail-to-rail con il MAX3370

Figura 11. Test ad alta velocità del pilotaggio rail-to-rail con il MAX3370

IL PROBLEMA DELLA VELOCITÀ

La presenza di una costante di tempo e relativa rampa in discesa o salita (impossibile da eliminare), limita la velocità di commutazione e, quindi, della quantità dei dati in transito. Solamente con componenti  ideali la velocità  potrebbe  essere addirittura  “infinita”.  Con l’utilizzo del metodo open drain i limiti causati da una “esagerata” costante di tempo cominciano a farsi sentire, già ad una frequenza operativa di circa 20 KHz. La famiglia dei circuiti integrati MAX3370 includono uno schema brevettato che autonomamente pone immediatamente a livello alto i fronti di salita, connettendoli direttamente alla fonte di alimentazione attiva, riducendo in modo sostanziale gli effetti capacitivi. Se il segnale in input supera un prefissato valore di soglia, il dispositivo, in maniera autonoma, pone a Vcc il livello di uscita. In questo modo si eliminano tutte le distorsioni e i fronti progressivi causati da componenti esterni. Con tale sistema possono essere facilmente raggiunte velocità di scambio dati anche di 20Mbps.

IL PROBLEMA DEL LIVELLO DI TENSIONE

Sarebbe veramente comodo utilizzare in una applicazione un solo componente capace di effettuare, in maniera perfetta, la traslazione dei livelli logici per qualsiasi livello di tensione e di velocità. Esistono in commercio  molti   circuiti  integrati,  prodotti   dalla Maxim,  facenti parte della famiglia MAX337x e non solo. Essi prevedono tensioni “basse” di 1,2V e tensioni “alte” di 5,5V. Di solito un singolo componente prescelto è sufficiente per soddisfare le necessità generali, senza il bisogno di selezionarne uno per ogni livello di tensione diversa. La necessità di processare una traslazione “da basso ad alto” e “da alto a basso” potrebbe essere soddisfatta solamente utilizzando due chip differenti. Invece, grazie al metodo bidirezionale e alla topologia indipendente dei circuiti integrati  della famiglia MAX337x, anche questo problema è brillantemente risolto. Se il numero delle porte di ingresso e uscita, in un chip, aumentano, aumentano con la stessa misura anche i problemi di progettazione e di costruzione. Essi sono causati soprattutto  dalla “capacità” intrinseca del carico, dalla differenza delle due tensioni di livello alto in gioco e dalla velocità di scambio dei dati. In ogni caso è meno problematica una traslazione di un segnale digitale ALTO da una tensione maggiore ad una minore; lo è anche se la differenza tra le due tensioni tende al minimo. In ogni caso esistono sempre delle difficoltà nel creare prototipi  in cui servano differenti  tensioni logiche, magari alquanto diverse tra loro. I circuiti integrati prodotti  dalla Maxim consentono  di  realizzare le proprie applicazioni, con esigenze di traslazioni di livelli logici, in maniera meno problematica, permettendo altresì la scelta tra un ampio  raggio  di assortimento e di tipologie diverse (Tabella 1).

Tabella 1. Dispositivi prodotti da Maxim

Tabella 1. Alcuni dispositivi prodotti da Maxim. L'elenco è aggiornabile dal sito della Maxim Integrated

 

 

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 23 gennaio 2017

Scrivi un commento