Chiarimento della resistenza di pull-up


12

Sono abbastanza nuovo per l'elettronica e faccio fatica a capire il principio della "resistenza di pull-up". Ho letto molti articoli a riguardo, e penso di averlo ottenuto, ma non sono sicuro al 100%, quindi ho una domanda. In questo articolo , dopo la prima immagine, si dice:

Quando viene premuto il pulsante momentaneo, collega il pin I / O a Vcc e il microcontrollore registra l'ingresso come alto.

Ma non capisco. Dov'è VCC? Da quello che vedo, non c'è fonte di alimentazione su questo schema, solo un microcontrollore collegato a un pulsante che sono entrambi collegati a terra, quindi come può esserci tensione in questo circuito?


Penso che si riferiscano alle immagini 2 e 3 quando menzionano Vcc, quelle immagini hanno VCC.
axk,

2
Ricorda che U1 è un gate logico, che implica connessioni di potenza e di terra sull'IC reale. Questi non sono disegnati per semplificare lo schema elettrico.
Ryan Griggs,

5
Direi che è un errore nell'articolo. Una volta premuto il pulsante, collega l'ingresso del gate a un GND, non a Vcc.
Eugene Sh.

Sono d'accordo con Eugene, è un articolo scadente. Trova una fonte migliore.
pipe

2
Sembra che l'autore di quel documento possa aver cambiato idea tra il disegno e la scrittura del testo. Dovrebbe essere indicato "... Pin I / O su terra e la porta NOT registra l'ingresso come basso." L'intero paragrafo è generalmente confuso.
Peter Bennett,

Risposte:


32

L'articolo sembra piuttosto confuso: il testo e le cifre non corrispondono. Proverò a presentare qui gli stessi tre schemi, con la speranza di una spiegazione più corrispondente.

Supponiamo che U1 sia il tuo microcontrollore e P1 sia un pin I / O configurato come input. (Potrebbe essere qualsiasi gate logico, davvero.) Altre connessioni a U1 non sono così rilevanti, quindi non sono raffigurate, ma presumono che abbia connessioni di potenza e altre necessità.

(1) Se si preme il pulsante, la porta P1 è collegata a terra e rileverà un livello logico basso. Ma quando il pulsante viene rilasciato, la porta non è connessa da nessuna parte, ma è mobile . Non è presente una tensione definita, quindi anche un rumore minore può far sì che l'ingresso digitale passi da un valore all'altro. Potrebbe anche oscillare e causare un aumento del consumo energetico. Non bene.

(2) Ora, quando il pulsante non viene premuto, la porta rileverà un livello elevato, poiché è collegata direttamente a Vcc. Ma se si preme il pulsante, Vcc viene cortocircuitato a terra e la fonte di alimentazione probabilmente brucerà e morirà. Persino peggio.

(3) Qui, se il pulsante non viene premuto, la porta rileverà di nuovo un livello logico elevato: viene tirato in alto attraverso il resistore. (Non c'è perdita di tensione sul resistore, poiché l'impedenza dell'ingresso digitale è molto alta, e quindi la corrente alla porta è circa zero.)

Quando si preme il pulsante, la porta viene collegata direttamente a terra, quindi rileva un livello basso. Ora, una corrente fluirà da Vcc a terra, ma il resistore la limiterà a qualcosa di sensato. Questo è buono.

In questo schema, un pulsante non compresso indica un valore elevato (1) e un pulsante premuto indica un valore basso (0). Questa si chiama logica attivo-basso . Scambiando la resistenza e l'interruttore si inverte questo, in modo che un pulsante non compresso leggesse come basso (0) e un pulsante premuto come alto (1). ( logica active-high .)

schematico

simula questo circuito - Schema creato usando CircuitLab


penso che questa sia una buona spiegazione per un principiante all'elettronica per capire l'argomento. +1 per diagramma e linguaggio semplice.
Mark Ch

Quindi, se ti capisco correttamente, la cosa che ho trascurato è il fatto che U1 è effettivamente collegato a Vcc, perché nel primo schema, se il pulsante viene premuto, può passare una corrente? Una seconda domanda, quando dici al punto 3 che "ma poiché l'impedenza di ingresso di una porta I / O digitale è piuttosto alta, non importa", intendi che 0 corrente andrà a P1 o corrente così piccolo (a causa dell'impedenza dell'ingresso) che sarà quasi uguale a 0 => livello basso? Grazie comunque per la bella spiegazione! Contrassegno il tuo post come risposta a causa degli schemi :-p
ssougnez

1
"may not sense" ... Diciamo che l'input potrebbe "fluttuare" e vagare in una gamma di potenziali. La resistenza di pull-up tira l'ingresso "alto". NB. la corrente non ha importanza (sì, è piccola), solo la tensione. Le cose diventano un po 'più complesse per i circuiti soggetti a condizioni di "razza".
mckenzm,

@mckenzm Ora capisco. E hai detto che ciò che conta è la tensione, quindi significa che il rumore ambientale potrebbe creare una tensione abbastanza alta da mettere il cancello in uno stato elevato?
ssougnez,

O solo il processo di produzione, questo è molto comune per i chip integrati sulle carte di credito ora. I lettori hanno resistori pull up. Di tanto in tanto è un punto di fallimento.
mckenzm,

11

Un resistore pull-up o pull-down "trattiene" l'input ad un livello specifico quando non c'è input al pin, invece di consentire che l'ingresso fluttui.

Se si considera la Figura 1 nel disegno, avere l'interruttore aperto non fornisce alcun collegamento elettrico al pin, consentendo così interferenze vaganti, perdite interne ecc. Che influenzano la tensione del pin di ingresso. Queste influenze esterne possono far sì che l'ingresso sia interpretato come un valore fluttuante, causando oscillazioni indesiderate o uscite impreviste.

Pertanto, per garantire che il pin sia mantenuto in uno stato "noto", deve essere sempre collegato a VCC o GND. Vedere la figura 2. Tuttavia, c'è un problema: se si collega il pin a VCC per mantenerlo in uno stato "alto", quindi collegare l'interruttore a GND e premere l'interruttore, si crea un cortocircuito diretto! O brucerai la miccia, danneggerai l'alimentazione, brucerai qualcosa, ecc.

Quindi, invece di collegare l'ingresso direttamente a VCC o GND, è possibile collegare l'ingresso tramite una resistenza pull-up / pull-down. Nella figura 3, usano una resistenza pull-up, che collega l'ingresso a VCC.

Quando non è presente alcun altro ingresso sul pin, quasi la corrente zero scorre attraverso la resistenza di pull-up. Quindi c'è una caduta di tensione molto piccola su di esso. Ciò consente di vedere l'intera tensione VCC sul pin di ingresso. In altre parole, il pin di input viene mantenuto "alto".

Quando l'interruttore è chiuso, l'ingresso e la resistenza pull-up sono collegati a GND. Parte della corrente inizia a fluire attraverso il pull-up. Ma poiché è una resistenza molto più alta rispetto al filo che porta a GND, quasi tutta la tensione scende attraverso la resistenza di pull-up, causando la presenza di ~ 0 volt sul pin di ingresso.

Dovresti selezionare un resistore di valore relativamente alto per limitare il flusso di corrente a un valore ragionevole, ma non troppo alto per superare la resistenza interna dell'ingresso.

Le resistenze pull-up ti consentono di mantenere l'ingresso in uno stato noto quando non è presente alcun ingresso, ma ti danno comunque la flessibilità di immettere un segnale senza creare un corto.


Grazie per questa spiegazione, è davvero chiaro. Ho avuto molte risposte a questa discussione e, sfortunatamente, posso selezionarne solo una come risposta accettata. Ne ho scelto un altro per via degli schemi, ma anche il tuo è molto chiaro. L'ho votato.
ssougnez,

6

L'articolo è confuso, ma ecco l'essenza. L'inverter ha un'impedenza di ingresso elevata e non deve essere lasciato flottante in quanto potrebbe assumere uno 0 logico o 1 logico o oscillare tra i due.

schematico

simula questo circuito - Schema creato usando CircuitLab

  • (a) Senza un pull-up avremmo bisogno di un commutatore per alternare tra Vss e GND (terra). Questa disposizione cambierebbe saldamente l'ingresso in un modo o nell'altro, ma c'è un problema durante la commutazione dei contatti dell'interruttore quando l'ingresso è momentaneamente mobile. Ciò potrebbe causare oscillazioni in presenza di interferenze elettromagnetiche (EMI), ad esempio.
  • (b) risolve due problemi: utilizza un interruttore più semplice e in assenza della chiusura dell'interruttore l'ingresso viene tirato in alto. Quando l'interruttore è chiuso, l'ingresso viene abbassato.
  • (c) mostra la stessa disposizione al contrario. Interruttore aperto tira basso.

La disposizione in (b) è più comune poiché molti dispositivi logici IC hanno resistori di pull-up interni che si traducono in un conteggio dei componenti e un'area PCB inferiori quando si utilizza questa disposizione.

Si noti che la potenza e la terra sono assunte in molti schemi. Nel caso delle porte logiche, ad esempio, esiste una connessione Vss e di terra comune per 2, 4 o 6 porte logiche. Non avrebbe senso mostrarli per ogni gate in modo che vengano assunti o mostrati separatamente con i loro condensatori di disaccoppiamento di accompagnamento altrove nello schema.


Grazie per questa bella risposta Ho una domanda su qualcosa che hai detto però. "La disposizione in (b) è più comune come ...". Non è "un problema" avere una resistenza pull-up anziché una pull-down? In effetti, il pull-up assorbirà sempre corrente fino a quando non viene premuto il pulsante e possiamo supporre che la maggior parte delle volte il pulsante non venga premuto, quindi significherebbe che il circuito assorbirà corrente mentre è inattivo.
ssougnez,

@ssougnez: piuttosto che pubblicare domande come commenti, è generalmente meglio pubblicare domande come nuove nuove domande di alto livello - oppure è già stata data risposta a electronics.stackexchange.com/questions/113009/… o electronics.stackexchange.com/ domande / 254037 / ... ?
davidcary,

@ssougnez Entrambe le resistenze assorbiranno la corrente assorbita dall'ingresso. E la corrente verrà assorbita quando l'interruttore è chiuso, di nuovo, per quanto l'input tira. Dipende dall'aspetto del circuito di ingresso.
David Schwartz,

@ssougnez: alcuni di questi sono per motivi storici. Gli input sui chip TTL , ad esempio, non hanno assorbito corrente se lasciati fluttuanti. Tirare in basso assorbiva un po 'di corrente. Ciò significava che era più efficiente dal punto di vista energetico ridurre al minimo quando richiesto. I design moderni utilizzano input basati su FET che hanno la stessa impedenza di input quando sono alti o bassi, quindi non fa alcuna differenza. In genere è più facile e più preciso passare a terra piuttosto che passare all'alimentazione positiva, in particolare quando sono coinvolti binari di alimentazione a tensione mista.
Transistor

4

Bene, non è un gate NOT quindi immagino che dovremmo immaginare un pin I / O collegato in cui quel LED viene mostrato in modo errato senza un resistore in serie. Quando si collega l'ingresso a terra, l'output dovrebbe andare su Vcc (che può anche essere chiamato Vdd, che è un'altra storia).

È abbastanza normale non mostrare i pin di alimentazione sui gate logici. Questo serve solo a ridurre il disordine nello schema. Notare che non viene mostrato neanche il pin di alimentazione di terra sul gate logico.

Questo diventa un po 'confuso (nascondendo i pin) quando si hanno tensioni logiche miste come 1,8, 3,3 e 5 V sulla stessa scheda, quindi non lo faccio di solito da solo, ma ha risparmiato un sacco di disordine nei giorni halcyon quando tutto andava da 5V.

schematico

simula questo circuito - Schema creato usando CircuitLab


Sarebbe possibile, non è troppo chiedere di mostrarmi un esempio completo di questo circuito? Mi piacerebbe essere in grado di visualizzare correttamente il circuito senza la resistenza di pull-up per poter vedere anche il quadro globale. Grazie
ssougnez,

Vedi modifica. Interni semplificati dell'inverter (di solito più transistor per buffering e almeno alcuni diodi di protezione). L'ingresso fluttuerà quando l'interruttore non viene premuto, ma quando viene premuto l'uscita è decisamente alta (M1 è acceso e M2 è spento).
Spehro Pefhany,

La porta I / O a destra nel tuo schema non verrebbe tirata a una certa tensione nota attraverso il LED invece di essere effettivamente fluttuante? Penso che l'articolo si riferisca all'ingresso della porta NOT quando dice "Pin I / O". Nel testo dopo la Figura 1, confonde Vcc con GND di terra. Dopo la Figura 2, sono di nuovo nel modo giusto.
ilkkachu,

No, il LED non influirà abbastanza sulla tensione di cui preoccuparsi (sarà comunque una logica 1 o una logica 0). Come ho detto inizialmente, non penso che si riferisca all'ingresso NOT gate. Non è un microcontrollore ed è solo un input non un pin I / O, ma in realtà la pagina non è poi così chiara per un principiante.
Spehro Pefhany,

Grazie, ora è più chiaro grazie alla tua risposta e a tutti gli altri. Ho votato a tuo favore ;-)
ssougnez,

2

La resistenza pull-up o pull-down ha lo scopo di fissare un livello logico (0 su GND o 1 su VCC). Il resistore ha un'impedenza maggiore rispetto al pulsante. Quando si preme il pulsante, il livello può cambiare (se cablato in modo corretto).

Il "non gate" che rappresenta l'MCU nelle figure è molto semplice e ha autorizzato la fornitura di VCC. Naturalmente nelle figure 2 e 3 Vcc è presente e ben collegato.

Il sentimento che hai scelto è stato quello di spiegare la logica "high attivo". Quello corrispondente alla figura 1 è

Usando una resistenza pull-up il pin I / O normalmente vedrà un livello logico alto e quando il pulsante viene premuto vedrà un valore basso


1

Poiché gli ingressi fluttuanti su CMOS possono passare a livelli di ingresso falsi possono essere soggetti a disturbi parassiti, un pull-up di ingresso nascosto R in una porta di ingresso uC con switch verso terra o una polarizzazione esterna R su una guida di alimentazione Vdd o Vss e passare a la ferrovia opposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.