PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : A/D - Wandler



es47
28.10.2004, 23:18
Hallo und guten Abend (Nacht),

ich moechte einen A/D - Wandler an meinem IC beschalten und das Datenblatt ist in der Hinsicht nicht sehr aufschlussreich.

Ich habe nun also einen Spannungsteiler ueber einem Poti. Die Endpunkte der Schaltung liegen an +5V, GND und der Anschluss zwischen Widerstand und Poti liegt auf dem Analog-Input.




+5V
|
|
|
# 180Ohm
#
#
|
|
| --------------------------- A-In
|
#
#--- 0 - 180kOhm
# |
|
|--|
GND




Jetzt fehlt mir die Wissensgrundlage ueber den AD-Wandler. Ist eine solche verschaltung ueberhaupt richtig ? Misst er die Spannung zwischen A-In und GND (es gibt auch ein spezielles AGND, aber das liefert das selbe resultat) oder ueber VCC und A-IN ? Es gibt auch einen VREF Pin, allerdings habe ich keine ahnung, wozu er gut ist, er liegt gegen alle anderen Pins mit der Spannung 0.

Ich wollte ueber das Poti die auslenkung eines servos steuern, allerdings zuckt es sehr stark und ueber auslenkungen von ca 20 Grad. Manchmal steht es einfach still und reagiert auf keine veraenderung und abundzu bewegt es sich voellig willkuehrlich von links nach rechts oder zuckt ueber den gesamten auslenkungsraum. Der AD-Wandler hat eine aufloesung von 1024 bit und ich habe sampletimes von min bis maximum ausprobiert ohne eine veraenderung festzustellen. Ich habe es so gehalten, dass eine aenderung des PWM - Signals fuer die Servos erst ab einer aenderung von > 3 des wandler ergebnisses autritt (Bit 0-1 weggeschnitten).

woran bitte kann es liegen, dass es nun mal ueberhauptnicht zufriedenstellend funktioniert ?

Michael
28.10.2004, 23:43
Hallo es47,
zunächst solltest du dein Poti so beschalten:


+5V
|
# 180kOhm
#--------- A-In
#
|
GND
Der Mittelabgriff des Potis an den AD-Eingang. Die anderen beiden Anschlüsse des Potis an Vcc und GND.
Der Vref-Pin bekommt die höchste zu erwartende Analogspannung, aber nicht höher als Vcc. Schließ Vref fürs erste an Vcc an.
AGND und AVcc sind klar?
Gruß, Michael

es47
28.10.2004, 23:47
nein sind sie nicht :D ein AVcc gibt es leider nicht, allerdings eine AGND. Ich nehme mal an, dass ich den AGND mit dem GND des Potis verbinden muss ?

Michael
28.10.2004, 23:50
Hallo es47,
AGND = GND (Alle GND kommen zusammen)
AVcc = Versorgungsspannung des AD-Wandlers, i.d.R. +5Volt (hat jeder AD-Wandler)
Gruß, Michael

Edit: Wäre nicht schlecht, wenn du sagst, welchen AD-Wandler und welchen Controller du benutzt!

es47
28.10.2004, 23:57
Der AD Wandler ist im Mikrokontroller integriert ... ich nehme an und hoffe, dass er sein eigenes AVcc hat ...

Michael
29.10.2004, 00:01
Hallo es47,


ist im Mikrokontroller integriert ...

und? welcher? so ziemlich jeder µC hat heutzutage einen AD-Wandler :(
Gruß, Michael

es47
29.10.2004, 00:05
Ein Infineon C509 ... ders 8051 Kompatibel ... falls das hilft.
Ich habe das nun mal +5V an den VRef gelegt und es geht schon besser. Das servo dreht sich jetzt nachvollziehbar, allerdings vollfuehrt es schon bei einem spannungsunterschied von 0.01 V eine volle auslenkung. Mal sehen ob ich dass noch "eindaemmen" kann.

Michael
29.10.2004, 00:16
Hallo es47,
danke, geht doch :)
Ich hab das Datenblatt mal überflogen, scheinbar gibt es keine extra Versorgung für den Analogteil, egal.
Also Vss und Vagnd an GND
und Vcc und Varef an +5Volt
Gruß, Michael

es47
29.10.2004, 07:28
Guten Morgen und danke fuer die Hilfe gestern Abend :)

Wie gesagt, der Servo dreht jetzt zumindest zufriedenstellend hin und her und ueberhaupt. Allerdings so empfindlich, dass ich den Poti kaum beruehren darf (habe nun ein neues mit 0-2,7kOhm mit recht hoher Aufloesung). Im Datenblatt steht, dass das Ergebnis "Left fustified" in den Registern liegt, also links ausgerichtet (10 Bits in 2*Bit, das Ergebnis steht also in ADDATL6-7 und ADDATH0-7) . Bedeutet dies gleichzeitig, dass die Bits in umgedrehter Reihenfolge vorliegen ? Das wauerde naemlich die extremen Auslenkungen des Servos bei kleinen Veraenderungen erklaeren.

Michael
29.10.2004, 09:29
Hallo es47,
naja, dein Problem kann so viele Ursachen haben...
liegt das Poti mit den beiden Endpunkten wirklich an Vcc und GND? Dann dürfte es nämlich keine Berührempfindlichkeit geben.
Und: Was meinst du mit:

habe nun ein neues mit 0-2,7kOhm mit recht hoher Aufloesung
?
So ein Poti hat höchstens einen Drehwinkel, die Auflösung passiert erst im AD-Wandler.

Manchmal macht es auch Sinn, ein Display zu benutzen und sich z.B. die Analogwerte anzeigen zu lassen. Dann siehst du auch, ob die Bits andersherum liegen. Zur Not tun's auch ein paar LEDs an einem Port.
Gruß, Michael

es47
29.10.2004, 09:50
Mit Aufloesung meinte ich den Drehwinkel im Verhaeltnis zur Aenderung des Widerstandes. Ich muss also ziemlich lange kurbeln um von 0 - 2,7kOhm zu kommen.

Ich muss mich noch daran gewoehnen, dass bei einer technischen Beschreibung etwas genauer sein muss :D Mit Beruehrung wars auch nicht ganz so gemeint. Ich wollte sagen, dass das Servo bereits bei unheimlich kleinen Drehwinkeln am Poti total auslenkt.