Domanda:
Qual è la funzione del resistore nel circuito sottostante?
user38192
2014-03-05 19:48:15 UTC
view on stackexchange narkive permalink

Qual è la funzione del resistore R13 in questo circuito?

schematic

Questo è noto come * resistenza pullup *. Vado in molti più dettagli sui resistori pullup qui: http://electronics.stackexchange.com/a/23647/4512
Se il resistore non fosse presente, la linea sarebbe _floating_ (tensione determinata dall'interno del chip, EMI e molti altri fattori. Può essere qualsiasi cosa, inclusi <0V e> VCC) quando l'interruttore era aperto e _grounded_ (o 0V) quando l'interruttore era chiuso. Il _pullup resistor_ viene aggiunto in modo che la linea sarà VCC quando l'interruttore è aperto e sarà ancora _ grounded_ quando l'interruttore è chiuso.
Inoltre, e secondo me di estrema importanza, se il resistore non fosse presente e chiudeste SW1, creereste un cortocircuito, con conseguenze molto più sgradevoli di questi problemi di stato digitale confuso zero e uno.
Niente Impossibile: in assenza del resistore, non ci sarebbe un cortocircuito. Devi visualizzare la sostituzione del resistore con un filo (es: R = 0).
Tutte le risposte e le spiegazioni "questo sembra un resistore pullup" sono rilevanti. Tuttavia, riflettendo su ciò, l'interruttore SW1 è probabilmente destinato a eseguire la funzione "clear", che userebbe il pin / MCLR / Vpp in modalità / MCLR. Quando in quella modalità, le specifiche PIC dicono che il pin 1 ha già una resistenza pullup internamente. Quindi, a prima vista, R13 non è necessario. Ci si potrebbe quindi chiedere "perché è lì, nonostante PIC abbia già un pullup interno?"
Sei risposte:
Blup1980
2014-03-05 19:52:48 UTC
view on stackexchange narkive permalink

Questo è un resistore di pull up. Quando l'interruttore è aperto, il resistore imposta il pin MCLR su VCC.

Senza il resistore il pin sarebbe lasciato flottante. L'ingresso MCLR è un ingresso logico. Che può essere 0 o 1. Ma nel mondo reale non esistono cose come 0 o 1.

Si potrebbe definire una convenzione:

  • se la tensione è al di sotto di Vcc / 2 è considerato uno 0.
  • Se la tensione è superiore a Vcc / 2 è considerato un 1.

Si presenta un problema con questo approccio quando la tensione di ingresso supera la soglia. Ad un certo punto nel tempo, è alla soglia. E se c'è del rumore sul segnale, il pin potrebbe vedere uno 0 o un 1 che rimbalza molto rapidamente. Immagina che l'ingresso sia un segnale di clock e vedresti i bordi del clock dove non vuoi.

Il seguente approccio risolve il problema:

Ci sono due soglie: Vale a dire Vih e Vil. Un segnale è considerato 0 se è inferiore a Vil e 1 se superiore a Vih. Le due soglie sono separate da una zona grigia che impedisce la commutazione a causa del rumore aggiunto (fino a un certo livello).

La seguente figura trovata sul web spiega questa caratteristica:

Vih Vil

Il resistore negli schemi è qui per assicurarsi che, quando il pulsante non è premuto, il il voltaggio a MCLR è superiore a Vih (non nella regione proibita).

Ma, come spiega @Spehro Pefhany nella sua risposta, questo non è sufficiente.

Un pulsante non è perfetto . Quando lo rilasci, potresti (e in realtà vedrai) dei rimbalzi.

Questa immagine, trovata anche sul web, mostra questo:

enter image description here

Un modo per superare questo problema è "attenuare" il segnale in uscita utilizzando un condensatore come mostrato nella scheda tecnica del microcontrollore. Il condensatore verrebbe scaricato rapidamente attraverso il percorso a bassa impedenza del pulsante premuto, ma impiegherebbe un po 'di tempo per caricare il resistore quando il pulsante è aperto a causa dei rimbalzi. Se scegli la giusta coppia resistore-condensatore, potresti assicurarti che ci vorrà più tempo per la tensione MCLR per attraversare il Vil che impiega al pulsante per smettere di rimbalzare.

BASIL VARGHESE
2014-03-05 19:56:49 UTC
view on stackexchange narkive permalink

Questa resistenza è nota come resistenza di pull up. È collegato al primo pin del PIC per il ripristino. Quando questo pin è collegato a terra o il PIC basso attivo viene ripristinato. Quindi, per rendere l'IC in modalità di lavoro, questo pin viene tirato su attraverso questo resistore.Un interruttore viene utilizzato per mettere a terra il pin per ripristinare il programma.

Spehro Pefhany
2014-03-05 20:34:06 UTC
view on stackexchange narkive permalink

Dal datasheet del PIC16F877:

enter image description here

In questo caso, l'interruttore prende il posto del condensatore, per provocare un reset ogni volta l'interruttore è premuto (contrariamente a quando viene applicata l'alimentazione e si presume che la tensione del condensatore sia circa zero).

Il limite superiore del valore è di 40 K ohm consigliati (valori relativamente alti aumenteranno anche la sensibilità al rumore). Il limite inferiore è impostato dalla quantità di corrente che si desidera prelevare dall'alimentatore quando si preme l'interruttore. Da pochi K a 15 o 20 K è un intervallo ragionevole per la maggior parte degli scopi.

Nota che quando c'è un condensatore, dovrebbe esserci anche un resistore in serie, secondo Microchip, di qualcosa come 1K o 2K. Non è una cattiva idea metterlo lì anche senza condensatore (solo un interruttore) a causa della possibile ESD trasmessa attraverso l'attuatore dell'interruttore.

tcrosley
2014-03-05 22:26:52 UTC
view on stackexchange narkive permalink

Ci sono diverse risposte che spiegano come funziona un resistore pullup, quindi non ne parlerò. Cercherò invece di spiegare perché è lì.

Le resistenze pullup vengono utilizzate quando un ingresso su un microcontrollore deve essere controllato da diverse sorgenti. Ad esempio, nel tuo caso, è possibile premere SW1 per ripristinare il microcontrollore portando la sua linea! MCLR / VPP bassa. Quello che non mostri nel tuo schema è l'interfaccia di programmazione del tuo programmatore (es. ICD 3) che deve anche resettare il microcontrollore portando la sua linea! MCLR / VPP bassa.

Se MCLR era attivo alto invece che basso, allora sarebbe possibile che due ingressi lo guidino contemporaneamente, con tensioni leggermente diverse (ad esempio, VCC dallo switch e VPP dall'interfaccia del programmatore), e potresti ritrovarti con tutti i tipi di problemi (soprattutto se un ingresso era a VCC e un altro a terra, creando un cortocircuito diretto.

Invece i dispositivi che guidano la linea! MCLR sono configurati come open-drain (o in il caso dell'interruttore, essendo un circuito aperto fino alla chiusura). Le uscite open-drain possono essere portate in basso, ma non in alto (lo stato alto predefinito è triplo, il che significa che non aziona il linea a VCC - invece sembra un ingresso). Quindi qualsiasi numero di dispositivi può essere collegato a una linea attiva-bassa come questa, e se più di uno viene pilotato basso (massa), non ci sono problemi.

Tuttavia, poiché nessuno di questi ingressi è configurato per pilotare l'ingresso alto, il resistore di pull-up fornisce il livello alto predefinito (VCC), e viene ridotto a ground quando uno qualsiasi degli input va a terra.

pjc50
2014-03-05 19:53:01 UTC
view on stackexchange narkive permalink

Il diagramma è piuttosto piccolo; ma questo è un "pullup". Porta ~ MCLR alla logica 1, tranne quando viene premuto il pulsante. Sostituendolo con un filo si interrompe il circuito quando si preme il pulsante.

RalphGJr
2014-03-06 11:03:19 UTC
view on stackexchange narkive permalink

Il resistore serve a limitare la corrente che entra in quel pin ... quando l'interruttore è aperto. È possibile ridurre la resistenza a seconda dei requisiti di corrente per il circuito integrato.

Quando l'interruttore è chiuso, il resistore è lì per evitare che Vcc vada in cortocircuito a massa.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...