Klärung einiger Zweifel bezüglich des PUPDR-Registers des GPIO [STM32]

Könnte eine triviale Frage sein, aber wann verwendet man Pull up und Pull down als PUPDRRegister des GPIO? Ich vermute, es wird verwendet, um den Standardzustand des Pins zu definieren.

Das Folgende enthält das Bild der Drucktaste auf der STM32F401 Nucleo-Platine. Es ist offensichtlich, dass PC13IO über einen Pull-up-Widerstand hochgezogen wird, falls die Taste nicht gedrückt wird.

Geben Sie hier die Bildbeschreibung ein

Der IO-Pin, wie unten gezeigt, ist also bereits hochgezogen, oder? Spielt es eine Rolle, ob das Ereignis PC13im Pull upoder im Pull downModus konfiguriert ist?

Geben Sie hier die Bildbeschreibung ein

Zweitens, für die LED ( LD2), die angeschlossen ist PA5: Wenn der PUPDRdieses Pins auf Pulldown eingestellt ist, gibt es einen Pulldown-Widerstand (wie im IO-Bild oben gezeigt), der mit PA5und für Pullup verbunden ist, es gibt einen Pullup auf VDD ? Angenommen, das ist der Fall, sollte LD2beim Start des Programms nicht "on" sein, wenn PUPDRauf gesetzt ist PULL UP? (scheint bei mir nicht der Fall zu sein)

Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Aus dem Datenblatt ist der Wert sowohl des Pull-Up- als auch des Pull-Down-Widerstands nominell 40K. (Beachten Sie, dass Pull-Up- und Down-Werte oft unterschiedlich sein können.)

Notieren Sie sich für den Fall PC13den Wert des externen Pull-up-Widerstands - 4K7. Dies ist viel niedriger als die internen Pull-Widerstände.

  • Wenn Pull-up aktiviert ist, ist der resultierende Wert 4K7 || 40K, was 4K2.

  • Wenn der Pulldown aktiviert ist, bildet er einen Spannungsteiler. Da der Pulldown viel größer als der ist 4K7, liegt die Eingangsspannung über dem oberen Schwellenwert.

Sie haben hier wahrscheinlich einen stärkeren Zug angebracht, da sie wissen, dass er für einen Schalter verwendet wird und möglicherweise externe Störungen aufnimmt. C15Auch hier hilft der Kondensator .

Für PA5ist der Wert des Pull-up-Widerstands so hoch, dass nicht genug Strom vorhanden ist, um die LED zum Leuchten zu bringen.

Entschuldigung, wie hoch ist der Wert der Eingangsimpedanz der MCU? Es ist normalerweise in Megaohm (bei der STM-Serie nicht sicher), aber wenn dies der Fall ist, ist Ihr Argument, dass nicht genug Strom erzeugt wird, um die LED zum Leuchten zu bringen, sinnvoll. (Angenommen, Pull-up ist aktiviert, Sie haben 40 K und die Eingangsimpedanz der MCU in Reihe). Ich bin mir nicht sicher über Ihre Erklärung zum Druckknopf und wie 4K7größer ist als der interne Zug, der ist40K
@Pokloha Entschuldigung, Tippfehler in 4K7 > 40k. Weitere Informationen hinzugefügt. Die Eingangsimpedanz ist so groß, dass es keine Rolle spielt. Es wird parallel zum Pull-Widerstand sein, also wird der Effektivwert sein ~40K. Ist das sinnvoll?
40K || 4k7 ~ 4k7und nicht ~40K, es sei denn, Sie beziehen sich auf etwas anderes? sieht es nicht so aus, wie es für die Drucktaste aussieht ( tinyurl.com/yddcgj6h )?
Wenn Pull-up eingestellt ist, sehe ich, dass sie parallel sind, was zu einer ~4k7Eingangsimpedanz führt. Wenn Pulldown eingestellt ist, erhalten Sie ~ 3,3 V am Eingang, der ihn hochzieht. Ich bin mir nicht sicher, was passiert, wenn Pull-Up eingestellt ist und wenn weder Pull-Up noch Pull-Down eingestellt ist (schwebend). Ist R30 nicht sowieso da, um den Stift hoch zu ziehen?
@Pokloha - das habe ich geschrieben - 40K || 4K7 ~ 4K2. In Ihrem verknüpften Schaltplan 40Ksollte das Pulldown nicht verbunden sein. R30zieht den Pin immer hoch - wie ich in meiner Antwort erwähnt habe, haben sie diesen stärkeren Pull-up, weil sie sich an einem Pin befinden, der mit der "Welt" (nicht einem anderen IC) verbunden ist und eher von Störungen betroffen ist. Der stärkere 4K7Klimmzug mildert dies ab, während der 40Kallein möglicherweise nicht stark genug ist. Beantwortet das deine Frage?
Ich habe 40K Pulldown gesetzt, weil das der Schaltplan der MCU hat, und unter der Annahme, dass Pulldown eingeschaltet ist, bilden Sie einen Spannungsteiler zwischen 4,7K und 40K, der Ihnen ~ 5V am IO-Pin gibt, nein?
@Pokloha Es gibt kein umschaltbares Pull-Up / Down im Schaltplan - sie sind intern im Mikrocontroller. Da tritt R30ein starker externer Pull up auf PC13. Bei den schaltbaren Zügen können Sie nicht beide gleichzeitig haben. Wenn Sie PC13als Pull- up einstellen , haben Sie einen effektiven Pull-up von 40K || 4K7und wenn Sie den Pull- down aktivieren , erhalten Sie einen Spannungsteiler, wie ich in der Antwort sagte. :)