Forum: Mikrocontroller und Digitale Elektronik gain error bei AVR Diffential Inputs


von Benedikt (Gast)


Lesenswert?

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.

von HansHans (Gast)


Lesenswert?

Hi,
Hast du bedacht das bei Gain x10 die Auflösung nur noch 8 Bit ist ?
(bei 200 nur noch 7 Bit )

von Robert (Gast)


Lesenswert?

Nimm lieber einen externen OP-Amp. Op07, TS912, MC33272 liefern gute
Ergebnisse und sind einfach zu beschalten.

Grüße Robert

von Branko Golubovic (Gast)


Lesenswert?

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

von Branko Golubovic (Gast)


Lesenswert?

@HansHans
ADC Auflösung ist bei jeder Verstärkung 10bit(seite 328)

Branko

von D. W. (dave) Benutzerseite


Lesenswert?

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.

von Branko Golubovic (Gast)


Lesenswert?

@David W. (Dave)

Welche Referenzspannung verwendest du?
Für Differential Inputs ist  Vrefmax=AVCC-0,5V d.h.
AVCC als Vref Quelle ist ausgeschlossen.

von HansHans (Gast)


Lesenswert?

@Branko Golubovic
S 325 Tabele 136
Differential Conversion  8 bzw 7 bit (bei x200)

von D. W. (dave) Benutzerseite


Lesenswert?

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.

von HansHans (Gast)


Lesenswert?

@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

von Branko Golubovic (Gast)


Lesenswert?

@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

von Benedikt (Gast)


Lesenswert?

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.

von D. W. (dave) Benutzerseite


Lesenswert?

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 ;)

von Branko Golubovic (Gast)


Lesenswert?

@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!

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.