PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Externe Referenzspannung für ADC



Bluesmash
13.05.2006, 20:29
Hallo Zusammen

mit:

Config Adc = Single , Prescaler = Auto , Reference = Off

sollte doch die externe referez spannung aktiv sein oder? an aref habe ich einen spannungsteiler mit 15 und 10 kOhm zwischen 5V und GND und somit ca. 3V an Aref... aber sobald ich den ADC starte habe ich nur noch 2,47V an Aref...
warum???


gruss bluesmash

Ratber
14.05.2006, 00:25
Nö !


Für Reference = X gibts ja nur wenige Möglichkeiten.

AVCC ist wie der Namen schon sagt die Analoge Versorgung.

Internal oder Off ist meist (Ich bin nicht sicher ob es für alle gilt) die Interne Referenz von meist 2.56V.Dabei muß der Pin Aref entweder unbeschaltet oder mit nem Kondensator (zb. 50-100nF) nach Masse geschaltet werden (Letzteres ist besser)

Wenn du aber an Aref eine eigene Spannung gibst dann lautet die Option logischerweise "Aref"

Also in einer Zeile :

Config Adc = Single , Prescaler = Auto , Reference = Aref


Vieleicht ahnst du schon warum bei dir die Spannung an Aref nicht 3V sondern ca. 2.56V beträgt.(Über die kleine Differenz reden wir jetzt nicht)
Die interne Referenz ,die du ja per Config angegeben hast, zieht den Spannungsteiler herunter.
Wäre der Teiler noch niederohmiger oder ein eigener Regler würde die Referenz liefern dann würdest du damit die interne Ref. killen und den Controller beschädigen.

Leider ist die Hilfe bei diesem Thema nicht sehr ausführlich so das immer wieder Leute in die Falle Tappen.

Bluesmash
14.05.2006, 00:32
ich hab jetzt mal "reference=Aref" ausprobiert aber da gibt mir der compiler einen fehler aus "unknown config parameter"...

achso ich hab ein mega32...

aber so wie ich gesehen habe gibt es für reference nur die möglichkeiten: off,avcc und internal...

gruss bluesmash

Ratber
14.05.2006, 00:56
Kommando zurück.

Ich hab da Bascom mit was ganz anderem in einen Topf geworfen und dabei ist müll rausgekommen.

Also nochmal in Ruhe:

"AVCC" Analoge Versorgung (Pin "Avcc") gilt als Referenz.

"Internal" ist für die Controllereigene Referenz (Meist ca. 2.56V.Nicht genau.Aref braucht nen Kondensator um störungen zu vermeiden)

"Off" für eine Externe Referenzspannung an pin "Aref"

Über weitere Möglichkeiten läst MCSelec einen aber im Unklaren (Siehe nebulöse Andeutungen in der Hilfe)

Warum deine Spannung dennoch zusammenbricht weiß ich aber auch nicht.

Für mich sieht es aus als ob der Controller die Interne Referenz verwendet und damit den Teiler einfach runterzieht.
Mess mal den Strom in den Aref.
Wenn ich richtig liege dann fleisst da was.

Bluesmash
14.05.2006, 01:26
ja du liegst völlig richtig... es fliessen 0,08mA in den Controller, ich habe es Nachgerechnet und es stimmt das es genügt um meine spannung herunter zu ziehen... dann sollte ich wohl meinen spannungsteiler anpassen und dann sollte es funktionieren...

gruss bluesmash

Ratber
14.05.2006, 02:03
Nee,gerade das darf ja nicht passieren.

Bei "Off" wird die interne Ref. vom Pin getrennt.
Da dürfen höchstens noch einige mV vagabundieren.

Mess mal den Pin Aref ohne Beschaltung ob da irgendeine Spannung anliegt.
Wenn ja dann und zufällig die ca. 2.56V dann ist die interne Ref. nicht abgeschaltet.

Wenn du da einfach den Widerstandsteiler niederohmiger machst dann zerstörst du dir nur die Referenz.

Bluesmash
14.05.2006, 12:31
also ich habe jetzt mal die spannung am Aref pin gemessen und da ist nix, 0,0V
kennst du zufällig den eingangswiderstand des aref pin?

übrigens ich habe schon 2 verschiedene mega's probiert es hat bei beiden die selbe wirkung...

gruss bluesmash

Ratber
14.05.2006, 12:45
Seltsam.

Ich hab das Heut früh nochmal an nem M16 überprüft der hier vor mir liegt und da sind beim Parameter "Off" für die Ref. nur einige mV zu messen die unter der Rubrik "Messungenauigkeit" zu verbuchen sind.

Der M32 unterscheidt sich vom M16 primär nur in der Speicheraustattung.
Der Kern ist identisch (Angabe des Herstellers)


kennst du zufällig den eingangswiderstand des aref pin?


Ja,gerade nachgelesen.
Der Beträgt 32Kohm (Tabelle 122 unter "ADC Characteristics – Preliminary")

Wenn ich ne eigene Referenz nutze dann bis jetzt immer in Form eine Sehr Stabilen Aktiven Schaltung.

Den Teiler aus 10/15K werd ich nacher mal aufbauen und schauen was dabei rauskommt.

Bluesmash
14.05.2006, 12:50
wenn ich den internen widerstand der Aref ausrechnen anhand von meinen Daten komme ich auf 31KOhm.... also ist meine beschaltung für nix....
werde wohl doch den spannungsteiler mal neu machen...

Ratber
14.05.2006, 13:24
So,hab mal 10 und 15K bei Aref=Off angehangen und kann 3.021V messen.
Dann hab ich zur Kontrolle mit 100/150k getestet und komme auf 3.002V

Also am Eingangswiderstand liegt es definitiv nicht.

Schau nochmal ins Programm ob du da nicht doch irgendwo was doppelt definiert hast.

Bluesmash
14.05.2006, 13:33
in der zwischenzeit habe ich meinen spannungsteiler auf 6,6 und 15 kOhm geändert und hab jetzt 2,95V an aref... ich habe auch mal ne testmessung gemacht und bei 2,53V am adc-eingang messe ich 873... das stimmt so ziemlich genau.... komisch das es bei dir funktioniert... hast du es auch mit nem mega 32 probiert?

gruss bluesmash

--edit--
im prog ist nichts dopelt... das hab ich schon mehrmals geprüft...

Ratber
14.05.2006, 13:40
Nö,hab keinen M32 da,nur einige M16,8 und etliche Tinys.


in der zwischenzeit habe ich meinen spannungsteiler auf 6,6 und 15 kOhm geändert und hab jetzt 2,95V an aref...

Ja,mit Gewallt aber dafür dürften Spannungsteiler sowie die interne Ref "beheizt" sein.
Ich denke mal das jetzt ein relativ kräftiger Strom am Aref-Pin herscht.
Schön ist das nicht.

Was sein könnte ist das Bascom da beim M32 nen Bug hat und die Referenz nicht angewählt werden kann.
In der Def.-Datei für den M32 sollte das betreffende Register angegeben sein.

Ich schau mal nach

Ratber
14.05.2006, 13:50
So,mal nachgesehen.

Laut Datenblat liegt das betreffende Register "ADMUX" bei $07
Die Bits 7 und 6 sind REFS1 und REFS0.
Laut Tabelle 83 sind diese Bits also auf 00 zu setzen um die Externe Referenzaspannuzng an Aref zu nutzen.


Jetzt einen Blick in die m32def.dat unter was das Register "ADMUX" eingetragen ist.
Ja,auch hier unter $07


Du kannst ja mal die Zeile "Config ADC....." auskomentieren und die Einstellungen direkt am Register vornehmen.
Bzw. lass dir das Register einfach mal auf LCD,Terminal ausgeben um zu sehen ob nicht doch ein Bug vorhanden ist.

Bluesmash
14.05.2006, 13:55
am Aref fliesst imernoch ein strom von 0,08mA....
und wenn ich ja am unbeschalteten aref die spannung messe liegt ja auch keine an... dann ist ja auch keine referenz eingeschaltet...

hmm wie kann ich mit bascom direkt auf das register zugreifen um es auf dem LCD anzuzeigen? so gut kenn ich mich leider noch nicht aus...

hättest du mir eventuell einen kleinen codeschnipsel..?

Ratber
14.05.2006, 14:02
Ja,80µA sind unerheblich.
Ich versteh nur nicht warum beim Teiler dann solche abweichungen auftreten.


Was die Ausgabe des Registers betrifft so ist das einfach.


Lcd bin(Admux)

Damit wird das register gleich Binär dargestellt.
Das ist schon alles.

Bluesmash
14.05.2006, 14:14
naja für mich sind 80uA so gut wie nichts ;)

also admux sieht bei mir wie folgt aus: 00000111

gruss bluesmash

Ratber
14.05.2006, 14:19
Ja,Referenz af 00 also Extern.
Adlar ist 0 also aus (Linksbündiges Ergebnis)
MUX ist auf 00111 also ADC7 ist angewählt.

Ja,soweit alles in Ordnung

Bluesmash
14.05.2006, 14:23
aber wenn doch der aref einen eingangswidersatnd von 32kOhm hat und daran 3V anliegen dann fliesse doch laut URI 0,09375 mA...???


gruss bluesmash

Ratber
14.05.2006, 14:39
Ja,da haste Recht.

Ich hab das mal bei mir nachgemessen.(10/15k)
Da fleißt nichtmal ein µA

Deine interne Referenz läst sich einfach nicht abschalten.

Da du das bei mindestens zwei M32 so hast (Hab ich so jedenfalls aufgefasst) kann ich entweder auf nen Bug in Bascom tippen oder du hast wirklich 2 Controller mit ein und der gleichen Macke erwischt.

Ich kann das wie gesagt leider nicht Modellspezifisch überprüfen da ich keinen M32 hier hab.

Bluesmash
14.05.2006, 15:19
die interne referenz ist doch abgeschaltet??
- ich habe keine spannung am unbeschalteten aref.
- und admux ist anscheinend auch richtig eingestellt.

hmm und das beide den selben bug haben glaube ich auch nicht, da sie mit grosser wahrscheinlichkeit auch nicht aus der selben serie stammen, der eine habe ich vo ca einem jahr bei robotikhardware gekauft und der andere bei distrelec vor ca. 2 monaten...

währe schön wen das jemand mit nem Mega32 auch noch ausprobieren könnte...

gruss bluesmash

Ratber
14.05.2006, 16:03
Ja,wie gesagt kann ich dein Problem nicht nachvolziehen.

Bei 10/15k und auch 100/150k komme ich auf ziemlich genau 3V und dabei fließt kein Strom am Controllerpin bz, unter 1 µA

Ich hab das ganze gerade an nem M8 probiert und da ebenfalls das Gleiche.

-tomas-
14.05.2006, 22:53
als Nachtrag - ein lesenswerter Artikel zu den ADC-Registern und Bascom:

Steuerung des internen AD-Umsetzers mit BASCOM-AVR
http://www.ckuehnel.ch/Download/megaAVR%20ADC.pdf