Forum: Mikrocontroller und Digitale Elektronik Temperaturmessdifferenzen zwischen Atmegas


von Alfons G. (alibaba55)


Lesenswert?

Hallo,
Ich betreibe schon jahrelang eine Solaranlage mit Heizungssteuerung mit 
meinem Atmega16. "Zur Vorsicht" besorgte ich mir gestern nochmal einige 
Atmegas.
Dass zwischen den Prozessoren geringe Temperatur-Messdifferenzen 
bestehen ist mir immer schon aufgefallen. Mit den neuen Prozessoren ist 
das aber nun "krass": 5 Grad Differenz bei der Messung von ca 55 Grad!
Mich wundert dies, wie kann man sich das erklären?
Die Hardware, die den Microprozessor umgibt ist identisch und die 
Software auch. Das Verhältnis Masse-Messspannung zu 
Messspannung-Maximalspannung ist in jedem Fall somit sehr konstant. 
Trotzdem sind so große Differenzen bei den verschiedenen ADT-Wandlern 
der verschiedenen Microprozessoren.

A. Geigenberger

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Alfons G. schrieb:
> Die Hardware, die den Microprozessor umgibt ist identisch und die
> Software auch.

Aber beides uns unbekannt und die Gedankenleser sind gerade im Urlaub.

von PoE (Gast)


Lesenswert?

Alfons G. schrieb:
> Die Hardware, die den Microprozessor umgibt ist identisch

Wurde nur der Prozessor ausgewechselt oder auch die "identisch" 
aufgebaute Hardware? Dir ist bekannt, das elektronische Bauteile mit 
einer Tolleranz behaftet sind. Normale Kohleschichtwiderstände haben 
beispielsweile eine Tolleranz von 10%. Das kann in der Kombination schon 
Messunterschiede von 5°C ergeben.

von Wolfgang (Gast)


Lesenswert?

PoE schrieb:
> Dir ist bekannt, das elektronische Bauteile mit
> einer Tolleranz behaftet sind. Normale Kohleschichtwiderstände haben
> beispielsweile eine Tolleranz von 10%.

So toll ist das mit der Toleranz manchmal gar nicht.

Bei Temperaturmessungen würde ich immer einen Spezialisten (i.e. 
Temperatursensor) befragen.

Alfons G. schrieb:
> Mit den neuen Prozessoren ist das aber nun "krass": 5 Grad Differenz
> bei der Messung von ca 55 Grad!

Und was sagt das Datenblatt zur garantierten oder typischen Genauigkeit 
der Temperaturmessmimik im Prozessor?

von Jakob (Gast)


Lesenswert?

Die Eigenschaften (max. mögliche Fehler, Toleranzen) der
AD-Wandler sind im Datenblatt der AT-µCs dokumentiert.

Die Frage ist doch, ob du "blauäugig" die Toleranzen der AT-µCs
ignoriert hast, oder die Toleranzen der "umgebenden Hardware",
oder ob es ECHTE Ausreißer sind.

Meckern alleine hilft nicht viel.

von Schreiber (Gast)


Lesenswert?

Jakob schrieb:
> Die Frage ist doch, ob du "blauäugig" die Toleranzen der AT-µCs
> ignoriert hast, oder die Toleranzen der "umgebenden Hardware",
> oder ob es ECHTE Ausreißer sind.

Fehlerrechnungen mit Worst-Case-Annahmen sind teilweise erstaunlich.

Wenn man einen Spannungsteiler mit 2 Widerständen mit je 10% Fehler 
aufbaut, dann kann die Abweichung des Teilverhältnisses bei +-20% des 
Sollwertes liegen. Aber man hat nicht nur 2 Bauteile, da hilft nur 
genaue Bauteile (teuer) verwenden und/oder kalibrieren (lästig)

Beispiel:
Soll: Spannungsteiler aus 2 Widerständen mit je 100Ohm.

Extrembeispiel mit maximalem Fehler: Widerstand 1 mit 90 Ohm, Widerstand 
2 mit 110Ohm

Alfons G. schrieb:
> Die Hardware, die den Microprozessor umgibt ist identisch und die
> Software auch. Das Verhältnis Masse-Messspannung zu
> Messspannung-Maximalspannung ist in jedem Fall somit sehr konstant.
> Trotzdem sind so große Differenzen bei den verschiedenen ADT-Wandlern
> der verschiedenen Microprozessoren.

Man prüfe alle Spannungsteiler, Messverstärker und 
Referenzspannungsquellen.
Bei hohen Genauigkeitsanforerungen sollt man hier nicht auf die in den 
µC eingebauten Baugruppen setzen.

von Julian B. (julinho)


Lesenswert?

(Temperatur)Messgeräte kann und sollte man Kalibrieren.

von Alfons G. (alibaba55)


Lesenswert?

Hallo,

Danke für die vielen und schnellen Antworten!

@ Peter Dannegger: Gedankenleser sind nicht nötig. Die Fragestellung ist 
- wie ich meine - ausreichend genau. Man hat einen Spannungsteiler und 
man hat eine Software: Beides ändert sich nicht. Trotzdem liefern 
verschiedene Atmegas sehr verschiedene Messwerte. Welche Infos fehlen da 
noch?

@ PoE: Es wird nur der Prozessor ausgewechselt. Die große Toleranzbreite 
bei den Widerständen des externen Spannungsteilers ist mir bekannt und 
spielt hier keine(!) Rolle:
1. Der Spannungsteiler bleibt immer identisch. ->
2. Das Massepotential bleibt immer identisch ->
3. Die Referenzspannung bleibt immer identisch ->
4. Die Spannung am Spannungsteiler (Quotient) bleibt immer identisch. ->
5. Also MUSS wohl die Digitalzahl, die der ADC-Wandler liefert (zwischen 
0 und 1023), wohl von Atmega zu Atmega erheblich unterschiedlich sein.
Kleine Differenzen sind verständlich, so große Differenzen wundern mich.

@ Wolfgang: Wie gesagt, die Toleranzen der "umgebenden" Hardware sollten 
keine Rolle spielen, diese sind für jeden der gewechselten Atmegas 
identisch. Das Datenblatt habe ich dazu noch nicht befragt.

@ Jakob: Ich meckere nicht; tut mir leid, wenn dies so rüber gekommen 
ist!! Ich stelle nur diese Differenzen fest und vielleicht gibt diese 
Diskussion hier anderen Lesern (ebenfalls nicht so versierten 
Atmel-Kennern) einen Hinweis auf die Tatsache, dass ein 
Mikrokontrollerwechsel nicht ganz unproblematisch ist. Dann hat dieser 
Thread ja einen Sinn. Sooo hohe Genauigkeitsanforderungen habe ich gar 
nicht. Eine "Parallelverschiebung" aller Werte an den verschiedenen 
ADC-Eingängen um 1-2 Grad wäre kein Problem, da ja Temperaturen meist 
nur "verglichen" werden müssen. 5-6 Grad Unterschied bei einem Messwert 
von ca. 50 Grad ist ja dann aber schon eine "Hausnummer". [Soll erneut 
wieder nicht gemeckert sein; ist nur eine Feststellung]

@ Schreiber: Wohl wahr(!); ist aber nicht so einfach, wenn 12 Sensoren 
ausgewertet werden! Diese Sensoren sind "verbaut" und ich kann nicht mit 
einem Glas Eiswasser zum Nullabgleich auf das Dach klettern.

Also wie gesagt: Ich wollte nur dieses Atmel-Verhalten hier beschreiben; 
vielleicht kann ja jemand erklären, warum die Differenzen zwischen den 
Prozessoren so groß sind. Und vielleicht hilft dieser Hinweis ja 
Anderen.

Einen schönen Sonntag noch!
A. Geigenberger

von Schaltmosfet L. (schaltmosfet)


Lesenswert?

Hallo,

nur so als Anregung auf einen atmega88/328 uä. bezogen:
Interne Referenz benutzt? Erste Wandlung verworfen? (Die kann falsch 
sein)
Mikrocontroller AD Eingänge mit passender RC Kombination abgeblockt.
Analoge Versorgungsspannung extra abgeblockt mit RC Kombination?

Zu guter Letzt hilft ein Blick ins Datenblatt wo steht, dass die interne 
BG-Referenz zwischen 1,0V und 1,2V schwanken kann ...

Da hast du bei anderen Mikrocontrollern auch keine Vorteile. Z.B. haben 
die meisten STM32 gar keine int. Referenz. Da vergleicht man dann gegen 
die rauschende Versogungsspannung...

Heißt, wenns genau sein muss ... mit ext. Refereenz vergleichen oder 
abgleichen.

VG

von Walter S. (avatar)


Lesenswert?

Alfons G. schrieb:
> Kleine Differenzen sind verständlich, so große Differenzen wundern mich.

da musst du wohl einen Blick ins Datenblatt werfen, was für eine 
Spannungsreferenz verwendest du denn?

von Achim S. (Gast)


Lesenswert?

Alfons G. schrieb:
> @ Peter Dannegger: Gedankenleser sind nicht nötig. Die Fragestellung ist
> - wie ich meine - ausreichend genau. Man hat einen Spannungsteiler und
> man hat eine Software: Beides ändert sich nicht. Trotzdem liefern
> verschiedene Atmegas sehr verschiedene Messwerte. Welche Infos fehlen da
> noch?

Na z.B. wär interessant, wie groß die 5° Temperaturfehler denn als 
Spannungsfehler sind. Wenn du geheimnisvolle "umgebende Hardware" ein 
LM35 sein sollten, dann entsprechen die 5° einem Spannungsfehler von 
50mV. Wenn sie stattdessen aus einem unverstärkten K-Typ Thermoelement 
bestehen sollte, dann entsprechen 5° einem Spannungsfehler im Bereich 
200µV.

Ob die beiden ADC um 50mV unterschiedlich messen oder um 200µV (oder um 
irgendeinen Wert dazwischen) spielt vielleicht soch eine gewisse Rolle, 
oder?

Inzwischen verrätst du wenigstens, dass der Sensor per Spannungsteiler 
ausgewertet wird. Als wahrscheinlich ein NTC, oder ein KTY-irgendwas 
oder ein Pt1000 oder ... Da beträgt der Bereich möglicher 
Spannungsfehler denn wenigstens nicht mehr einen Faktor 250 sondern 
"nur" noch ~eine Größenordnung. Trotzdem wäre der konkrete Wert noch 
immer interessant, wenn man eine halbwegs sinnvolle Aussage zur Toleranz 
deiner ADC treffen soll.

Alfons G. schrieb:
> Ich wollte nur dieses Atmel-Verhalten hier beschreiben;

Dann tu das bitt: welche Spannungsabweichung ergibt zwischen zwischen 
den verschiedenen ADCs?

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Die Sensoren unter sich bleiben aber 'liegen'?
Dann könnte ich mir vorstellen, daß die interne Referenz hier rein 
spielt.
Vll. kannst Du Das etwas abmildern, wenn Du statt 1,1V auf 2,56V gehst 
oder auf Vdd (müsste nachschlagen, was Alles möglich ist).
Je größer die Referenz, desto kleiner der Fehler.

MfG

von Wolfgang (Gast)


Lesenswert?

Alfons G. schrieb:
> @ Wolfgang: Wie gesagt, die Toleranzen der "umgebenden" Hardware sollten
> keine Rolle spielen, diese sind für jeden der gewechselten Atmegas
> identisch. Das Datenblatt habe ich dazu noch nicht befragt.

Dann tue das, bevor du dich über irgendwelche Abweichungen zwischen 
Porzessorexemplaren wunderst.

von m.n. (Gast)


Lesenswert?

Walter S. schrieb:
> da musst du wohl einen Blick ins Datenblatt werfen, was für eine
> Spannungsreferenz verwendest du denn?

So wie es aussieht wohl die interne; schlimmer geht's ja nicht.
Einfache Abhilfe: Vcc als Referenz anwählen.

von Alfons G. (alibaba55)


Lesenswert?

Hallo,

Danke für die Antworten; meine Spannungsversorgung ist wohl nicht 
optimal:
Ich habe VCC an einem Netzteil angeschlossen und die Spannung an AVCC 
über eine Spule geführt, mit einem Kondensator gegen Masse. Für genauere 
Messungen sollte man also eine Referenzspannung an AREF führen??
Den "internen Spannungsteiler" benutze ich:

  ADCSRA |= (1<<ADSC);   // eine ADC-Wandlung; jetzt mit 2,5 Volt
  while ( ADCSRA & (1<<ADSC) )
    { ; }  // auf Abschluss der Konvertierung warten
        result = ADCW;  // ADCW muss einmal gelesen werden,
  _delay_ms(3);

Die ersten drei Messungen werden verworfen, dann 30mal gemessen und das 
Ergebnis entsprechend mathematisch ausgewertet. Temperaturfühler: KTY 81

Also AREF beschalten?

A. Geigenberger

von Achim S. (Gast)


Lesenswert?

Alfons G. schrieb:
> Temperaturfühler: KTY 81

Wenn du den Spannungsteiler optimal ausgelegt hast, entsprechen 5° 
Temperaturfehler also 25mV Spannungsfehler, dein Ergebnis springt also 
um bis zu 10 LSB - na das ist doch wenigstens mal ne Aussage. (Mit 
ungeschickt dimensioniertem Spannungsteiler kann es dann übrigens auch 
wieder weniger sein.)

Alfons G. schrieb:
> die Spannung an AVCC
> über eine Spule geführt, mit einem Kondensator gegen Masse.

Klingt vom Ansatz her vernünftig, wobei auch hier viel an der konkreten 
Implementierung hängen kann (es gibt alle möglichen Arten von "Spulen" 
und nicht jede davon wäre hier ideal).

Alfons G. schrieb:
> Also AREF beschalten?

Zumindest ein Filterkondensator gehört daran.

Für eine hohe Absolutgenauigkeit brauchst du entweder eine externe 
Referenz (die für alle eingesetzten µCs gleich ist) oder du musst die 
interne bandgap-reference zu Beginn ausmessen (denn die darf laut 
Datenblatt von Chip zu Chip um +-20% unterschiedlich sein).

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
Noch kein Account? Hier anmelden.