Warum brauchen wir externe Pulling-Widerstände, wenn Mikrocontroller interne Pulling-Widerstände haben?

15

Mikrocontroller haben interne Pull-Up-Pull-Down-Widerstände, die meisten Schaltkreise haben jedoch externe Pull-Widerstände.

Ich habe bei Google nach Antworten gesucht und auf einigen Websites festgestellt, dass diese Widerstände nicht so stark sind, aber ich dachte, sie sind gut genug, um zu funktionieren. Ich hatte den Gedanken, dass sie externe benötigen könnten, weil die internen Widerstände durch Programmierung ausgelöst werden müssen.

In unvorhergesehenen Situationen bringen sie daher auch externe Widerstände an. Da bin ich mir aber nicht sicher.

Was ist der wahre Grund für die Verwendung von Externen, wenn es Interne gibt?

Gunjan Gangwani
quelle
6
Einige Mikrocontroller verfügen über interne Widerstände. Und diese Widerstände sind nicht für alle Anwendungen richtig dimensioniert (sie sind normalerweise für geringen Stromverbrauch optimiert).
Dave Tweed
2
Was passiert, wenn ich die Pullup-Widerstände auf I2C-Leitungen weglasse? Dieser Thread ist eine Analyse des Versuchs, interne Pull-up-Widerstände mit I2C zu verwenden.
Nick Alexeev
"Für einige ungeplante Situationen bringen sie auch externe Widerstände an." Manchmal auch geplante Situationen. In einer Produktionsumgebung ist es oft einfacher / schneller / billiger, einen Widerstand von einem Ort zum anderen zu bewegen, als die Firmware erneut flashen zu müssen, um das gleiche Ergebnis zu erzielen. Wenn Sie die Firmware verwenden, ist wahrscheinlich eine zweite Version der Firmware erforderlich, die gewartet werden muss. Bei einer Lötmodifikation ist lediglich eine bedingte Arbeitsanweisung erforderlich.
Wossname

Antworten:

30

Es gibt einige mögliche Gründe, wie z

  • Der Widerstand muss beim Einschalten vorhanden sein, da der Mikrocontroller noch nicht mit der Ausführung begonnen hat.
  • Benötigt einen genaueren Widerstand als der interne Widerstand. Interne Pull-Up / Down-Widerstände haben sehr große Toleranzen.
  • Benötigen Sie einen Widerstand, der größer oder kleiner als der intern bereitgestellte ist. Zum Beispiel ich 2 C normalerweise stärkere Pullups, während Sie möglicherweise einen sehr schwachen Pullup für die Überwachung eines Schalters wünschen, um Energie zu sparen.
  • Es muss eine andere Spannung als die Versorgungsspannung oder Masse des Mikrocontrollers angelegt werden.
  • Verwendung eines Pull-Up / Down-Widerstands zusammen mit dem ADC am Mikrocontroller. Einige Mikrocontroller deaktivieren ihre internen Widerstände an jedem Pin, an den der ADC angeschlossen ist.
  • Brauchen Sie einen Pulldown-Widerstand auf einem Mikrocontroller, der nur Pullups hat.
Abe Karplus
quelle
Ich konnte den letzten zweiten Punkt nicht verstehen ... Warum sollten Mikrocontroller ihre internen Widerstände mit ADC deaktivieren
Gunjan Gangwani
3
@GunjanGangwani Ich denke nicht, dass es eine gute Designentscheidung ist, aber die Idee ist, dass der ADC normalerweise keinen Strom aus dem Messobjekt ziehen soll, sodass Sie eine hochohmige Verbindung wünschen. Ich vermute, einige Designer vertrauen nicht darauf, dass die Firmware-Entwickler die internen Widerstände immer deaktivieren.
Abe Karplus
7
Ich denke, das liegt normalerweise daran, dass die Pull-Ups / Pull-Downs den digitalen Eingangspuffern zugeordnet sind und das Aktivieren der ADCs manchmal die digitalen Pufferschaltkreise (und damit die Pull-Up- / Down-Widerstände) vollständig deaktivieren kann.
Connor Wolf
3
@Ashutosh Wenn du hochohmig sein willst, benutzt du natürlich kein Pullup. Einige Mikrocontroller erzwingen dies, indem sie ihre internen Pullups automatisch ausschalten. Dies ist ein Problem in Situationen, in denen Sie keine hohe Impedanz wünschen.
Abe Karplus
1
Die ADC-Eingänge von @GunjanGangwani sollten von allen anderen Schaltkreisen isoliert werden, um die geringste Grundstörung zu erzielen. Digitale Eingänge verbrauchen häufig mehr Strom als gewünscht, wenn sie zwischen ihrer "hohen" und "niedrigen" Spannung betrieben werden. Ältere Mikrocontroller verwendeten einen internen Schalter, um den Eingang vom digitalen Teil zu trennen, als dieser Pin für den ADC verwendet wurde, und es ist der digitale Teil, der den Pull-up hat. Dies wird getrennt, um sowohl den ADC zu isolieren als auch das Grundrauschen zu verringern und eine mögliche zusätzliche Stromaufnahme zu verhindern (oder bei sehr alten Chips CMOS-Latchup).
Adam Davis
9

Einige (oder vielleicht viele) Mikrocontroller haben interne Pull-up-Widerstände, diese sind jedoch häufig recht hoch. Viele Anwendungen würden Pull-ups mit niedrigeren Werten erfordern.

Pull-up-Widerstände können auch an den Eingängen normaler Logikschaltungen (Gatter, Zähler usw.) erforderlich sein, die keine internen Pull-up-Widerstände haben (und manchmal möchten wir stattdessen Pull-down-Widerstände ...)

Peter Bennett
quelle
1
interne Pull-up - Widerstände, aber diese sind oft sehr hohe Werte Ich war vor kurzem eine Low-Power - Anwendung erstellen und festgestellt , dass die Pull - up - Widerstände etwa 50 k waren , die ich eher erwiesen niedrig zu viel Strom Verbrauch zur Folge hat . Also habe ich einen höherwertigen externen Widerstand verwendet. Am Ende kommt es darauf an, was Sie brauchen.
Bimpelrekkie
3

Außerdem würden Sie jedes Mal einen externen Widerstand verwenden, wenn Sie einen tatsächlichen Widerstandswert benötigen. Bei MCUs gibt es normalerweise keine eigentlichen Pull-up-Widerstände, sondern MOSFETs, die nur einen geringen Strom verbrauchen. Daher kann der entsprechende Widerstandswert je nach dem an den Pin angelegten Signal stark variieren.

Dmitry Grigoryev
quelle