Problem mit AD Wandler AT90S4433

Gast #309064
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
Gast #309067
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....

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