Interfacciare differenti tensioni alle MCU.

Dalla rivista:
Elettronica Oggi

 
Pubblicato il 16 ottobre 2002

– Uscita CMOS 5V su ingresso MCU 3V
Tale schema si può vedere nella figura 4. In questo caso la tensione Vss è sempre la massa, mentre il massimo valore della tensione d’uscita è 5.5V. Quindi, la massima differenza con il livello di tensione limite per l’ingresso alla MCU è di 2V (Vdd(max)-Vin(max) = 5.5V – 3.5V). Certamente si potrebbe pensare a una resistenza in serie di valore maggiore, ma ciò causerebbe anche un eccessivo innalzamento della relativa costante di tempo, il che significa un maggior ritardo nella propagazione dei segnali. Una soluzione migliore è quella di ricorrere a un partitore di tensione resistivo che limita la tensione, ma senza appesantire eccessivamente l’ingresso del pin. Un’alternativa più elegante, ma un po’ più costosa, consiste nell’introdurre fra tutte le uscite CMOS a 5V e tutti gli ingressi MCU a 3V un dispositivo buffer logico come l’MC74LCX244 di On Semiconductor che accetta nei suoi I/O sia i 3V, sia i 5V ed è in grado di trasferire i segnali senza introdurre ritardi.

I PIN d’uscita delle MCU

Nelle MCU vi sono anche dei pin di sola uscita, un cui esempio è mostrato nella figura 5. I problemi maggiori in questo caso riguardano il contenimento dei valori di corrente nelle diverse condizioni di tensione. Infatti, se la corrente cresce troppo oltre il valore massimo consentito (per esempio, se il valore massimo nominale fosse di 25 mA, mentre la corrente reale superasse i 100 mA), certamente il diodo di protezione farà il suo lavoro, scaricando il surplus in eccesso a massa, ma oltre una certa quantità tale corrente potrebbe influenzare negativamente gli altri pin vicini, fino al punto di danneggiarli fisicamente. Si possono confrontare le prestazioni di generazione ed assorbimento di corrente dei pin utilizzando come esempio i microcontrollori Motorola MC68HC908GP32 realizzati in tecnologia di riga da 0.5 µm ed integranti una memoria Flash embedded di 32 kbyte. La scelta non è casuale poiché si tratta di una MCU general-purpose capace di operare indifferentemente a 3 ed a 5 volt, che offre anche un’ottima tenuta in temperatura, fra -40°C e +85°C. Si possono esaminare le prestazioni nei due casi peggiori con la tensione di alimentazione Vdd pari a 5.5V ed a 2.7V. Negli I/O general-purpose alimentati con Vdd di 5.5V vengono considerate come valore alto una tensione superiore a Vdd-1.5V con una generazione di corrente pari a 10 mA e come valore basso una tensione inferiore a 1.5V con un assorbimento di 10 mA. Se l’alimentazione è di 2.7V il valore alto è di Vdd-1.0V con una corrente generata di 4 mA, mentre il valore basso è inferiore a 1.0V per una corrente assorbita di 6 mA. Negli I/O dedicati alle correnti elevate i valori bassi sono rispettivamente di 1.0V per una corrente assorbita di 15 mA con Vdd di 5.5V e di 0.8V per un assorbimento di 10 mA con Vdd di 2.7V. Pertanto, abbassare il livello dell’alimentazione da 5 a 3 volt significa ridurre leggermente la capacità di generazione e di smaltimento della corrente da parte del pin e di ciò va tenuto conto nell’interfacciamento fra i dispositivi a tensioni miste, comunque tramite l’inserimento nel progetto di opportuni amplificatori di segnale è possibile aumentare i livelli di generazione/assorbimento di corrente.

– Uscita CMOS 3V su ingresso TTL 5V
Questo tipo d’interfacciamento non dà nessun problema grazie all’ampio margine di tensione ammesso fra le due parti. Gli ingressi TTL, infatti, ammettono fino a 0.8V come valore basso ed almeno 2.0V come valore alto e dunque sono direttamente compatibili con le porte d’uscita CMOS alimentate a 3V senza bisogno di alcun circuito intermedio.

– Uscita CMOS 3V su ingresso CMOS 5V
In questo caso i valori limite d’ingresso per una porta CMOS alimentata a 5V sono di 0.3*Vdd e 0.7*Vdd, ovvero inferiore ad 1.5V e superiore a 3.5V e, quindi, c’è bisogno di opportuni traslatori di livello per entrambi i valori della tensione d’uscita della porta CMOS a 3V, in modo da prevenire la dispersione della corrente. Una semplice soluzione può essere quella di utilizzare un partitore di tensione realizzato con un diodo e una resistenza, come si vede nella figura 6. Gli 0.6V della giunzione del diodo sono sufficienti a correggere le tensioni d’uscita della porta a 3V per renderle compatibili con la porta d’ingresso a 5V. Una soluzione più elegante consiste nell’inserire fra le due parti una logica d’interfaccia come l’MC74VHC1GT50 di On Semiconductor che consente di traslare i livelli di tensione senza influenzare negativamente i valori di corrente e, quindi, senza aumentare i consumi.

Le connessioni bidirezionali

Nel caso si vogliano realizzare dei collegamenti bidirezionali fra due parti alimentate con differenti tensioni, occorre necessariamente ricorrere a dei dispositivi intermedi dedicati, nonché aver cura di progettare nel modo più adatto i circuiti per ognuna delle due direzioni di trasmissione. Una soluzione molto diffusa consiste nell’utilizzare l’interfaccia bus universale MC74LVX4245 che offre buona flessibilità ed ottime prestazioni. In alternativa, si può utilizzare lo switch bus QS3384 che in più offre un bassissimo ritardo di propagazione, contenuto in 0.25 ns, ed un accurato controllo della direzione di trasferimento dei segnali. Inoltre, è dotato di una resistenza interna di 10 kΩ posta fra il catodo del diodo e la massa, che consente un agevole scarico della corrente in eccesso, senza costringere a ricorrere ad altri componenti esterni. Un’altra possibile configurazione bidirezionale è mostrata nella figura 7. Se non è di primaria importanza effettuare il controllo accurato dei flussi nelle due direzioni, allora può essere più conveniente utilizzare i più semplici traslatori di livello MAX3370 e MAX3371 (differiscono solo per il numero dei pin del package SC70: 5 nel primo e 6 nel secondo) di Maxim Semiconductor. In conclusione, è senz’altro positiva per tutti, progettisti ed utilizzatori, la transizione dai sistemi alimentati a 5V di oggi verso quelli alimentati a 3V di domani. Le nuove generazioni di MCU a basso voltaggio consentono, infatti, a parità di prestazioni: ridotta occupazione di spazio sulle schede stampate, diminuzione delle possibili cause di malfunzionamento, minori consumi, maggior durata delle batterie negli apparecchi portatili, riduzione del peso delle batterie, diminuzione dei costi finali degli apparecchi. Tuttavia, nel periodo di transizione che ci attende, almeno fino a quando vi sarà sufficiente disponibilità di componenti e sistemi in grado di funzionare a 3V, occorre ingegnarsi nello sviluppo di tecniche idonee all’interoperabilità fra i dispositivi a tensioni miste. I partitori di tensione, comunque progettati, costituiscono una semplice ed economica soluzione a questo problema, ma un’alternativa più elegante è rappresentata dai traslatori di livello integrati, che offrono migliori prestazioni e maggior flessibilità in fase di progetto, per una più ampia varietà di applicazioni.