9.1. I2C Translator de nivel de tensiune


I2C (Inter-Integrated Circuit) este un standard de bus (magistrală) serială cu 2 fire multi-master la multi-slave, care permite comunicații seriale la mai multe rate de biți (în funcție de modul suportat) pe câțiva metri de cablu. I2C este un standard relativ vechi, dar încă extrem de popular, care a ajuns pe scenă în 1982.

De atunci, interfețele logice de 5V au dat drumul la standarde de tensiune mult mai mici și sistemele de bus I2C au nevoie pentru a se potrivi la deplasarea nivelului, pentru a permite intercomunicații cu diferite dispozitive de tensiune de interfață de pe același bus. Vitezele de comunicare a datelor au crescut, de asemenea, de la ritmul inițial de 100 kHz până la 5MHz în moduri ultra-rapide, iar schimbarea nivelului trebuie să poată fi adaptată pentru aceste rate de transfer mai mari.

Semnalul I2C cuprinde un singur semnal de date care transportă nivele logice validate de un semnal de ceas. Ambele semnale sunt bidirecționale, comandate de unul sau mai multe master sau slave în funcție de starea sistemului. Pentru a evita contradicții dăunătoare cauzate de ieșiri care se comandă reciproc, bus-ul este comandat de ieșiri open-drain sau open-collector cu rezistoare pull-up.

Figura 1: Ieșirile open-collector împiedică contradicțiile

O ieșire open-drain (bazată pe FET) sau open-collector (bazată pe BJT) este una care nu are o poartă activă cuplată la alimentarea pozitivă. Comutarea OFF a porții de ieșire plasează ieșirea într-o stare de impedanță înaltă. Firul de semnal flotează High, deoarece sarcina stocată de capacitatea bus-ului se descarcă prin rezistența pull-up, așa cum se arată în figura 1.

Viteza unei tranziții între Low și High a magistralei de semnal este prin urmare limitată de timpul necesar pentru sarcina electrică stocată pe capacitatea parazită "C" a firului pentru a se descărca prin rezistența pull-up "R", punctul de 3 dB fiind definit prin ecuația: f3dB = 1/(2π.R.C)

De exemplu, dacă încărcarea capacitivă combinată a magistralei este de 100 pF și rezistența pull-up combinată pe semnalele de pe magistrală este de 1,5 kΩ, punctul de 3 dB este de aproximativ 1 MHz. Acest lucru limitează viteza maximă de date posibilă pe magistrală, dar are avantajul clar că niciodată nu ar trebui să se producă o situație în care ieșirile cu impedanță scăzută se comandă una pe alta, provocând curenți dăunători mari, care trec prin poartă. Natura bidirecțională a semnalelor I2C, variația nivelelor de tensiune a magistralei și cerințele de ieșire open-drain complică considerabil circuitele de translație a nivelului.

Compatibilitatea nivelelor logice

Diferitele nivele logice au tensiuni de prag logice diferite care determină tranziția logică high/low. Diferitele standarde de tensiune produc probleme datorită prezenței joncțiunilor de diode pe intrările și ieșirile dispozitivelor semiconductoare. Nivelele de semnal comandate mai sus decât tensiunea de alimentare forțează dioda să fie condusă într-o stare distructivă numită "latch-up" (blocare).

I2C a respectat în mod tradițional standardele logice de 5V, dar este posibil să lucreze cu multe alte standarde de interfață cu tensiune mai mică. Chiar și atunci când pragurile și regiunile standard ale interfeței se încadrează în intervale acceptabile, marjele de zgomot reduse compromit performanța bus-ului fără o translatare corectă a nivelului logic.

Figura 2: Nivele tipice de tensiuni ale familiei logice

Un sistem de magistrală trebuie să fie compatibil cu cea mai slabă combinație de nivele logice referitoare la dispozitive individuale în funcție de variația dispozitivului și de intervalul de temperatură anticipat. Rețineți că fiecare dispozitiv de pe magistrala comună mărește capacitatea și poate reduce în continuare marjele. Bus-urile single-ended, în special cele cu fire lungi, sunt supuse unor impedanțe la masă sau la sursă, care provoacă oscilația frontului și efecte de salt la masă, care reduc în continuare marjele de nivel.

Utilizarea unui buffer bidirecțional nu poate oferi în mod specific o translatare de tensiune diferită, dar poate contribui la menținerea toleranțelor de tensiune în cazul în care nivelele de semnal sunt compatibile între standarde. Repetoarele I2C oferă, de asemenea, o modalitate de a izola sarcina capacitivă a unui bus, împărțind-o în două, extindând traseele de cabluri sau numărul de dispozitive suportabile într-un sistem. Interfețele I2C sunt foarte tolerante pentru trasee lungi de cablu datorită ratei reduse a datelor, suportului de semnalizare 5V și naturii de open-drain. Aceste caracteristici îl determină să fie folosit în situațiile în care dispozitivele conectate in și out pe magistrala serială adaugă complexitate circuitelor de translatare de nivel și conexiunile expuse adaugă cerința de protecție la descărcări electrostatice (ESD).

Metodă MOSFET discretă de translatare de nivel

Deplasarea nivelului bidirecțional trebuie să se desfășoare în ambele direcții. Metoda cea mai simplă folosește MOSFET-uri, așa cum sunt prezentate în Fig. 3, și descrise mai detaliat în nota de aplicație AN10441. Deși un schimbător de nivel MOSFET este acceptabil pentru standardele de comunicații de la 100 kHz la 400 kHz, acesta nu are performanța necesară pentru modurile de operare mai rapide, datorită limitărilor de frecvență menționate anterior impuse de constantele de timp RC. În cazurile în care se utilizează moduri de lățime de bandă mai mare, sunt necesare dispozitive pentru translatare de nivel speciale.

Figura 3: Translatare de nivel bazată pe MOSFET

Interfețele I2C au margini pozitive limitate de acest efect. Circuitul MOSFET introduce capacități suplimentare parazite (de exemplu, efectul Miller) și nivele de comutare care distorsionează în continuare caracteristicile ambelor fronturi în timpul schimbărilor de direcție. Acest lucru poate cauza probleme în cazul în care interfața logică este marginală deoarece acestea au o regiune de tranziție în jurul pragului de tensiune, unde ieșirea este nedeterminată.

Semnalele care se află în interiorul acestui interval cauzează ceea ce se numește "stări meta-stabile" care provoacă semnal de glitch. Intrările trigger-Schmitt sunt interfețe speciale, cu histerezis de tensiune cauzat de feedback-ul pozitiv din ieșirea porții de intrare. Aceasta crește marja de zgomot și reduce potențialul de metastabilitate datorită semnalelor care se schimbă lent.

De asemenea, pot exista semnale zgomotoase, lente sau nemonotone pe bus-urile seriale I2C, care sunt corectate folosind un algoritm de debounce. Un algoritm de debounce introduce un timp de așteptare în care semnalul de intrare este monitorizat pe o perioadă de timp pentru un nivel de semnal continuu înainte de a schimba, rejectând tranzițiile glitch care apar în această perioadă. Aceasta este o tehnică utilizată cu FPGA-uri și implementări software de tip "bit-banging" pe microcontrolere.

Metode de izolare

Un sistem, așa cum este descris în figura 4, este un sistem neizolat cu conexiune electrică directă între cele două dispozitive, indiferent de translatarea nivelului de tensiune. Deoarece interfețele I2C sunt dezechilibrate și pot avea interconectări lungi de cablu, aceste diferențe de potențial pot duce la curenți de zgomot fals pe semnalele de masă. Masele neizolate pot conduce la condiții de avarie periculoase atunci când se ocupă cu circuite de înaltă tensiune. Interfețele I2C utilizate în aplicații care depășesc limitele de izolare trebuie să respecte standardele de siguranță și necesită izolare galvanică.

Figura 4: Translatarea nivelului neizolat

Metoda obișnuită de izolare electrică a magistralelor I2C încorporează translatarea nivelului ca limită de izolare și permite orice suport de tensiune pe fiecare parte a limitei de izolare. Tehnicile de izolare convenționale includ izolarea fotovoltaică prin optocuploare sau dispozitive care modulează informația semnalului de pe magistrala serială printr-o punte capacitivă sau transformator inductiv.

Toate acestea au tendința de a împărtăși caracteristica comună de desfacere/recombinare a semnalelor bidirecționale în două căi unidirecționale. Unele aplicații prelungesc lungimea cablurilor suportate și cresc imunitatea la zgomot prin convertirea semnalelor la un standard diferențial (ca RS485). Ele pot utiliza tensiuni de semnalizare mai mari.

Fig. 5: Izolarea multiplă I2C cu nivele independente de tensiune

Izolarea optoelectrică a magistralei I2C, ca în circuitul descris în figura 5, este capabilă să funcționeze la viteze mai mari de 1 Mbps. Nota de aplicație AN10364 de la NXP este o descriere cuprinzătoare a diferitelor topologii pentru interfață între dispozitive I2C cu diferite potențiale și tensiuni de masă locale. Topologii similare se găsesc în aplicații care necesită comunicații de la primar la secundar în circuitele de alimentare AC de la rețea izolate, echipamente medicale și Power of Ethernet (PoE).

Translatoare bidirecționale de nivel de tensiune

Translatoarele de tensiune bidirecționale pot funcționa pe o magistrală I2C. Este important să vă asigurați că dispozitivul este orientat corect pe magistrală - ajustând nivelul de tensiune al magistralei la partea corectă a translatorului. Majoritatea translatoarelor vor specifica ca o parte să fie mai mare decât o tensiune minimă (de obicei în jur de 1V) ca cealaltă parte. Ambele părți vor avea în continuare nevoie de rezistoare pull-up pentru o funcționare corectă I2C, așa cum este descris în nota de aplicație AN11127.

Fig. 6: Translator de nivel bidirecțional în circuit I2C

Astfel de dispozitive sunt excelente pentru a susține conexiunea I2C de la periferice slave 5V și 3V3 la grupuri de I/O de joasă tensiune a FPGA sau microcontrolere. Dispozitive de translatare bidirecționale de nivel tensiune dual open-drain, precum NVT2001, simplifică arhitecturile de bus cu mai multe tensiuni datorită numărului redus de componente, flexibilității ridicate a soluției, protecției integrate ESD și pachetelor fizice minuscule.

Ele servesc, de asemenea, pentru a asigura izolarea între elemente mai lente și mai rapide pe o magistrală I2C, permițându-le să interopereze în aceeași schemă. Controlarea pinului de activare a deconectării magistralelor mai lente în timpul comunicațiilor rapide asigură coexistența. Aceste dispozitive au o întârziere de propagare mai mică de 1,5 ns (fără încărcarea bus-ului) și o performanță de ceas de 33 MHz într-un sistem open-drain. Suportul de înaltă frecvență permite soluții pentru moduri de operare extrem de rapide pentru a încorpora deplasarea de nivel și pentru a crește în viitor posibilitatea standardelor interfeței I2C chiar cu viteză mai mare.