Forum: Mikrocontroller und Digitale Elektronik STM32F: Pull-Down für ADC?


von Chris (christophe_d)


Lesenswert?

Hi,

wenn ich hier an meinem STM32F Analogwerte per ADC lese, so haben diese, 
wenn die Einangspins einfach nur offen sind, irgendwie zufällige Werte, 
die zwar jeweils fix aber bei jedem ADC anders sind. Lege ich Sie 
gezielt auf 0 oder 5V, dann haben alle ADCs identische, den 
Eingangspannungen entsprechende Werte.

Das lässt mich vermuten, dass die ADC-Eingänge auch irgend eine Art von 
Pull-up- oder -down benötigen.

Meine Frage: was hänge ich da am besten rein? Einfach nur einen simplen 
10K-Widerstand gegen Masse? Oder was wäre eine clevere Lösung?

Danke!

von Christoph S. (mr9000)


Lesenswert?

Wer viel misst, misst viel Mist.
Wieso solltest du die Eingangsspannung von offenen Pins lesen? Das kommt 
ja ganz auf die Schaltung dahinter an, ob das sinnvoll ist oder nicht.
Zum Einlesen von Schaltern habe ich mal den Schalter als Spannungsteiler 
beschaltet mit Pull-Up vorm Schalter und dann die beiden Ausgänge (NO, 
NC) zu anderen Widerstandswerten. So konnte ich per ADC die 
Schalterstellung auswerten, und wenn der Stecker vom Schalter nicht 
eingesteckt war, gabs dann V_ref über den Pull-Up. Kann man auch auf 
unzählige Arten anders beschalten.

von Andreas B. (abm)


Lesenswert?

Wenn der Eingang offen ist, macht eine Messung doch auch keinen Sinn. 
Man ignoriert den Eingang also einfach (wenn der ADC den dennoch 
abtastet)?!
Ein Pull-Up/Down ist also recht überflüssig. Es sei denn, man weiß 
nicht,
ob er offen ist. Dann könnte man natürlich einen Pull-Down anschließen, 
und
aus ADC-Wert ca. 0 schließen "Eingang offen", aber wenn bei einem 
tatsächlich genutztem Eingang der Bereich bis 0V herunter relevant ist, 
ist's wieder Essig.

Wenn man offenen Eingänge zuverlässing erkennen will, muss man wohl sehr 
hochohmige schaltbare Pull-Up/Down-Widerstände anschließen und dann 
mal mit, mal ohne messen.

Und wie groß? Tja, das hängt von der Quellimpedanz ab ... Aber mit 50 
bis 100kOhm dürfte man ganz gut hinkommen.

Die Werte sind übrigens sicher nicht "fix", sondern dürften (langsam) 
schwanken, und stark vom Layout und benachbarten Leiterbahnen abhängen.

von Chris (christophe_d)


Lesenswert?

Andreas B. schrieb:
> Ein Pull-Up/Down ist also recht überflüssig. Es sei denn, man weiß
> nicht, ob er offen ist.

Das ist der Punkt, bei der endgültigen Lösung weiß die Firmware nicht, 
ob der Eingang vom Anwender beschaltet wurde, oder nicht.

> Die Werte sind übrigens sicher nicht "fix", sondern dürften (langsam)
> schwanken, und stark vom Layout und benachbarten Leiterbahnen abhängen.

Ja, es geht immer ein paar Bytes hin und her, aber der eine Eingang 
liefert z.B. Werte um die 735 und der andere um die 2100, im Vergleich 
untereinander sind die also ungefähr fix.

von Harald W. (wilhelms)


Lesenswert?

Chris schrieb:

>> Ein Pull-Up/Down ist also recht überflüssig. Es sei denn, man weiß
>> nicht, ob er offen ist.
>
> Das ist der Punkt, bei der endgültigen Lösung weiß die Firmware nicht,
> ob der Eingang vom Anwender beschaltet wurde, oder nicht.

Ja, dann solltest Du wirklich einen Pullup oder Pulldown einbauen.

von Alex R. (geneo)


Lesenswert?

Oder einfach die internen Pull-Widerstände nehmen?
Immerhin sind ja bei den Analogwerten die Signalflanken eher unkritisch. 
Soweit ich mich erinnere, steht auch in den Datenblättern, dass man den 
Analogmodus mit den Pull-Widerständen kombinieren kann.

von Joe L. (joelisa)


Lesenswert?

Harald W. schrieb:
> Chris schrieb:
>> Das ist der Punkt, bei der endgültigen Lösung weiß die Firmware nicht,
>> ob der Eingang vom Anwender beschaltet wurde, oder nicht.
>
> Ja, dann solltest Du wirklich einen Pullup oder Pulldown einbauen.

Einen Pullup- oder Pulldown-Widerstand, der dann - wenn es drauf ankommt 
- die zu messende Quelle belastet und das Messergebnis entsprechend 
verfälscht...

von Harald W. (wilhelms)


Lesenswert?

Joe L. schrieb:

> Einen Pullup- oder Pulldown-Widerstand, der dann - wenn es drauf ankommt
> - die zu messende Quelle belastet und das Messergebnis entsprechend
> verfälscht...

Vermutlich reicht da ein Pull-R im Megohm-Bereich. Wenn der dann schon
stört, sollte man sein Konzept überdenken.

von Chris (christophe_d)


Lesenswert?

Alex R. schrieb:

> Soweit ich mich erinnere, steht auch in den Datenblättern, dass man den
> Analogmodus mit den Pull-Widerständen kombinieren kann.

Leider nein. In CubeMX ist diese Option für Analogeingänge deaktiviert.

von Andreas B. (abm)


Lesenswert?

Alex R. schrieb:
> Oder einfach die internen Pull-Widerstände nehmen?

> Soweit ich mich erinnere, steht auch in den Datenblättern, dass man den
> Analogmodus mit den Pull-Widerständen kombinieren kann.

Nein, in den RMs steht ausdrücklich, das die im Analog-Modus 
hardwaremäßig deaktiviert werden. Hatten wir gerade von ein paar Tagen 
...

von Harry L. (mysth)


Lesenswert?

Andreas B. schrieb:
> Nein, in den RMs steht ausdrücklich, das die im Analog-Modus
> hardwaremäßig deaktiviert werden. Hatten wir gerade von ein paar Tagen

It's not a bug - It's a feature!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.