PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC Problem Tiny26



HeinerDE
23.09.2004, 23:23
Hallo zusammen,
ich habe ein Problem beim Auslesen des AD-Converters im Tiny26.
Beim Einlesen von analogen Spannungen gegen die interne Refenz und gleichzeitigem Nachmessen dieser Spannungen mittles Digitalmultimeter ist mir aufgefallen, daß die interne Referenz nicht wie im Datenblatt 2,56V sein kann sondern 2,85V beträgt (Vin*1024/ADC) ????????????????
Wie kann das sein? Ist der Tiny defekt? (hab meinen anderen leider quarzlos funktionsuntüchtig gemacht) Oder hat jemand eine simple Erklärung dafür?

'Config Adc = Single , Prescaler = Auto , Reference = Internal
'n=Getadc(2)

Gruß
Heiner

24.09.2004, 08:34
Hallo Heiner,

ich hatte ähnliche Probleme mit dem Tiny26, wenn man sich jedoch den Inhalt der Konfigurationsregister ansieht, stellt man fest, daß der Befehl config adc in bascom nicht kompatibel mit dem Tiny26 ist, ob das auch die interne Referenz betrifft kann ich auswendig nicht sagen (ich hatte Probleme mit der externen da beim Tiny26 mit Bascom andere Referenzen gesetzt werden als Bascom vorgibt). Du solltes auf jeden Fall den Registerinhalt prüfen und nach Datenblatt anpassen.

Gruß
Jörg

24.09.2004, 12:30
Hallo Jörg,
ich hab mal auf Dein Anraten hin alles über die Register gemacht. REFS0 und REFS1 werden bei "Reference = Internal" auf "Internal Voltage Reference (2.56 V), AREF pin (PA3) not connected" gesetzt. Egal wie ich es anstelle. die gemessen Werte stimmen nur wenn ich gegenüber AVCC oder eine externe Referenz messe. Also scheint die interne Referenz tatsächlich daneben zu hängen. Ich werd mir mal ein paar andere Chips zum Vergleich besorgen und berichten, wenn es so weit ist.
Gruß
Heiner

04.11.2004, 18:42
Hi.
Ich plane gerade ein Projekt mit einem Tiny26. Die Schaltung soll die Spannung eines Bleiakkus überwachen und ggf. ein bistabiles Relais schalten, falls nachgeladen werden muss.
Dazu muss ich natürlich auch die Akkuspannung messen.

Ist das Problem mittlerweile beseitigt?

09.11.2004, 16:58
Hi.
Das ist das erste Mal, dass ich mich an einem µC mit ADC versuche.
So, wie ich das verstanden habe, kann man auch gegen eine externe Referenz (die an AREF anliegt) messen, wobei AREF das Maximum der zu messenden Spannung begrenzt.
Kann mit jemand da ein Beispielprojekt zukommen posten?

harryup
10.11.2004, 15:39
hi,
ich hab noch nie erlebt, dass die interne referenz genau 2,56v beträgt, bei keinem avr. steht aber auch im datenblatt jedes avr, da gibts immer einen typisch-wert von 2,56, die zulässigen abweichungen nach oben oder unten sind aber ganz ordentlich. wer's supergenau braucht muss die referenz extern erzeugen und an aref anlegen. die interne referenz ist aber auch nicht übel, auch wenn sie nicht 2,56v beträgt. sie hat den vorteil, selbst bei verorgungsspannungschwankungen und temperaturänderungen stabil zu bleiben, was extern ganz schön aufwand macht. für mega8 an einigen ausgemessen: von -25°C - 70°C mal ganze 3mv abweichung, wow, das ist doch was. die anpassung an 'schräge' werte der vref kann man ja per software machen.
gruss, harry

p.s. das projekt mit der akkuspannung: für spannungsüberwachung allemal ok, da bist du eher auf eine stabile referenz angewiesen, ultrapräzise muss das nicht sein und die spannung auf die 2. nachkommastelle genau ermitteln sollte mehr als präzise genug für bleiakkus sein.

10.11.2004, 19:12
Jetzt aber noch eine kleine Frage: Ich habe auf einer Seite gelesen, dass die Eingangsspannung nicht größer als die Referenzspannung sein darf.
Gilt das nur für die externe Referenz?
In meinem Schaltplan habe ich die Betriebsspannung des µCs auch auf AREF gelegt. Stabilisiert wird die Spannung mit einem 7805er Regler.

harryup
16.11.2004, 13:51
hi,
das bringt den avr nich um, wenn der input>vref ist, du kriegst halt nur immer 1023 als ergebnis. die betriebsspannung zu nehmen ist nich so toll, weil. 1. ist der 7805 nicht temperaturstabil. 2. verändert sich die versorgungsspannung mit der last. das führt halt zu 'zappelnden' werten, mit der int. ref wird's richtig gut. was noch enorm wichtig ist, häufig wird in examples so geschrieben:

start adc
x=getadc(x)
stop adc

sehr üble geschichte, der befehl start adc macht nix anderes, als die vref aufzubauen. bis die perfekt steht, speziell wenn noch'n c van vref hängt, vergeht 'n bischen zeit.
ist gut wenn ein waitms x zwischen start und get steht, dann werden die ergebnisse immer schön gleich.
gruss, harry

16.11.2004, 19:26
HeinerDE schrieb aber, dass er beim Messen gegen die interne Referenz des Tiny26 eine Abweichung feststellen musste.
Wie kann man diese Abweichung beheben und wie groß ist die Abweichung (in V)?

HeinerDE
25.11.2004, 21:59
Hi zusammen,
ich hab mir jetzt noch ein paar tinys besorgt, bei allen das gleiche Problem, Referenzspannung um die 2,85 Volt, also scheint das Problem in meinem Testaufbau oder im Programm zu liegen (!???) Wie groß die Abweichung bei einer Messung dann ist, kann sich jeder selbst ausrechnen. Ich hab übrigens die gleiche Routine verwendet wie oben:
start adc
x=getadc(x)
stop adc
ich werde gleich mal testen, ob es daran liegt...

25.11.2004, 22:06
Tja, dann muss man wenigstens auch als BASCOM-Programmierer mal ins Datenblatt gucken, auch wenns schwer fällt :-)

25.11.2004, 22:23
Soll heißen, das die interne Referenz nicht alzu genau sein muß.

Laut Datenblatt kann sie im Bereich 2,3 bis 2,7 Volt liegen.

Größere Abweichung sind jedoch auch bekannt.

MFG
Dieter

HeinerDE
26.11.2004, 00:12
naja, Auswirkungen durch den obigen Code sind nun wirklich nicht nachweisbar, daran liegts jedenfalls nicht. 2.85 Volt sind schon heftig, bei solchen Werten kann man sich auf nichts mehr verlassen. Wenn man 5 oder mehr Spannungen zu messen hat wird der Aufwand an Korrektur (ob durch Soft- oder Hardware) nahezu unüberschaubar. Ich hab nicht nur das Datenblatt rauf und runter gelesen sondern auch bei Atmel nach möglichen Lösungen gesucht. Nach deren Angaben kann man in einem Meßverfahren für jeden einzelnen Chip Korrekturdaten ermitteln, die man im EEProm ablegt und die gemessenen Werte damit abgleicht. Ihr habt nicht rein zufällig eine passende Software dafür... oder ?? ;-) Ihr Schlaumeier, ich will doch hier keine Sprüche lesen sondern mögliche Lösungen erfahren, sonst kann ich mir das Schreiben sparen!!
Gruß
Heiner

haselhuhn
26.11.2004, 07:13
Halloi Jungs

Mit dem Tini Tiger musste ich mal erfahren, dass gar nicht alles so ist wie es sein soll. Bei mir hatte der ADC aussetzer und der PWM läuft auch nicht sauber. ALSO: VERTRAUT NIE EINEM TINY!!!!!!!!!!!!!!!!!!!

HeinerDE
26.11.2004, 14:46
welche Alternative hab ich zum Tiny? 10-Bit-ADC, 2k Flash, 2k RAM, Gehäuse ?

haselhuhn
26.11.2004, 15:06
Du must dich an ein anderes Gehäuse gewöhnen, aber SingleCHip prozessoren gibt es tausende. Für Bastler ist sicher AMD eine Variante. Ich bevorzuge Cygnal Prozessoren.

harryup
27.11.2004, 10:21
hi, ich nochmal,
es gibt massig controllers, die haben keine referenz an bord sondern nur 'nen input, an den die ref angelegt wird. avr sind da schon vornehm ausgestattet, die interne referenz ist immerhin vorhanden. für viele messungen ist's auch völlig wurscht ob die spannung nun höher oder niedriger ausfällt, wichtig ist doch oft nur, die tendenz einer grösse festzustellen, steigt der wert oder fällt er. wer's dann doch geneu braucht kann sich eines lm336 oder lt1029 bedienen, im letzteren fall kost die ref mehr als der controller, dafür geht's auch nicht mehr viel genauer.
gruss, harry