Wie genau stimmt die Verstärkung bei den AVRs ?
Ich messe einen Strom und schalte bei überschreiten eines bestimmten
Wertes die Verstärkung von 10x auf 1x bei den differential Inputs.
Dabei springen die Werte dann um etwa 5LSBs nach unten, was eigentlisch
ziemlich viel ist.
Den Offset Fehler habe ich bereits kompensiert.
Hallo Benedikt!
Laut Datenblatt (ATmega128 seite 328)ist gain error:
G=1x 1,5%
G=10x 1,5%
G=200x 0,5%
Wenn dieser Fehler für dich zu gross ist,dann kannst du den ermitteln
und kompesieren.
@HansHans
ADC Auflösung ist bei jeder Werstarkung 10bit(seite 328)
Grüße Branko
Aber die Auflösung, die man bei dem internen Gain von 200x noch reell
hat, sind 7bit (steht auch im Datenblatt).
Ich habe letzte Woche versucht, den Betriebsstrom meiner Schaltung mit
dem AVR selbst zu messen. Raus kamen immer Werte so 10-20% zu hoch.
Fehler können sowohl der AVR wie auch der Steckbrett-Aufbau gewesen
sein.
Ich habe die Interne genommen (2,569V) und hab ihn mit 5,0V versorgt.
Ich kann ihn ja aus praktischem Grund auch nicht in Noise-Canceller
schalten, wäre unlogisch.
@Branko Golubovic
Habe mir noch mal das Datenblatt vom M128 neu heruntergeladen,
und da steht tatsächlich im Gegensatz zu meinem alten Blatt, bei allen
Gain 10 Bit, somit hast du also recht .
Ich habe das damals nur beim mega16 verwendet und bei diesem
steht auch heute noch 10/8/7 Bit (x1/x10/x200)
heißt das jetzt also auch das es diesbezüglich
alte und neu m128 gibt ?
Gruß HH
@HansHans
<heißt das jetzt also auch das es diesbezüglich
<alte und neu m128 gibt ?
Das weiß ich nicht,vielleicht hilft dir folgender Beitrag dein ATmega
zu erforschen:
http://www.mikrocontroller.net/forum/read-4-260506.html#new
@David W
<Ich habe letzte Woche versucht, den Betriebsstrom meiner Schaltung
mit
<dem AVR selbst zu messen. Raus kamen immer Werte so 10-20% zu hoch.
<Fehler können sowohl der AVR wie auch der Steckbrett-Aufbau gewesen
<sein.
Ich nehme an,du misst Beriebsstrom mit dem du den Spannungsabfall an
einem Shunt-Widerstand misst.Egal in welchem Zweig sich dieser
Widerstand befindet(GND oder VCC),die Spannung auf einen Analogeingang
ist um Spannungsabfall zu hoch oder zu nidrig als fur ADC
spezifiziert(GND<=Vin<=AVCC).
ODER: Du nimmst Rshunt 0,1 Ohm oder weniger und G=200.
Damit hast du ADC Spezifikation nicht viel verfelt, weil dann der
Spannungsabfall weniger als 10mV ist.
Grüß Branko
Oder ganz einfach:
Je einen Spannungsteiler von Vcc gegen GND, einmal vor und einmal
hinter dem Shunt.
Dann teilt man zwar auch das Messsignal, aber die Spannung liegt im
messbaren Bereich.
Das Problem mit dem gain Error habe ich mit einem zusätzlichen 12bit AD
Wandler umgangen. Jetzt brauche ich keine Messbereichsumschaltung mehr.
Das stimmt glaub alles :)
Aber solange es bei 10-20% bleibt, reicht mir das sogar.
Aber dass der m128 nun 10bit beim Gain schafft, glaube ich immer noch
nicht ;)
@David W
<Aber dass der m128 nun 10bit beim Gain schafft, glaube ich immer noch
<nicht ;)
In ADCH und ADCL Registerpaar steht auf jedem Fall 10bit breite
Ergebnis.Ich verwende ein ATmega32 bei G=200 für Temperaturmessung mit
einem K-TYPE Thermoelement.Funktioniert einwandfrei bis Temperaturen
von 500°C.Alerding ist wegen Störungsunterdrükung eine Aufsummierung
von 16 bis 32 Messergebnise notwendig.
Und in ATmega32 Datenblatt steht:G=200,Gain error 0,2%.Beachtlich!
Eine eigene Frage?
Dieser Thread ist über 20 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.