Ist es mit dem ADC des ATMega644 nicht möglich, die Bandgap-Spannung
(1.1V) auf den ADC-Eingang zu legen und mit der interen 2.56V-Referenz
zu messen?!
Der angehängt Code sollte sowohl AVCC als auch die 2.56-Referenz mit
Hilfe der Bandgap-Spannung messen. Mit AVCC als Referenz geht es und
AVCC wird, bezogen auf die Bandgap-Spannung, zu 5.03V ausgerechnet. Aber
mit 2.56V-Referenz kommt für die Referenz nicht ein Wert in der Nähe von
2.56V raus, sondern 3.72V.
Hintergrund ist, dass der Umweg über die Bandgap-Referenz ein Verhältnis
AVCC-zu-2.56V-Referenz liefern würde. Dieses Verhältnis würde in einer
anderen Gleichung die absolute Höhe der Spannungen herausfallen lassen
(ein Spannungsteiler mit KTY wird an AVCC betrieben aber mit
2.56V-Referenz gemessen).
Die 2,56V SIND die Bandgap! Der AVR hat doch keine ZWEI
Referenzspannungen. Oder täusche ich mich da?
>Hintergrund ist, dass der Umweg über die Bandgap-Referenz ein Verhältnis>AVCC-zu-2.56V-Referenz liefern würde. Dieses Verhältnis würde in einer>anderen Gleichung die absolute Höhe der Spannungen herausfallen lassen>(ein Spannungsteiler mit KTY wird an AVCC betrieben aber mit>2.56V-Referenz gemessen).
Und warum misst du nicht einfach mit Avcc als Referenz?
MFG
Falk
> Die 2,56V SIND die Bandgap! Der AVR hat doch keine ZWEI Referenzspannungen. Oder
täusche ich mich da?
Das sind zwei Spannungen, 1.1V und 2.56V, die aber voneinander abhängen
("The internal 2.56V reference is generated from the internal bandgap
reference (VBG) through an internal amplifier").
> Und warum misst du nicht einfach mit Avcc als Referenz?
Ich brauche die Auflösung.
Dietmar E wrote:
> Das sind zwei Spannungen, 1.1V und 2.56V, die aber voneinander abhängen> ("The internal 2.56V reference is generated from the internal bandgap> reference (VBG) through an internal amplifier").
Was hast du dann davon, die 1,1V Referenz relativ zur 2,56V-Referenz zu
messen? Das Ergebnis dieser Messung ist vom absoluten Wert der Bandgap
unabhängig und völlig nutzlos.
Wenn du mit der Toleranz der internen Referenz unzufrieden bist, musst
du entweder eine externe Referenz verwenden, oder die interne
kalibrieren.
@ Dietmar E (Gast)
>Das sind zwei Spannungen, 1.1V und 2.56V, die aber voneinander abhängen>("The internal 2.56V reference is generated from the internal bandgap>reference (VBG) through an internal amplifier").
Also DOCH nur EINE Spannung! Wenn du da eine Relativmessung machst misst
du den Verstärkungsfehler des OPVs. Und dann?
>> Und warum misst du nicht einfach mit Avcc als Referenz?>Ich brauche die Auflösung.
???
Was hat die Referenzspannung mit der Auflösung zu tun? So ziemlich gar
nichts. Deine 10 Bit hast du auch bei AVcc als Referenz.
MfG
Falk
> Ich kann nicht recht nachvollziehen, warum durch Messung der Bandgaps
relativ zueinander irgendwas besser werden sollte.
Wenn man AVCC zu 1.1V kennt und 2.56V zu 1.1V kennt, dann kennt man auch
AVCC zu 2.56V. Und dieser Faktor AVCC/VREF vereinfacht andere
Gleichungen, in denen bisher sowohl AVCC also auch die 2.56V-Refernz
auftauchen.
@ Dietmar E (Gast)
>Wenn man AVCC zu 1.1V kennt und 2.56V zu 1.1V kennt, dann kennt man auch>AVCC zu 2.56V. Und dieser Faktor AVCC/VREF vereinfacht andere>Gleichungen, in denen bisher sowohl AVCC also auch die 2.56V-Refernz>auftauchen.
Ich glaube du denkst zu kompliziert.
MFg
Falk
> Was hat die Referenzspannung mit der Auflösung zu tun? So ziemlich gar
nichts.
Wenn ich eine Spannung von beispielsweise 2.1V messen will, die in einem
Spannungsteiler ensteht, der mit 5V betrieben wird, dann werde ich diese
Spannung mit 2.56V-Referenz messen und nicht mit 5V.
Dietmar E wrote:
> Wenn man AVCC zu 1.1V kennt
Leider sind die 1,1V irgendwas zwischen 1,0V und 1,2V.
> und 2.56V zu 1.1V kennt,
Da müsste eigentlich völlig unabhängig vom exakten Wert der
Bandgap-Referenz 1024*(1,1/2,56) rauskommen, weil du damit nichts
anderes misst, als den Spannungsteiler des internen Referenzverstärkers.
> dann kennt man auch AVCC zu 2.56V.
Im Rahmen der Toleranz der 1,1V-Referenz. Also +/-10%.
Münchhausen hat sich bekanntlich am eigenen Schopf aus dem Sumpf
gezogen. Du machst hier auch nichts anderes.
@ Dietmar E (Gast)
>Wenn ich eine Spannung von beispielsweise 2.1V messen will, die in einem>Spannungsteiler ensteht, der mit 5V betrieben wird, dann werde ich diese>Spannung mit 2.56V-Referenz messen und nicht mit 5V.
Milchmädchenrechnung. Ein solides ADC-System hat EINE ordentliche
Referenz und passende Spannungsteiler bzw Eingangsverstärker. Wenn
nämlich dein Signal aus eine Spannungsteiler kommt, kann man den auch
auf 5V Vollausschlag dimensionieren.
MfG
Falk
> Leider sind die 1,1V irgendwas zwischen 1,0V und 1,2V
Das ist mir schon klar, aber das es wäre bessere, als eine
2.56V-Referenz mit ähnlicher Variationsbreite PLUS die Variationsbreite
von VCC. Wenn ich VCC über die Referenzspannugn ausdrücken kann, wäre
das Ergebnis genaus, als einfach 5V anzunehmen.
> Da müsste eigentlich völlig unabhängig vom exakten Wert der
Bandgap-Referenz 1024*(1,1/2,56) rauskommen
Kommt aber bei mit nicht annähernd heraus.
@ Dietmar E (Gast)
>> Leider sind die 1,1V irgendwas zwischen 1,0V und 1,2V>Das ist mir schon klar, aber das es wäre bessere, als eine>2.56V-Referenz mit ähnlicher Variationsbreite PLUS die Variationsbreite>von VCC. Wenn ich VCC über die Referenzspannugn ausdrücken kann, wäre>das Ergebnis genaus, als einfach 5V anzunehmen.
??? Warum?
für deine KTY nimmtst du AVCC als Referenz und damit machst du eine
Ratiometrische Messung, unabhängig von AVCC!
>> Da müsste eigentlich völlig unabhängig vom exakten Wert der>>Bandgap-Referenz 1024*(1,1/2,56) rauskommen>Kommt aber bei mit nicht annähernd heraus.
Dann ist was falsch eingestellt oder ein Hardwareproblem? 100nF an AREF?
MfG
Falk
Falk Brunner wrote:
> für deine KTY nimmtst du AVCC als Referenz und damit machst du eine> Ratiometrische Messung, unabhängig von AVCC!
Ich vermute, dass sämtliche interessanten Werte seines externen Teilers
unterhalb von 2,5V liegen. Dann ergibt sich bei Verwendung der internen
Referenz tatsächlich eine höhere Auflösung (Faktor 2).
Natürlich belügt er sich damit nur selber, denn nun hat er die
Toleranzen der internen Referenz mit drin, sowohl die Grundtoleranz als
auch die Spannung- und Temperaturabhängigkeit. Die eine kriegt er durch
Kalibrierung weg, die andere nicht. Was netto weniger Genaugkeit ergeben
dürfte, als ohne diesen Zirkus.
Aber wenn nur Auflösung nötig ist, nicht Genauigkeit, dann kann man das
so machen.
> Wenn nämlich dein Signal aus eine Spannungsteiler kommt, kann man den auch auf
5V Vollausschlag dimensionieren
Du solltest Dir eigentlich denken können, dass KTY im
Spannungsteiler-Aufbau eine Minimallösung ist, und dass es da wenig zu
dimensionieren gibt: Der eine begrenzende Faktor ist der Strom (<< 2 mA;
Eigenerwärmung). Der zweite gegebene Faktor ist der Widerstandsbereich
des KTY (z.B. 2K - 5K). Der dritte Faktor sind die verfügbaren
Versorgungsspannungen. Damit ist der Spannunsteiler festgelegt und man
kann rein gar nichts mehr "auf Vollausschlag dimensionieren". Ich messe
die Spannung über einem 1.4K-Präzisionswiderstand, der mit dem KTY den
Spannungsteiler bildet (zwischen 5V) und an dem 1.1V bis 2.3V abfallen,
die vom ADC gemessen werden. Zwischen 0 und 150 Grad reicht das für 0.3
Grad Auflösung.
@ Dietmar E (Gast)
>Spannungsteiler bildet (zwischen 5V) und an dem 1.1V bis 2.3V abfallen,>die vom ADC gemessen werden. Zwischen 0 und 150 Grad reicht das für 0.3>Grad Auflösung.
Ja und? Mit AVcc=5V=Referenz macht das eine AUFLÖSUNG von 1,2/5*1024=
245 LSB. Macht 0,6K AUFLÖSUNG. Reicht das nicht? Die Genauigkeit ist
sowieso um mind. den Faktor 5 schlechter. So what. Der KTY ist KEIN
Präzisonssensor. Auch wenn man das nochsolange durch die Exceltablle
kurbelt.
MFG
Falk
> Natürlich belügt er sich damit nur selber, denn nun hat er die
Toleranzen der internen Referenz
Nein ;) Ich weiss durchaus, dass ich zumindest die Variationsbreite
einer Spannung (Referenz) immer im Ergebnis haben werde. Aber im Moment
habe ich zwei Fehlerquellen, da VCC und die 2.56V-Referenz in ihren
Abweichungen praktisch unabhängig voneinander sind.
Natürlich werden die KTY später kalibriert (automatisch per TSic309WTB).
Aber um Platz im EEPROM zu sparen, werden nur wenige Bit Kalibierdaten
pro Punkt gespeichert, und zwar als Abweichung zur berechneten Kurve
nach KTY-Datenblatt. Deswegen sollte die Kurve von Anfang an schon
einigermassen genau sein und nicht 10 Grad danebenliegen.
> Macht 0,6K AUFLÖSUNG. Reicht das nicht?
Ich finde das zu schlecht. Aber wenn mir niemand die ursprüngliche Frage
beantworten kann, würde ich erst eine (1) Messung mit 5V Referenz machen
und darüber den Bezug von AVCC zu 2.56V-Referenz ausrechnen.
@ Dietmar E (Gast)
>einer Spannung (Referenz) immer im Ergebnis haben werde. Aber im Moment>habe ich zwei Fehlerquellen, da VCC und die 2.56V-Referenz in ihren>Abweichungen praktisch unabhängig voneinander sind.
Eben. Was erst recht für AVCC als Referenzspannung spricht.
RATIOMETRISCHE MESSUNG!
>Natürlich werden die KTY später kalibriert (automatisch per TSic309WTB).>Aber um Platz im EEPROM zu sparen, werden nur wenige Bit Kalibierdaten>pro Punkt gespeichert, und zwar als Abweichung zur berechneten Kurve>nach KTY-Datenblatt. Deswegen sollte die Kurve von Anfang an schon
AUA! Sag mir bite nicht, dass du die Kennline aufnimmst und speicherst?
Das ist für DEN Sensor totaler Overkill. Mach ne Zweipunktkalibrierung,
speichere Offset und Gain und fertig. Alles andere ist Augenwischerei.
Für den Aufwand(=Preis) bist du mit einem digitalen Temperatursensor
zehnmal besser dran (genauer UND billiger).
MFG
Falk
> AUA! Sag mir bite nicht, dass du die Kennline aufnimmst und speicherst?
Das ist für DEN Sensor totaler Overkill.
Ja. Ein paar Zeilen Code. Den Overkill nehme ich gelassen.
> Für den Aufwand(=Preis) bist du mit einem digitalen Temperatursensor
zehnmal besser dran (genauer UND billiger)
Das stimmt natürlich und DS18B20 und TSic306 (ZACwire) können auch
angeschlossn werden. Aber der KTY ist robuster. Ich will die Sensoren im
Grenzbereich betreiben: es geht um einen Espresso-Boiler, dessen
Steam-Thermostat bei 147 Grad abschaltet. Das ist, mit Overshoot, vmtl.
knapp über der maximale Grenzschichttemperatur der Silizium-Sensoren
(150 Grad, DS18B20 sogar nur 125 Grad). Gaggia selbst verbaut den KTY11,
der scheint das abzukönnen.
> Was kommt denn heraus? Und zwar als ADC-Resultat, also ohne Umrechnung
ADC = 303 bei 1.1V Bandgap am Eingang und 2.56V Referenz (303 entspricht
0.76V).
gibt bei mir ADC=443 oder ADC=444 auf ATMega644. 1.1/2.56*1024 gibt 440
- also ich finde das passt ganz gut.
Was hängt bei dir extern an AREF dran? Häng da mal ein Messgerät ran, ob
das einigermassen passt.
Danke, der Code funktioniert und Dein Beispiel mit der Endlosschleife
hat mich auf die Ursache des Problems gebracht: ich muss anscheinend
nach dem Initialisieren des ADC deutlich länger auf das Stabilisieren
der Bandgap-Refeferenz warten, als im Datenblatt angegeben (angegeben
sind 70us Startup-Time). Erst nach 1-2ms kann ich den exakten Wert
erwarten. Sehr komisch. Da ich mit AVCC dieses Problem nicht habe, kann
es nur an der Bandgap-Referenz liegen. Aber eine Abweichung um den
Faktor 30 gegenüber dem Startup-Zeit im Datenblatt ...?!
Kondensator an AREF? Mag sein, dass der die Startup-Time beeinflusst,
abhängig vom Innenwiderstand der Referenz, und da ist die Bandgap wohl
etwas im Nachteil.
Habe ich bei einem Mega168 auch schon erlebt, bei dem ich den AC für
Erkennung von Stromausfall verwendete. Und auch erst mal die Zeit
nachmessen musste, weil's nicht tat. Lief dann auf gemessene 130µs raus.
Allerdings ohne ADC also auch ohne AREF.
Hagen schrieb:
> Ein Cap an AREF beeinflusst die Stabilisierungszeit der AREF> beträchtlich, wenn man im laufenden Betrieb die AREF des ADC umschaltet.>> Gruß Hagen
Ich bin gerade über den thread gestolpert, weil ich das Startup-Time
Problem für die Bandgap Referenz auf einem attiny45 auch habe.
Bei 1,1V Referenz ist aber sowieso kein externer C vorgesehen. Daran
kann es also eigentlich nicht liegen. Trotzdem braucht es bis zu 500us
bis stabile Werte geliefert werden.
Gibt es dafür inzwischen eine Erklärung?
viele Grüße!
Klaus