Überlegungen bei der Verwendung interner Pull-Up / Down-Widerstände

11

Ich arbeite mit STM32-Mikrocontrollern. Diese Mikrocontroller haben die Option, den Eingangspin als Pull-Up oder Pull-Down einzustellen:

Geben Sie hier die Bildbeschreibung ein

Früher habe ich, wo immer erforderlich, einen externen Pull-Up- oder Pull-Down-Widerstand gegeben, jetzt frage ich mich, ob ich externe Komponenten beseitigen und die Pull-Down-Funktion des Mikrocontrollers selbst verwenden kann.

Wird das eine gute Sache sein?

Gibt es einen Anwendungsfall, in dem ich zusätzliche Vorsichtsmaßnahmen treffen oder diese Funktion überhaupt nicht verwenden sollte?

Whiskeyjack
quelle
2
Ich benutze die interne pu / pd wann immer ich kann und hatte keine Probleme. Wenn Sie also keinen gültigen Grund haben , das integrierte Pull-Up / Down nicht zu verwenden, können Sie sie einfach verwenden. Ein Grund, sich nicht auf das interne pu / pd zu verlassen, könnte sein, dass an den Eingang ein langer Draht angeschlossen ist, der mit anderen Leitungen gekoppelt werden kann und unerwartetes Verhalten verursacht. Das interne pu / pd ist ziemlich schwach (um Strom zu sparen) und kann leichter gestört werden als beispielsweise ein 10-kOhm-Widerstand.
Bimpelrekkie
21
Ein kleiner Hinweis: Es funktioniert möglicherweise nicht als Pullup, während der Mikrocontroller zurückgesetzt wird. Wenn also externe Schaltkreise vorhanden sind, die ständig heruntergezogen werden, liegt möglicherweise ein Problem beim Start vor. Wenn es nur vom Mikro gelesen wird, ist dies kein Problem.
pjc50
1
@ pjc50 du hättest das als Antwort posten sollen, ich habe deinen Kommentar erst bemerkt, nachdem ich meine Antwort gepostet habe.
Jason S
1
Wenn Sie dem Pull-up-Widerstand in einem Mikrocontroller nicht vertrauen können, können Sie diesem Controller nichts vertrauen. Was Sie wissen möchten, ist, ob es nützlich ist
Passant
1
@ Whiskeyjack: Sie sollten in Betracht ziehen, den Titel der Fragen zu ändern. Vielleicht "Überlegungen bei der Verwendung interner Pull-Up / Down-Widerstände" oder ähnliches.
Rev1.0

Antworten:

15

Ja ... Sie können ... Es ist eine bewährte Funktion. Wenn Sie die Stiftstruktur im STM32-Referenzhandbuch sehen, können Sie sehen, dass Komponenten erforderlich sind -

STM32 Stiftstruktur

Wenn dies Ihren Anforderungen entspricht, können Sie auf externe Komponenten verzichten.

Bearbeiten Denken Sie daran, dass beim Einschalten die Pins tristiert werden. Wenn es Ihre Anwendung nicht behindert, ist es gut! Aus diesem Grund empfiehlt es sich, zuerst den E / A-Bereich zu initiieren und dann mit anderen Peripheriegeräten fortzufahren.

Swanand
quelle
1
Richtig, aber beim Zurücksetzen ist es immer noch richtig?
Seetharaman
1
Ich antwortete auf die Frage "Sollte ich der Pulldown-Funktion des Mikrocontrollers vertrauen?" und jetzt hat sich die Frage selbst geändert: - / Und mit der neuen Frage ist die Antwort von Bence Kaulics genauer!
Swanand
Frage: Wird sich der Chip durch die Verwendung einer Reihe interner Pullup / Down-Widerstände erwärmen?
Caleb Reister
16

Im Allgemeinen ist es vollkommen in Ordnung, die internen Pull-Up- oder Pull-Down-Widerstände zu verwenden.

Nachteil ist, dass Sie vergessen können, es über Software zu aktivieren, was ein wenig Kopfschmerzen verursachen kann. Die externen Klimmzüge werden immer da sein. Vergessen Sie also nicht, die internen zu aktivieren und viel PCB-Bereich zu sparen, indem Sie die Komponentennummer reduzieren.

30 kΩ50 kΩ

Geben Sie hier die Bildbeschreibung ein

Sie sollten immer prüfen, ob Ihre Anwendung einen bestimmten Pull-Up- oder Pull-Down-Widerstandswert benötigt, bevor Sie die internen Widerstände verwenden. Verwenden Sie sie beispielsweise nicht mit I 2 C , da diese Werte dafür zu hoch sind.

Bence Kaulics
quelle
11

Sofern die Pullup- und Pulldown-Widerstände beim Zurücksetzen nicht aktiv sind (ich vermute, dass dies nicht der Fall ist, aber ich bin mit STM32-Geräten nicht vertraut), liegt beim Zurücksetzen ein undefinierter Pin-Status vor. Dies ist ein Hauptgrund für die Verwendung externer Pullup- oder Pulldown-Widerstände.

Jason S.
quelle
10

Wie andere gesagt haben, sind interne Klimmzüge und Klimmzüge in Ordnung, solange:

  • Sie erinnern sich, sie zu konfigurieren,
  • sie sind stark genug,
  • Sie kämpfen nicht mit einem externen Zug gegen sie, und
  • Die Spannung beim Starten und Zurücksetzen ist unwichtig.

Denken Sie beim letzten Punkt daran, dass CMOS-Eingänge auf Mittelspannungspegel einen erheblichen Durchschussstrom an ihrem Eingangspaar verursachen können. Dies kann beim Start zu einem Problem in einem System mit geringem Stromverbrauch führen.

Im Allgemeinen erzielen externe Zugwiderstände ein konservativeres Design.

Richard
quelle
1
In Bezug auf Durchschussströme kann es hilfreich sein, die Dinge ins rechte Licht zu rücken, indem man feststellt, dass die Pegel für die meisten Mikrocontroller im Allgemeinen weit unter allem liegen, was ein Gerät beschädigen würde, aber um Größenordnungen über dem Bestwert eines Geräts liegen können. Fall Schlafströme. In einigen Fällen spielen solche Ströme keine Rolle; in anderen sind sie ein absoluter Killer.
Supercat
1
+1 für "Die Spannung beim Starten und Zurücksetzen ist unwichtig". Sie müssen sicherstellen, dass sich der Rest Ihrer Schaltung in einem sicheren und ruhenden Zustand befindet, während das Mikro gestartet wird. Dies ist schwieriger als es aussieht, wenn Sie bedenken, dass ein Reset oder ein schneller Aus- und Wiedereinschalten den Rest Ihres Stromkreises in einem unbestimmten Zustand belassen oder ihn eingeschaltet lassen kann, ohne dass das Mikro ihn im Auge behält.
Graham
3

Zusätzlich zu den anderen feinen Ausnahmen, die in allen Antworten aufgeführt sind, sind die internen Pull-up-Widerstände in vielen Fällen zu schwach für I²C .

Scott Seidman
quelle
Natürlich haben einige (viele?) Mikrocontroller Open-Drain-Pins speziell für I2C, die Sie konfigurieren können
Thomas
1
Ich habe nichts anderes als schwache Klimmzüge gesehen, @Thomas
Scott Seidman