Perché abbiamo bisogno di resistenze di trazione esterne quando i microcontrollori hanno resistenze di trazione interne?


15

I microcontrollori hanno resistori pull-up-pull down interni, ma la maggior parte dei circuiti ha resistori di pull esterni.

Ho cercato risposte su Google e alcuni siti hanno affermato che quei resistori non sono così forti ma ho pensato che fossero abbastanza buoni per funzionare. Pensavo che potessero aver bisogno di esterni perché i resistori interni dovevano essere attivati ​​dalla programmazione.

Quindi per alcune situazioni non pianificate, attaccano anche resistori esterni. Ma non ne sono sicuro.

Qual è la vera ragione dietro l'utilizzo di esterni quando abbiamo interni?


6
Alcuni microcontrollori hanno resistori interni. E questi resistori non sono dimensionati correttamente per tutte le applicazioni (in genere sono ottimizzati per bassa potenza).
Dave Tweed

2
Cosa succede se ometto le resistenze pullup su linee I2C? Questo thread è un'analisi di un tentativo di utilizzare resistori pull-up interni con I2C.
Nick Alexeev

"Quindi per una situazione non pianificata, attaccano anche resistori esterni." A volte anche situazioni pianificate. Spesso è più facile / veloce / economico in un ambiente di produzione spostare semplicemente un resistore da una posizione all'altra piuttosto che dover ripetere il flashing del firmware per ottenere lo stesso risultato. Farlo nel firmware implicherebbe probabilmente una seconda versione dello stesso firmware che deve essere gestito. Con una modifica della saldatura, tutto ciò che serve è un'istruzione di lavoro condizionale.
Wossname il

Risposte:


30

Ci sono alcune possibili ragioni, come ad esempio

  • È necessario che il resistore sia presente durante l'accensione, poiché il microcontrollore non ha ancora iniziato l'esecuzione.
  • Necessita di una resistenza più precisa rispetto alla resistenza interna. Le resistenze pull-up / down interne hanno tolleranze molto ampie.
  • Necessita di una resistenza maggiore o minore di quella fornita internamente. Ad esempio, I 2 C utilizza in genere pullup più potenti, mentre è possibile che si desideri un pullup molto debole per il monitoraggio di un interruttore, per risparmiare energia.
  • Necessità di tirare a una tensione diversa dalla tensione di alimentazione o dalla terra del microcontrollore.
  • Utilizzando una resistenza pull-up / -down insieme all'ADC sul microcontrollore. Alcuni microcontrollori disabilitano le resistenze interne su qualsiasi pin a cui è collegato l'ADC.
  • Necessita di un resistore a discesa su un microcontrollore con solo pullup.

Non riuscivo a capire l'ultimo secondo punto ... Perché i microcontrollori disabiliterebbero i loro resistori interni con ADC
Gunjan Gangwani,

3
@GunjanGangwani Non credo sia una buona decisione di progettazione, ma l'idea è che di solito non si desidera che l'ADC attiri corrente dalla cosa che sta misurando, quindi si desidera una connessione ad alta impedenza. Immagino che alcuni designer non si fidino degli sviluppatori del firmware per disabilitare sempre i resistori interni.
Abe Karplus,

7
Penso che sia normalmente perché i pull-up / pull-down sono associati ai buffer di input digitali e abilitare gli ADC a volte può disabilitare completamente il circuito di buffering digitale (e con esso i resistori pull-up / down).
Connor Wolf,

3
@Ashutosh Se vuoi l'alta impedenza, ovviamente non usi alcun pullup. Alcuni microcontrollori lo impongono disattivando automaticamente i loro pullup interni, il che è un problema in quelle situazioni in cui non si desidera l'impedenza elevata.
Abe Karplus,

1
Gli ingressi ADC di @GunjanGangwani devono essere isolati da tutti gli altri circuiti per fornire il rumore più basso. Gli ingressi digitali consumano spesso più corrente del desiderato quando vengono pilotati tra le loro tensioni "alta" e "bassa". I microcontrollori più vecchi utilizzavano uno switch interno per disconnettere l'ingresso dalla porzione digitale quando quel pin era usato per ADC, ed è quella porzione digitale che ha il pull up. Questo viene disconnesso sia per isolare l'ADC che per abbassare il rumore di fondo, oltre a prevenire l'assorbimento di corrente aggiuntivo (o in chip molto vecchi, cmos latchup).
Adam Davis,

9

Alcuni (o forse molti) microcontrollori hanno resistori pull-up interni, ma questi sono spesso valori abbastanza alti. Molte applicazioni richiedono pull-up di valore inferiore.

Resistenze di pull-up possono anche essere richieste agli ingressi di normali circuiti logici (gate, contatori, ecc.) Che non hanno pull-up interni (e talvolta vogliamo resistenze di pull-down, invece ...)


1
resistori di pull-up interni, ma questi sono spesso valori piuttosto alti Stavo costruendo un'applicazione a bassa potenza di recente e ho scoperto che i resistori di pull-up erano circa 50 k, che ho trovato piuttosto bassi con conseguente uso di corrente troppo. Quindi ho usato un resistore esterno di valore superiore. Alla fine dipende da quali sono le tue esigenze.
Bimpelrekkie,

3

Inoltre, useresti un resistore esterno ogni volta che hai bisogno di un valore di resistenza reale. Gli MCU di solito non hanno resistori pull-up reali ma piuttosto MOSFET che affondano una piccola corrente, quindi il loro valore di resistenza equivalente può variare selvaggiamente a seconda del segnale che si applica al pin.

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.