Come faccio a sapere se ho bisogno di una resistenza pull up o pull down per un pin GPIO?


8

Ho visto molti microcontrollori utilizzare resistori pull up o pull down sia come impostazione per pin GPIO o come parte dell'hardware.

Come faccio a sapere se ho bisogno di un resistore pull up o pull down per un pin GPIO e se lo faccio, come faccio a sapere quale è giusto per la mia applicazione?

Risposte:


6

È necessario un resistore pull up o pull down su una linea in cui il livello di tensione almeno a volte è "imprevedibile", ad esempio un ingresso flottante, ma anche una linea I2C.

Se si desidera che il valore predefinito della linea sia un 1 digitale, utilizzare un pull up. Se vuoi che sia uno 0 digitale, usi un pull down.

Un esempio molto tipico è un pulsante. Supponiamo che il software si aspetti che un pin scenda quando viene premuto un pulsante. Sul pin corrispondente, si utilizza un pull up e il pulsante collega il pin a terra.


3

Nel layout finale si raccomanda vivamente di portare ogni pin inutilizzato al livello appropriato. Non lasciarli non connessi in quanto possono causare comportamenti imprevedibili all'avvio o durante il programma in esecuzione.


0

Se lo tiri su o giù, dipende davvero da te e dalle esigenze del tuo progetto.

Come accennato in precedenza

Se il tuo codice sta cercando di innescarsi su un fronte di discesa o a 0, ti consigliamo di utilizzare un pull up per mantenere alto il livello quando non utilizzato.

Se il tuo codice sta cercando di innescarsi su un fronte di salita o a 1, ti consigliamo di utilizzare un pull down per mantenere il potenziale a 0, utilizza la tua fonte esterna per tirarlo su.

Ora, tirare i resistori dovrebbe avere un alto valore ohmico, abbastanza per superare il rumore che devi eliminare, ma non così forte che il tuo fulcro esterno non può superarlo.

Generalmente, abbassando si risparmia qualche mA di potenza.

Diciamo che abbiamo un pullk di 5k @ 5v, cioè 1mAper pin; quando si esauriscono le batterie, ogni mA è prezioso.

Quando tiriamo giù, generalmente stiamo solo bruciando il rumore EMF, consumando un numero trascurabile di mA.


un pullup non assorbirebbe nominalmente nessuna corrente quando la linea non è abbassata, e allo stesso modo una corrente di scarico a vuoto quando la linea è spinta alta?
John O'M.

In genere un resistore pull up / down è appena sufficiente per ottenere il segnale "predefinito" desiderato, tipicamente Vin o Gnd. A tal fine, in genere sono circa 10k o circa, quindi se si guida la linea ALTA mentre è collegata una resistenza pull down si sprecano solo Vhigh / 10k amp. Se Vhigh è 5V, ciò equivale a 0,5 mA.
Chuck,
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.