Pull-up/Pull-down beim STM32

OP #7452084
Lesenswert?

Liebe STM32 Spezialisten, wenn man einen GPIO als Input konfiguriert, kann man über das Register GPIOx->PUPDR wunderbar die pullups und pulldowns ein/ausschalten. Man kann auch beide einschalten und damit den Inputpin auf einen mittleren Pegel legen.

Wenn ich den Input Pin als ADC-Eingang konfiguriere kann ich die pullups/pulldowns nicht mehr schalten. Das möchte ich aber gerne tun um einen externen Offset-Spannungsteiler einzusparen.

Ist das jemand schon mal gelungen oder gibt es sachdienliche Hinweise?

Vielen Dank. Cheers Detlef

#7452099
Lesenswert?

Detlef _. schrieb:

Wenn nicht, nochmal kurz nacharbeiten.

Keine Sorge! Nach >45J Elektronik weis ich sehr wohl, was ein Spannungsteiler ist, aber ich weis auch, daß man dazu die Widerstandswerte mögl. genau kennen sollte...wo genau stehen diese Werte der internen Pullup/Pulldown im Datenblatt?

Den Eingang eines ADC direkt mit einen statischen Offset zu beaufschlagen ist sowieso i.d.R. eine Schnapsidee.

Fazit: Dein Ansinnen ist totaler Humbug, der nur zeigt, daß du absoluter Anfänger bist. Was ja ansich nicht schlimm ist und erst dann problematisch wird, wenn du auf deinem Irrglauben beharrst..

Denk mal drüber nach!

#7452112
Lesenswert?

Harry L. schrieb:

aber ich weis auch, daß man dazu die Widerstandswerte mögl. genau kennen sollte

Das würde ich wiederum nicht pauschal unterschreiben. Je nach Anwendungsfall ist das vllt garnicht so genau notwendig.

Gehen wir Mal davon aus man könnte die Widerstände wie gewünscht aktivieren. Gegen wir Mal weiter davon aus die Widerstände sind in gewissem Rahmen gleich, so dass sich irgendwas zwischen 1-2V einstellt. Würde man über einen Kondensator AC einkoppeln welche von der Frequenz deutlich schneller ist als die Stabilität der internen Widerstände, so könnte man über einen digitalen Hochpass den sowieso uninteressant Offset wieder rausrechnen. Evtl gibt's auch noch andere mögliche Anwendungen.

Harry L. schrieb:

Dein Ansinnen ist totaler Humbug, der nur zeigt, daß du absoluter Anfänger bist.

Detlef schreibt immer sehr viel in Richtung Signalverarbeitung. Also wird es vermutlich in die Richtung gehen.

Für mich ist eher die Frage ob es sich wirklich lohnt wegen 2 externen Widerständen den Aufwand zu treiben. Evtl will Detlef ja noch was zur Applikation sagen...

Persönliche Seite #7452331
Lesenswert?

Einfach den Pin auf dem PCB mit einem anderen GPIO verbinden und bei dem dann die Pullups setzen. Dieser andere Pin wird dann wohl auf Input gesetzt werden müssen, wobei dann der Schmitt-Trigger aktiv ist, welcher dann einen variablen Leckstrom auf dem Signal erzeugt und ggf. auch instabil werden kann bei einem analogen Eingangssignal (der Grund warum es den Analog-Modus überhaupt gibt).

(Firma: TU Darmstadt) #7452403
Lesenswert?

Niklas G. schrieb:

Einfach den Pin auf dem PCB mit einem anderen GPIO verbinden und bei dem dann die Pullups setzen. Dieser andere Pin wird dann wohl auf Input gesetzt werden müssen, wobei dann der Schmitt-Trigger aktiv ist, welcher dann einen variablen Leckstrom auf dem Signal erzeugt und ggf. auch instabil werden kann bei einem analogen Eingangssignal (der Grund warum es den Analog-Modus überhaupt gibt).

Den interne Pull Transistoren wuerde ich auch keinen einigermassen Gleichlauf zutrauen. Dann laeuft Dein Ruhepegel wild in der Gegend herum...

#7453108
Lesenswert?

Detlef _. schrieb:

früher gabs hier mal gute Antworten, so wie diese zu meiner Frage https://community.st.com/t5/stm32-mcu-products/adc-and-pullup-pulldown/td-p/573802#M218416

Ha, die "Antwort" besteht aus genau dem, was im RM0366 auch bereits steht: "8.3.12 Analog configuration ... •The weak pull-up and pull-down resistors are disabled by hardware ..."

Und selbst wenn es anders wäre: Die Idee, die für Spannungsteiler zu verwenden, führt unmittelbar und zwangsläufig sofort nach der Frage nach ihrem Wert: 25 bis 55 kOhm, und zwar unabhängig zwischen Pull-Up und Pull-Down. Irgendwas von "Vergleichbarkeit" oder so wird nicht angegeben. Nicht so ganz hilfreich ...

Das ganze Fragespiel wäre also total überflüssig, wenn man des Lesens mächtig und willig wäre. Aber offenbar ist so mancher einfach zu faul, mal kurz nachzuschlagen, und möchte selbst das an andere delegieren.

Gast #7453133
Lesenswert?

Ingo L. schrieb:

Es wird ja bei den Pull-Widerständen kein ohmscher Widerstand aktiviert, sondern eine Stromquelle.

Moin,

das sieht das Datenblatt eines von mir zufällig ausgewählten STM32F429 aber anders:

1
6. Pull-up resistors are designed with a true resistance in series with a switchable PMOS. This PMOS contribution to the series resistance is minimum (~10% order).
2
7. Pull-down resistors are designed with a true resistance in series with a switchable NMOS. This NMOS contribution to the series resistance is minimum (~10% order).

Seite 136 von 240: https://www.st.com/resource/en/datasheet/stm32f429ii.pdf

Das Datenblatt eines (ebenfalls zufällig gewählten) STM32G071 sagt auch was von einer "true resistance"...

Aber unabhängig von der konkreten Implementierung der Pull-Ups / Pull-Downs ist die Idee eines Spannungsteilers bei den angegebenen Toleranzen der Widerstände eventuell keine besonders gute Idee.

Gruß, Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren