Forum: Mikrocontroller und Digitale Elektronik Problem mit AD Wandler AT90S4433


von Hans Peter (Gast)


Lesenswert?

Hallo, hab ein Problem mit dem AD-Wandler(joystick auswertung zur
Schrittmotorsteuerung in C):

Beim einlesen von Analogwerten an Port C bringt der AD-Wandler nur
teilweise brauchbare ergebnisse.
liegt an einem der pins ca. 0,1V(kleinster Widerstandswert Poti1) an &
an dem daneben liegenden ca 5V(größter Widerstandswert Poti2) an
lassen sich keine stimmigen werte aus den ADCH/ADCL Registern auslesen.


solang beide Spannungswerte sich nicht extrem unterscheiden, stimmen
die ausgelesenen  Werte... komisch?
jede joystickachse lässt sich seperat steuern und die Diagonale bei der
die Potis ähnliche Widerstandswerte haben (beide höchste o. niedrigste)
funktioniert einwandfrei.

1.Fall

1.Analog Eingang : 5V
2.Analog Eingang : 5V
=Digitalwert bei beiden stimmen(03FF)

2.Fall

1.Analog Eingang : 0V
2.Analog Eingang : 0V
=Digitalwert bei beiden stimmen (0000)

3.Fall

1.Analog Eingang : 5V
2.Analog Eingang : 0V
= 1.Digitalwert müsste 03FF sein ist aber viel kleiner (etwa 0210)
  2.Digitalwert müsste 0000 sein ist aber viel größer  (etwa 01E5)

4.Fall

1.Analog Eingang : 0V
2.Analog Eingang : 5V
= 1.Digitalwert müsste 0000 sein ist aber viel kleiner (etwa 01E5)
  2.Digitalwert müsste 03FF sein ist aber viel größer  (etwa 0210)

(Aref 5.0V)

Wär echt dankbar wenn mir jemand nen Tipp geben könnte

von Hubert.G (Gast)


Lesenswert?

Wenn dir hier jemand einen Tipp geben soll wäre dein Code sicher
hilfreich.
Schon mal mit nur einer Spannung probiert, auch die Zwischenwerte?

von Martin Schneider (Gast)


Lesenswert?

Grundsätzliche Idee: zu kurze Wartezeit nach Kanalwechsel...

von TravelRec. (Gast)


Lesenswert?

Ich denke es liegt am Multiplexer, dieser sollte erst nach der erfolgten
Wandlung an Eingang 1 auf Eingang 2 umgeschaltet werden und umgekehrt.
Danach ist noch eine gewisse Zeit zu warten, damit sich der S/H
Kondensator im ADC entsprechend aufladen kann, bevor man wieder eine
Wandlung startet. Der A/D sollte für diesen Zweck nicht im
Free-Running-Mode betrieben werden, da dann erst recht mit
"Verwaschungen zu rechnen ist, besser ist die "one-shot" Wandlung
mittels des Start-Conversion-Bits. Also: schalten, warten, wandeln,
schalten, warten....

von Hans Peter (Gast)


Lesenswert?

Vielen DANK!!!! für die Tipps!

es lag wohl an der Zeit zwischen dem einlesen. und an dem erwähnten S/H
Kondensator.
mittlerweile funktionieren beide achsen

mfg Hans Peter

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.