Hi! Ich habe folgendes Problem: Ich möchte mit dem Atmel mega8 Spannungen von 0 - 0.5V messen. Genauigkeit ist relativ egal, ob ich 0,2V oder 0,25V ist nicht wichtig. Auf den genauen Wert kommts auch nicht an, muss nur die tendenz (größer/kleiner) wissen. Ich habe nun versucht den ADC des atmels zu benutzen. Dazu habe ich AREF auf 2V gelegt und kann dann auch von 0-2V messen. Wenn ich jetzt aber AREF kleiner mache, dann messe ich bei AREF < 1.2V nur noch 0x3FF. (am ADC input liegen aber nur 0,1V an) [ADMUX = (0<<REFS1) | (0<<REFS0) | (1<<MUX0);] Nun die Frage: Wie klein darf AREF sein ? Hat jemand sowas schonmal erfolgreich gemacht ? Ich habe dazu im Internet/den Appnotes nirgendwo was gefunden... Beschaltung: - AVcc = 5V - Vcc = 5V - messen mit Pin ADC1 - AREF 2V geht - AREF < ~1.2V geht nicht Danke schonmal ;) Bye, Simon
Hi! Oha das hab ich irgendwie übersehen.. Hab nur nach aref gesucht. Vielen Dank! Gruss, Simon
Hallo simon, du kannst doch auch das signal, dass du messen möchtest mit einem OPV Verstärken und an dein VREF anpassen und im Controller zurückrechnen. Auch wenn du keine hohe Genauigkeit brauchst wie du sagst, so würde ich da wohl machen, wenn ich kleine Signale messen möchte. Also ... best regard CB
@Simon: Mich würde mal interessieren, mit welcher Spannung Du den ATMEGA8 versorgt hast, als er ab AREF=1,2V (und drunter) nur noch Blödsinn digitalisierte. Ich habe ein Exemplar, das bei Ub=5V und AREF=1,2V noch zuverlässig und fast bis runter zu 1,1V immer noch richtig digitalisierte. Bei geringeren Werten für AREF das gleiche wie bei Dir: ausgelesener Wert am Anschlag. Ich könnte mir vorstellen, dass die minimale Spannung an AREF bei geringeren Betriebsspannungen als 5V weniger weit unterhalb der im Datenblatt angegebenen Grenze liegen darf. Schade, dass Atmel keine Kennlinie für Vref an Aref in Abhängigkeit der Versorgungsspannung angibt, denn dann könnte man den ADC in einigen Anwendungsfällen mir Rückendeckung vom Datenblatt sicher noch ein wenig weiter ausreizen. Wobei in jeder Situation nutzbare Referenzspannungen von 1V oder noch drunter natürlich noch schöner gewesen wären :-/ Gibt's ja AFAIK, nur eben nicht beim MEGA8. Bzw. es wäre den meisten sicherlich auch schon geholfen, wenn man die zu Vergleichende Bezugsspannung am negativen Eingang des internen OP einfach ein wenig höher als GND legen könnte. Der nötige Pin dafür ist aber leider nicht vorhanden :-( AGND einfach höher zu legen geht vermutlich auch nicht, oder hat das schonmal jemand ausprobiert? (lt. Datenblatt sind +/- 0,3V bezogen auf GND erlaubt für AGND) Ein klein wenig unter den angegebenen 2,0V für AREF geht sicherlich immer, aber natürlich auf eingene Gefahr und nicht im professionellen umfeld, bzw. bei Serienprodukten. Aber wer's für seine Bastelei ein klein wenig genauer möchte, der kann ja ruhig z.B. auf AREF=1,5V runtergehen, sofern sein Exemplar des ATMEGA8 denn damit noch zuverlässig sinnvolle Werte digitalisiert. Ich hatte genau das gleiche Problem, glaube allerdings, dass Atmel die Untergrenze von 2V erst in der letzten Revision des Datenblatts auf S.245 ergänzt hat und vorher schlichtweg nichts dazu angegeben hatte... (ich hatte leider die vorletzte Version des Datenblatts) :-( Außerdem wurde korrigiert, dass beim Mega8 ADC4 und ADC5 sehr wohl 10 statt 8 Bit können. (Ich habe diese beiden Dinge auch schon gestern ins AVR-Wiki hier eingetragen :-)
Oops, die Frage nach der Betriebsspannung, die Du genutzt hat, hat sich erledigt... lesen müsste man können ;-) Hat evtl. jemand ein Exemplar, das bereits mit 1,4 oder 1,5 V an AREF nicht mehr richtig digitalisiert? Wäre cool, wenn Atmel mal eine ATMEGA8-Enhanced-ADC-Version rausbringen würde, die ab 0,5V AREF anfängt :-) Oder eben eine Version mit Aref- und Aref+ Pin, die wäre dann aber nicht mehr als Ersatz für alte Atmega8s nutzbar.
Hallo Simon, kannst Du nicht den "Differential Mode" aktivieren und von aussen 0.5Volt an deinen (übers MUX Register eingestellten) negativen Eingang legen? Vielleicht funktioniert das ja... Gruß Axel
Wenn es nicht so genau sein soll, dann kann man auch mit AVCC als Referenz messen. Z. B. 0,5V = 1/10 von 5V 1/10 von max. 1023 des ADC = 102 102 wäre also Dein Limit in der Software für 0,5V 51 sind dann 2,5V Soll es doch genauer aber nicht so schnell sein, kann man auch mehrere ADC-Werte aufaddieren, vielfaches einer 2er-Potenz (8, 16 32 etc.) und das dann durch diese 2er-Potenz teilen. Dadurch ergibt sich dann auch ein Mittelwert. MfG Andi
Hallo Simon, so einen AVR gibt es bereits, der kann ab 125 mV messen. Das ist der ATtiny26 der hat intern einen zuschaltbaren 20-fach-Verstärker. Das heißt, wenn du 125 mV anlegst, dann 20-fach verstärkst hast du bei 2,5 V Referenzspannung die volle Auflösung für die 125 mV. Lies mal im Datenblatt Attiny26 ab Seite 94 nach. felack
Kann sein, dass ich so eine ähnliche Problematik auch bald habe, denn ich möchte mir ein Bleiakku-Ladegerät basteln, das die Batteriespannung und den Ladestrom an einem Shunt mist. Und da fallen ja auch nur paar Millivolt ab. Könnte man nicht einfach einen OP-Amp mit Spannungsverstärkungsbeschaltung davor stellen? Wäre doch nur ein 8-Pin IC und paar Widerstände?
Ein externer OpAmp ist (meine Meinung) immer die bessere Variante, wenn´s genau sein soll. Allerdings muß es dann schon ein Rail to Rail OP sein oder man braucht halt ´ne negaive Hilfsspannung von ein paar Volt. Wichtig ist ein eng tolerierter Spannungsteiler über dem OP mit möglicht geringem Temperaturkoeffizienten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.