16.11. Rezistoare pull-up


Porțile logice digitale pot fi utilizate pentru conectarea la circuite sau dispozitive externe, dar trebuie să aveți grijă ca intrările sau ieșirile să funcționeze corect.

Porțile logice digitale moderne, circuitele IC și microcontrolerele conțin mai multe intrări, numite "pini", precum și una sau mai multe ieșiri și aceste intrări și ieșiri trebuie setate corect, fie HIGH, fie LOW pentru ca circuitul digital să funcționeze corect.

Știm că porțile logice sunt cel mai elementar bloc de construcție al oricărui circuit logic digital și că prin utilizarea combinațiilor celor trei porți de bază, poarta AND, poarta OR și poarta NOT, putem construi circuite combinaționale destul de complexe. Dar fiind digitale, aceste circuite nu pot avea decât una din cele două stări logice, numite starea logică "0" sau starea logică "1".

Aceste stări logice sunt reprezentate de două nivele de tensiune diferite, cu orice tensiune sub un nivel privită ca "0" logic, și orice tensiune deasupra altui nivel considerată "1" logic. De exemplu, dacă cele două nivele de tensiune sunt 0V și + 5V, atunci 0V reprezintă "0" logic și + 5V reprezintă "1" logic.

Dacă intrările la o poartă sau circuit logic digital nu se încadrează în intervalul în care poate fi sesizat fie ca un "0" logic, fie ca un "1" logic, atunci circuitul digital poate declanșa fals deoarece poarta sau circuitul nu recunoașteți valoarea corectă de intrare, deoarece HIGH poate să nu fie suficient de mare sau LOW-ul să nu fie suficient de scăzut.

De exemplu, luați în considerare circuitul digital din stânga. Cele două comutatoare, "a" și "b", reprezintă intrările pentru o poartă logică generică. Când comutatorul "a" este închis (on), intrarea "A" este conectată la masă, (0 V) sau nivel logic "0", și la fel, dacă comutatorul "b" este închis (on), intrarea B este conectată la masă, nivel logic "0" (low) și aceasta este condiția corectă de care avem nevoie.

Dar, când comutatorul "a" este deschis (off), care va fi valoarea tensiunii aplicată la intrarea "A", High sau Low?. Presupunem că va fi + 5V (High), deoarece comutatorul "a" este circuit deschis și, prin urmare, intrarea "A" nu este scurtcircuitată la masă, dar acest lucru nu poate fi cazul. Deoarece intrarea nu este conectată efectiv la nici o condiție definită HIGH sau LOW, ea are potențialul de a "pluti" între 0 V și + 5V (Vcc), permițând intrării să se auto-polarizeze la orice nivel de tensiune, fie că reprezintă o condiție HIGH fie o condiție LOW.

Această situație incertă poate determina ca intrarea digitală la "A" să rămână la un nivel logic "0" (low) cu comutatorul deschis, când avem nevoie de un "1" logic, (high), determinând poarta logică să comute fals ieșirea la "Q". De altfel, la un moment dat, acest semnal de intrare, flotant și slab, și-ar putea schimba cu ușurință valoarea la cea mai mică interferență sau zgomot de la intrările vecine sau chiar ar putea oscila, făcând astfel poarta practic inutilizabilă. Aceeași situație este valabilă și în ceea ce privește comutarea intrării "B".

Deci, pentru a împiedica comutarea accidentală a circuitelor digitale, toate intrările nelegate numite "intrări flotante" ar trebui să fie legate la un "1" logic sau "0" logic adecvate circuitului. Putem realiza cu ușurință acest lucru prin utilizarea celor numite în mod obișnuit rezistoare pull-up și rezistoare pull-down pentru a da pinului de intrare o stare implicită definită, chiar dacă comutatorul este deschis, închis sau nu există nimic conectat la acesta.

Când construiți circuite electronice digitale, în general veți avea niște porți de rezervă sau dispozitive de blocare într-un singur pachet IC, sau proiectarea circuitului are ca rezultat că nu toate intrările de porți cu multiple intrări sunt folosite. Aceste intrări logice neutilizate pot fi legate între ele sau conectate la o tensiune fixă, folosind un rezistor de înaltă valoare fie la tensiunea Vcc, cunoscută sub numele de pull-up sau printr-un rezistor cu valoare redusă la 0V (GND), cunoscut sub numele de pull-down. Aceste intrări neutilizate nu trebuie lăsate niciodată să fie flotante.

Rezistoare pull-up

Cea mai obișnuită metodă de a se asigura că intrările circuitelor și porților logice digitale nu pot să se auto-polarizeze și să floteze este fie conectarea pinilor nefolosiți direct la masă (0V) pentru o intrare constantă Low, (porțile OR și NOR) sau direct la Vcc (+ 5V) pentru o intrare constantă High "1" (porți AND și NAND). Ok, să vă uitați din nou la cele două intrări comutate de deasupra.

De data aceasta, pentru a opri cele două intrări A și B, de la "flotare" atunci când comutatoarele corespunzătoare "a" și "b" sunt deschise (off), cele două intrări sunt conectate la alimentarea cu + 5V.

S-ar putea să vă gândiți că acest lucru ar funcționa cum trebuie deoarece atunci când comutatorul "a" este deschis (off), intrarea este conectată la Vcc (+ 5V) și când comutatorul este închis (on), intrarea este conectată la masă ca înainte, deci intrările "A" sau "B" au întotdeauna o stare implicită, indiferent de poziția comutatorului.

Dar, aceasta este o condiție proastă deoarece, atunci când unul dintre comutatoare este închis (on), va exista un scurtcircuit direct între alimentarea + 5V și masă, rezultând un flux excesiv de curent care arde siguranța, sau deteriorează circuitul. O modalitate de a depăși această problemă este utilizarea unui rezistor pull-up conectat între pinul de intrare și șina de alimentare de + 5V, așa cum se arată.

Aplicație pentru rezistoare pull-up

Prin utilizarea acestor două rezistoare pull-up, câte unul pentru fiecare intrare, când comutatorul "a" sau "b" este deschis (off), intrarea este conectată efectiv la șina de alimentare + 5V prin rezistorul pull-up. Rezultatul este că, deoarece există curent de intrare foarte mic în intrarea porții logice, foarte puțină tensiune este căzută pe rezistorul pull-up, astfel încât aproape toate tensiunea de alimentare de + 5V este aplicată la pinul de intrare, creând o condiție HIGH, de "1" logic.

Atunci când comutatoarele "a" sau "b" sunt închise (on), intrarea este scurtcircuitată la masă (low), creând o condiție "0" logic ca înainte la intrare. Dar, de data aceasta nu am scurtcircuitat șina de alimentare, deoarece prin rezistorul pull-up trece numai un mic curent (conform legii lui Ohm) prin comutatorul închis la masă.

Prin utilizarea unui rezistor pull-up în acest fel, intrarea are întotdeauna o stare logică implicită, fie "1", fie "0", High sau Low, în funcție de poziția comutatorului, realizând astfel funcția de ieșire corespunzătoare a porții la "Q" și, prin urmare, împiedicând intrarea să se autopolarizeze sau să floteze, oferindu-ne exact condiția de comutare pe care o cerem.

În timp ce conexiunea dintre Vcc și o intrare (sau ieșire) este metoda preferată pentru utilizarea unui rezistor pull-up, se pune întrebarea cum se calculează valoarea rezistenței necesare pentru a asigura funcționarea corectă a intrării.

Calcularea valorii rezistorului pull-up

Toate porțile, circuitele și microcontrolerele logice digitale sunt limitate nu numai de tensiunea de funcționare, ci și de capacitatea de a furniza sau absorbi curent a fiecărui pin de intrare. Circuitele logice digitale funcționează utilizând două stări binare reprezentate în mod normal de două tensiuni distincte: o tensiune înaltă VH pentru "1" logic și o tensiune joasă VL pentru "0" logic. Dar în cadrul fiecăreia dintre aceste două stări de tensiune există o gamă de tensiuni care definesc tensiunile superioare și inferioare ale acestor două stări binare.

De exemplu, pentru seria de porți logice digitale TTL 74LSxxx, sunt afișate intervalele de tensiune reprezentând un nivel logic "1" și un nivel logic "0".

unde: VIH(min) = 2,0 V este tensiunea minimă de intrare garantată a fi recunoscută ca intrare logică "1" (High) și VIL(max) = 0,8 V este tensiunea maximă de intrare garantată a fi recunoscută ca intrare logică "0" (Low).

Cu alte cuvinte, semnalele de intrare TTL 74LSxxx între 0 și 0,8 V sunt considerate "LOW", iar semnalele de intrare între 2,0 și 5,0 V sunt considerate "HIGH". Orice tensiune între 0,8 și 2,0 volți nu este recunoscută.

Atunci când porțile logice sunt conectate împreună, curentul curge între ieșirea unei porți logice și intrarea alteia. Cantitatea de curent cerută de o intrare de bază a porții logice TTL depinde de faptul că intrarea este "0" logic (low) sau "1" logic (high), deoarece aceasta creează o acțiune de furnizare curent pentru un "0" logic și o acțiune de absorbție curent pentru un "1" logic.

Când intrarea porții logice este HIGH, un curent curge în intrarea TTL deoarece intrările acționează în mod fundamental ca o cale conectată direct la masă. Acest curent de intrare, IIH(max) este pozitiv în valoare deoarece curge "înspre" poartă și pentru majoritatea intrărilor TTL 74LSxxx are o valoare de 20 μA.

Atunci când intrarea porții logice este LOW, curentul iese din intrarea TTL, deoarece intrarea acționează practic ca o cale conectată direct la Vcc. Acest curent de intrare, IIL(max) este negativ în valoare, deoarece curge "în afara" porții și pentru majoritatea intrărilor TTL 74LSxxx, are o valoare de -400 μA, (-0,4 mA).

Rețineți că valorile tensiunilor și curenților HIGH și LOW diferă între familiile logice TTL și sunt de asemenea mult, mult mai mici pentru familiile logice CMOS. De asemenea, cerințele de tensiune de intrare și de curent pentru microcontrolere, PIC, Arduino, Raspberry Pie, etc vor fi, de asemenea, diferite, așa că vă rugăm să consultați mai întâi fișele lor de date.

Prin cunoașterea informațiilor de mai sus, putem calcula valoarea maximă a rezistorului pull-up necesară pentru o singură poartă logică din seria TTL 74LS ca:

Valoarea rezistorului pull-up la o singură poartă

Deci, folosind Legea lui Ohm, rezistența pull-up maximă necesară pentru a cădea 3 volți pentru o singură poartă logică din seria TTL 74LS ar fi de 150 kΩ. În timp ce această valoare calculată ar funcționa, aceasta nu lasă loc de eroare, deoarece căderea de tensiune pe rezistor este la maximul ei, în timp ce curentul de intrare este la minimum.

În mod ideal, am dori ca un "1" logic să fie cât mai aproape de Vcc, pentru a garanta 100% că poarta vede o intrare HIGH (1-logic) prin rezistența pull-up. Reducerea valorii rezistive a acestui rezistor pull-up ne va da o marjă de eroare mai mare dacă toleranța rezistorului sau a tensiunii de alimentare nu va fi așa calculată. Totuși, nu vrem ca valoarea rezistorului să fie prea mică, deoarece acest lucru ar duce la creșterea debitului de curent în poartă, crescând disiparea de putere.

Deci, dacă ne asumăm o cădere de tensiune de numai un volt (1,0 V) pe rezistor, dând tensiunea de intrare la 4 volți, un calcul rapid ne-ar da o singură valoare de rezistor pull-up de 50 kΩ. Reducerea în continuare a valorii rezistive va produce o cădere de tensiune mai mică, dar va crește curentul. Atunci, vedem că, deși există o valoare rezistivă maxim admisă, valoarea rezistenței pentru rezistoarele pull-up nu este de obicei critică, cu valori de rezistență cuprinse între 10 k și 100 k ohmi acceptabile.

Acest exemplu simplu de mai sus ne oferă valoarea maximă a rezistorului pull-up necesar pentru a polariza o singură poartă TTL. Dar putem folosi același rezistor pentru a polariza multiple intrări la o valoare logică "1". De exemplu, să presupunem că am construit un circuit digital și că există zece intrări logice nefolosite. Deoarece o singură poartă TTL 74LS standard are un curent de intrare IIH(max) de 20 μA (numit un fun-in de 1), atunci zece porți logice TTL ar necesita un curent total de 10 x 20 μA = 200 μA reprezentând un fun-in de 10.

Deci, valoarea maximă rezistivă a rezistorului pull-up necesar pentru a alimenta zece intrări neutilizate ar fi calculată după cum urmează:

Valoarea rezistorului pull-up la porți multiple

Aici fun-in este dat ca 10, dar dacă "n" intrări TTL sunt conectate împreună atunci curentul prin rezistență ar fi de "n" ori IIH(max). Din nou ca și înainte, această rezistență de 15 kΩ poate fi valoarea exactă calculată, dar nu lasă loc de eroare, astfel reducând căderea de tensiune la un volt (sau orice valoare dorită) oferă o valoare rezistivă de numai 5 kΩ.

Rezistor pull-up. Exemplul nr. 1

Două porți TTL 74LS00 NAND împreună cu un întrerupător cu două căi cu un singur pol vor fi folosite pentru a realiza un simplu flip-flop bistabil Set-Reset. Calculați: 1). Valorile maxime ale rezistorului pull-up dacă tensiunea reprezentând o intrare logică HIGH trebuie menținută la 4,5 volți atunci când comutatorul este deschis și 2). Curentul care trece prin rezistor atunci când comutatorul este închis (presupune rezistență zero la contact). Desenați și circuitul.

Date: Vcc = 5V, VIH = 4,5V și IIH(max) = 20 μA

1). Valoarea rezistorului pull-up, RMAX

2). Curentul rezistorului IR

Circuit bistabil de setare-resetare

Rezistoare pull-down

Un rezistor pull-down funcționează în același mod ca și rezistorul pull-up precedent, cu excepția cazului în care intrarea de porți logice este legată la masă, nivel logic "0" (low) sau poate merge HIGH prin utilizarea unui comutator mecanic. Această configurație a rezistorului pull-down este utilă în special pentru circuitele digitale precum latches, contoare și flip-flop care necesită un declanșator unic pozitiv atunci când un comutator este momentan închis pentru a provoca o schimbare de stare.

În timp ce se pare că funcționează în același mod ca și rezistorul pull-up, valoarea rezistivă a unui rezistor pasiv pull-down este mai critică cu porți logice TTL decât cu porți similare CMOS. Acest lucru se datorează faptului că o intrare TTL furnizează mult mai mult curent în afara intrării sale, în starea ei LOW.

De mai sus am văzut că nivelul de tensiune maximă care reprezintă un "0" logic (low) pentru o poartă logică din seria TTL 74LSxxx este între 0 și 0,8 volți, (VIL(MAX) = 0,8 V). De asemenea, atunci când este LOW, poarta furnizează curent la valoarea de 400 μA (IIL = 400 μA). Valoarea maximă a rezistorului pull-down pentru o singură poartă logică TTL este, prin urmare, calculată ca:

Valoarea rezistorului pull-down la o singură poartă

Deci, valoarea maximă a rezistorului pull-down se calculează ca 2 kΩ. Din nou, ca și în cazul calculelor rezistorului pull-up, această valoare a rezistorului de 2 kΩ nu lasă loc de eroare, deoarece căderea de tensiune este la maxim. Dacă rezistența este prea mare, căderea de tensiune pe rezistorul pull-down poate avea ca rezultat o tensiune de intrare a porții dincolo de domeniul normal de tensiune LOW, astfel încât pentru a asigura o corectă comutare este mai bine să ai o tensiune de intrare de 0,5 volți sau mai puțin.

Prin urmare, dacă ne asumăm o cădere a tensiunii de numai 0,4 volți pe rezistor, un calcul rapid ne-ar da o singură valoare a rezistorului pull-down de 1 kΩ. Reducerea în continuare a valorii rezistive va produce o cădere a tensiunii mai mică, care va lega intrarea mai departe la masă (Low). Această valoare a fișei de date de 400 μA sau 0,4 mA (IIL) este valoarea minimă a curentului LOW, dar ea poate fi mai mare.

De asemenea, conectarea intrărilor împreună va duce la un curent mai mare prin rezistor. De exemplu, un fun-in de 10 va rezulta în 10 x 400 μA = 4,0 mA necesitând o rezistență pul-down de 100 Ω.

Dar s-ar putea să te gândești, de ce să folosești un rezistor pull-down la toate atunci când o conexiune directă la masă (0 V) ar produce LOW necesar? O conexiune directă la masă fără rezistorul pull-down va funcționa cu siguranță în majoritatea cazurilor, dar deoarece intrarea porților este legată permanent la masă, utilizarea unui rezistor limitează curentul care iese din intrare, reducând astfel pierderile de energie, menținând în același timp o condiție de "0" logic.

Ieșiri open-collector

Până acum am văzut că putem folosi fie un rezistor pull-up fie un rezistor pull-down pentru a controla nivelul de tensiune al unei porți logice. Dar putem folosi rezistoare pull-up la ieșirea unei porți pentru a permite conectarea diferitelor tehnologii de poartă, de exemplu TTL la CMOS sau pentru aplicații de comandă a liniei de transmisie care necesită curenți și tensiuni mai mari.

În scopul de a depăși acest lucru, unele porți logice sunt fabricate cu colectorul schemei de ieșire internă a porților lăsat deschis, ceea ce înseamnă că poarta logică nu comandă de fapt ieșire HIGH, doar LOW, deoarece este sarcina rezistorului extern pull-up să facă acest lucru. Un exemplu în acest sens este poarta NAND TTL 74LS01, Quad cu 2 intrări care are ieșiri colector deschis, spre deosebire de poarta NAND standard TTL 74LS00, Quad cu 2 intrări.

Ieșirile open colector (OC), sau open-drain pentru CMOS, sunt utilizate în mod obișnuit în IC-urile cu buffere/inversoare/ drivere (TTL 74LS06, 74LS07), permițând o capabilitate de ieșire mai mare pentru curent și/sau tensiune decât ar obține cu porți logice obișnuite. De exemplu, pentru a comanda o sarcină mare, cum ar fi un indicator LED, un releu mic sau motor DC. În orice caz, principiul și utilizarea rezistorului pull-up sunt aproape la fel ca la intrare.

Porțile logice, microcontrolerele și alte astfel de circuite digitale care au ieșiri open-colector sunt incapabile să-și tragă ieșirile HIGH deoarece nu există o cale internă la tensiunea de alimentare (Vcc). Această condiție înseamnă că ieșirea lor este fie legată la pământ când este LOW, fie flotantă atunci când este HIGH, deci trebuie conectat un rezistor extern pull-up (Rp) de la terminalul open-colector al tranzistorului la sursa Vcc.

Cu un rezistor pull-up conectat, ieșirea funcționează în același mod ca o poartă logică normală în care dacă tranzistorul de ieșire este OFF (deschis), ieșirea este HIGH și atunci când tranzistorul este ON (închis), ieșirea este LOW. Astfel, tranzistorul comută ON pentru a trage ieșirea la un nivel LOW.

Mărimea rezistorului pull-up depinde de sarcina conectată și de căderea de tensiune pe rezistor atunci când tranzistorul este OFF. Când ieșirea este LOW, tranzistorul trebuie să fie capabil să absoarbă curentul de sarcină prin rezistorul pull-up. De asemenea, când ieșirea este HIGH, curentul prin rezistorul pull-up trebuie să fie suficient de mare pentru orice este conectat la acesta.

Așa cum am văzut anterior cu intrarea, ieșirea unei porți logice digitale operează folosind două stări binare reprezentate de două tensiuni distincte: o tensiune înaltă VH pentru "1" logic și o tensiune joasă VL pentru "0" logic. În fiecare din aceste două stări de tensiune există o gamă de tensiuni care definesc tensiunile lor superioare și inferioare.

VOH (min) este tensiunea de ieșire minimă garantată a fi recunoscută ca o ieșire logică "1" (High), iar pentru TTL aceasta este dată la 2,7 volți. VOL (max) este tensiunea de ieșire maximă garantată a fi recunoscută ca o ieșire "0" logic (Low) iar pentru TTL aceasta este dată ca 0,5 volți. Cu alte cuvinte, tensiunile de ieșire TTL 74LSxxx între 0 și 0,5V sunt considerate "LOW", iar tensiunile de ieșire între 2,7 și 5,0 V sunt considerate "HIGH".

Deci, atunci când se utilizează porți logice cu colector deschis, valoarea rezistorului pull-up cerută este determinată din următoarea ecuație:

Valoarea rezistorului pull-up pentru open-colector

unde valorile pentru un 7401 open-collector NAND sunt date ca: Vcc = 5 V, VOL = 0,5 V și IOL(max) = 8 mA. Rețineți că este important să se calculeze un rezistor pull-up Rp adecvat, deoarece curentul prin rezistor nu trebuie să depășească IOL(max).

Am spus mai devreme că porțile logice open-colector sunt ideale pentru a comanda sarcini care necesită nivele mai mari de tensiune și curent, cum ar fi un indicator LED. TTL 74LS06 Hex Inverter Buffer/Driver are un rating IOL(max) de 40 mA (în loc de 8 mA pentru 74LS01) și o VOH(max) de 30 V în loc de 5 V obișnuit (dar IC însuși TREBUIE să utilizeze o sursă de 5 V). Deci, 74LS06 ne va permite să comandăm o sarcină de până la 40 mA de curent.

Rezistor pull-up. Exemplul nr. 2

Un 74LS06 Hex Inverter Driver este necesar pentru a controla un singur indicator LED roșu de la o sursă de 12 volți. Dacă LED-ul necesită 15 mA la cădere de tensiune de 1,7 V și VOL a HEX inversorului când este complet ON este de 0,1 volți, se calculează valoarea rezistorului de limitare a curentului necesar pentru a comanda LED-ul.

Putem folosi drivere cu colector deschis într-un mod similar pentru a comanda relee electromecanice mici, lămpi sau motoare DC, deoarece aceste dispozitive necesită de obicei 5 V sau 12 V sau mai mult, la un curent de aproximativ 10-20 mA pentru a funcționa corect.

Două sau mai multe ieșiri de colector deschis ale porților TTL pot fi conectate direct împreună și legate printr-un singur rezistor pull-up extern. Rezultatul este că ieșirile sunt efectiv AND împreună, deoarece combinația se comportă ca și cum porțile ar fi conectate la o poartă AND. Acest tip de configurație se numește logică AND cablată.

Rezumat Rezistor pull-up

Am văzut aici în acest tutorial despre rezistoarele pasive pull-up și pull-down care, atunci când sunt lăsate în circuit deschis, intrările de porți logice digitale se pot auto-polariza sau flota la orice nivel logic pe care îl aleg și multe erori de comutare pot fi legate de pinii de intrare nelegați și flotanți.

Un rezistor pull-up conectează pinii de intrare neutilizați (porțile AND și NAND) la tensiunea de alimentare DC (Vcc) pentru a menține intrarea dată HIGH. Un rezistor pull-down conectează pinii de intrare neutilizați (porțile OR și NOR) la masă, (0V) pentru a păstra intrarea dată LOW. Valoarea rezistenței pentru un rezistor pull-up nu este de obicei critică, ci trebuie să mențină tensiunea pinului de intrare mai mare de VIH. Utilizarea rezistoarelor pull-up de 10 kΩ este comună, dar valorile pot varia de la 1 k la 100 kohmi.

Rezistoarele pull-down sunt puțin mai critice din cauza nivelului scăzut al tensiunii de intrare VIL(max) și a curentului IIL mai mare. Utilizarea rezistoarelor pull-down de 100 Ω este cea mai obișnuită, dar pot varia în valoare rezistivă de la 50 până la 1 kohm.

Porțile logice digitale cu ieșiri open-collector (în cazul logicii TTL) sau open-drain (în cazul logicii CMOS) trebuie să se conecteze la un rezistor pull-up extern între pinul lor de ieșire și sursa de alimentare DC pentru a face poarta logică să îndeplinească funcția logică dorită.

Avantajul folosirii porților open-collector/open-drain este în capacitatea lor de a comuta tensiuni și curenți mai mari sau capacitatea lor de a furniza o operație AND cablată. Unele porți open-collector, cum ar fi 74LS06, sunt capabile să comande sarcini mai mari, deoarece ieșirile lor pot fi conectate la surse de până la 30 volți printr-un rezistor pull-up extern.