Forum: Mikrocontroller und Digitale Elektronik minimal messbare Analogspannung Attiny861A


von Nico (nico123)


Lesenswert?

Hallo,

gibt es eine minimale, real nutzbare Eingangsspannung für den ADC im 
Attiny861A im unipolaren differentiellen Mode mit 32facher Verstärkung 
und 2,56V-Referenzspannung? Offset- und Verstärkungsfehler würde ich 
jetzt mal ignorieren, weil man dies rauskalibrieren kann.
Rein theoretisch müsste es ja 2,56V / (1024 * 32) = 78,125µV sein oder?
Ist das praktisch gesehen ein realistischer Wert?

Danke und Grüße, Nico

von Stefan F. (Gast)


Lesenswert?

Gehe in der Praxis davon aus, dass das Rauschen die unteren beiden Bits 
verzerrt. Also ca. 320µV.

Wenn die Abtastrate ausreicht, kannst du viele Messungen machen und 
davon den Mittelwert verwenden. Dadurch filterst du das Rauschen raus.

von Nico (nico123)


Lesenswert?

Stefan Us schrieb:
> Also ca. 320µV.

Ist das ein praktischer Erfahrungwert?

von spess53 (Gast)


Lesenswert?

Hi

>Ist das ein praktischer Erfahrungwert?

Meinst du die Verstärkung 32 macht das Ergebnis genauer? Irgendwie habe 
ich im Hinterkopf, das bei V=20 nur noch 8 Bit übrigbleiben. Vielleicht 
finde ich die Quelle wieder.

MfG Spess

von S. Landolt (Gast)


Lesenswert?

> Vielleicht finde ich die Quelle wieder.

19.6 ADC Characteristics
Table 19-8. ADC Characteristics, Differential Channels (Unipolar Mode).

von spess53 (Gast)


Lesenswert?

Hi

>19.6 ADC Characteristics
>Table 19-8. ADC Characteristics, Differential Channels (Unipolar Mode).

Ups, das ist ja noch schlimmer als ich das in Erinnerung hatte.

MfG Spess

von Nico (nico123)


Lesenswert?

Was meint ihr? Die Auflösung ist doch 10Bit. Gain- und Offset-Error 
bekommt man doch durch Abgleich hin!
Ich will Strom über einen Shunt messen und habe sehr kleine Spannungen 
zu messen.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Nico ... schrieb:
> Was meint ihr? Die Auflösung ist doch 10Bit. Gain- und Offset-Error
> bekommt man doch durch Abgleich hin!
> Ich will Strom über einen Shunt messen und habe sehr kleine Spannungen
> zu messen.

Was hälste von sowas ?

AD654JNZ

von Ulrich H. (lurchi)


Lesenswert?

Wenn die Spannung wirklich klein ist, sollte man die eher mit einem 
externen Verstärker Verstärken. Ein MCP6V31 oder ähnliches würde sich 
anbieten.

Den Offset kann man im unipolaren Mode nicht unbedingt so einfach 
abgleichen, der kann ggf. negativ sein. Außerdem kann der Offset von der 
Temperatur abhängen.

von Nico (nico123)


Lesenswert?

Interessanter Baustein, aber ich würde gerne den Tiny nehmen da dieser 
eh vorhanden ist!

von spess53 (Gast)


Lesenswert?

Hi

>Was meint ihr? Die Auflösung ist doch 10Bit. Gain- und Offset-Error
>bekommt man doch durch Abgleich hin!
>Ich will Strom über einen Shunt messen und habe sehr kleine Spannungen
>zu messen.

Hast du das schon mal gemacht? Also Offset-, Gain-, nichtlineare 
Verhalten kompensieren:

http://www.atmel.com/Images/Atmel-8456-8-and-32-bit-AVR-Microcontrollers-AVR127-Understanding-ADC-Parameters_Application-Note.pdf

http://www.atmel.com/Images/doc2559.pdf

MfG Spess

von Nico (nico123)


Lesenswert?

Ulrich H. schrieb:
> Wenn die Spannung wirklich klein ist, sollte man die eher mit einem
> externen Verstärker Verstärken. Ein MCP6V31 oder ähnliches würde sich
> anbieten.
>
> Den Offset kann man im unipolaren Mode nicht unbedingt so einfach
> abgleichen, der kann ggf. negativ sein. Außerdem kann der Offset von der
> Temperatur abhängen.

Einen negativen Offset kann man doch sehr gut kompensieren durch 
Addition! Oder?

von Nico (nico123)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Was meint ihr? Die Auflösung ist doch 10Bit. Gain- und Offset-Error
>>bekommt man doch durch Abgleich hin!
>>Ich will Strom über einen Shunt messen und habe sehr kleine Spannungen
>>zu messen.
>
> Hast du das schon mal gemacht? Also Offset-, Gain-, nichtlineare

Aber die Auflösung ist 10Bit, richtig? Offset lässt sich durch Addition 
und Gain durch Multiplikation kompensieren. Nichtlineare Fehler sind 
natürlich schwierig.

von spess53 (Gast)


Lesenswert?

Hi

>Aber die Auflösung ist 10Bit, richtig?

Mit einem Fehler von fast 3 Bit. Macht bei mir 7 Bit Genauigkeit. Aber 
ich will dich nicht abhalten. Probier es einfach aus. Man lernt nicht 
durch theoretische Berechnungen sondern durch Praxis.

MfG Spess

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Nico ... schrieb:
> Interessanter Baustein, aber ich würde gerne den Tiny nehmen da dieser
> eh vorhanden ist!

Den Tiny kannste ja trotzdem nehmen, es ist dann nur noch ein 
Taktzähler.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Ich messe mit dem Tiny25/45/85 die Thermospannung in meinem Lötkolben, 
so das ich sagen kann, das er schon sehr kleine Spannungen erkennt.
Allerdings ziehe ich mittels Widerständen die Differenzeingänge etwas 
von der GND Rail weg, da ich dem eingebauten Opamp echtes Rail-To-Rail 
nicht zutraue. Wie genau das ist?
Keine Ahnung, die gemessenen Spannungen stimmen allerdings recht gut mit 
den Spannungen überein, die ein Thermoelement dieses Types bei gegebener 
Temperatur liefern soll. Der Offsetabgleich sollte allerdings vorher 
gemacht werden.

von WehOhWeh (Gast)


Lesenswert?

Nico ... schrieb:
> Aber die Auflösung ist 10Bit, richtig? Offset lässt sich durch Addition
> und Gain durch Multiplikation kompensieren. Nichtlineare Fehler sind
> natürlich schwierig.

Das Signal rauscht, die Referenz rauscht. Alleine durch die Referenz 
(wenn du hier VCC verwendest) bekommst du ein paar LSB Rauschen rein. Da 
berauscht sich der µC nämlich selber. Und das kann man durch keine 
Maßnahmen untebinden. Weil der Tiny vermutlich keinen Anschluss für eine 
externe Referenz oder AVDD hat, kann man auch wenig tun.
Wenn du auf sagen wir 4LSB Pkpk rauschen hinkommst, hast du schon sehr 
sauber gearbeitet. Sogar 6LSB sind nicht unüblich.
Das wären dann 2-3Bit Verlust an Auflösung NUR durch das Rauschen.

Bei extrem kleinen Spannungen kommt dazu, das der Offset eventuell zu 
einem Überlauf des Messwertes führt - sehr kleine Ströme werden dadurch 
fallweise groß.

--> Spannung direkt am Shunt klappt nur bei großen Shunts und höheren 
Spannungen. Z.b. 100mV bei Nennstrom oder so.

Besser man tut das analog vorbehandeln. Schau dir mal den INA138 an.

PS:
Vorsicht mit Rail2Rail, das ist meistens nur Marketinggewäsch. Das muss 
man auf dem Steckbrett ausprobieren. Auf Tuchfühlung mit GND gibs die 
lustigsten Nebeneffekte ;-)

von Nico (nico123)


Lesenswert?

Ich nutze die interne 2,56V-Referenz mit externem Pufferkondensator, die 
scheint bis jetzt sehr stabil zu sein.
Die maximale Differenzspannung beträgt 60mV und liegt zwischen 0,1V und 
2,4V.
Ich würde gerne 1mV Differenzspannung minimal messen können.

Ich werde das einfach mal auf den Steckbrett testen. Danke erstmal für 
alle Ideen und Hilfestellungen!

von Harald W. (wilhelms)


Lesenswert?

Nico ... schrieb:

> Die Auflösung ist doch 10Bit.

Selbst bei hochwertigen, externen AD-Wandlern kann man das letzte
Bit normalerweise vergessen. Bei den µC-Wandlern werden eher die
letzten 2...3 Bit "wackeln".

> Gain- und Offset-Error bekommt man doch durch Abgleich hin!

...und was machst Du mit der Gain- und Offsetdrift?

von Harald W. (wilhelms)


Lesenswert?

WehOhWeh schrieb:

> das ist meistens nur Marketinggewäsch.
> Das muss man auf dem Steckbrett ausprobieren.

...das man Präzisionsschaltungen auf Steckbrettern testen kann
ist auch nur Marketinggewäsch.

von Ulrich H. (lurchi)


Lesenswert?

Die 10 Bit Wandler im AVR sind eigentlich schon so, dass man bei gutem 
Layout und Aufbau auch stabile Werte bekommt, auch ohne den µC für die 
Messung in den Stromsparmode zu versetzen. Je nach Spannung halt ein 
Schwanken zwischen 2 Werten, oder auch nicht. Der Einfluss der Ref. 
Spannung wird durch die Verstärkung davor auch nicht größer.

Das Problem ist eher das Rauschen der Verstärkungsstufe. Das kann man 
aber durch mitteln genügend vieler Werte durchaus zuverlässig 
unterdrücken. Wenn man also für einzelne Werte Schwankungen um 5 LSB 
hat, sollte man für den Mittelwert von z.B. 25 Werten das Rauschen schon 
bis auf etwa 1 LSB runter bekommen. Für langsame Messungen ist das 
Rauschen also nicht so sehr das Problem - in Grenzen hilft es sogar, 
wenn man Oversampling nutzen will.

Der 2. Punkt ist ggf. die Unterdrückung von 50 Hz und 100 Hz Störungen - 
hier ist das Mitteln von vielen Werten über ein Zeitintervall von 20 ms 
sehr effektiv, weil damit diese Frequenzen fast perfekt unterdrückt 
werden. Sofern man die Zeit hat, sollte man also die passende Zahl von 
Werten mitteln um auf 20 ms oder ein Vielfaches davon zu kommen. Also 
etwa bei 125 kHz ADC-Takt und damit 9,6 kHz Abtastrate im free running 
mode 192 oder besser 577 (gibt recht gut 60 ms) Werte mitteln.
Damit kann man sogar etwas mehr als 10 Bit Auflösung erwarten, und man 
ist vor allem durch die Nichtlinearität und den Offset begrenzt.

von Hermann (Gast)


Lesenswert?

spess53 schrieb:
>>Aber die Auflösung ist 10Bit, richtig?
>
> Mit einem Fehler von fast 3 Bit. Macht bei mir 7 Bit Genauigkeit

Da hast du dich aber wohl vertan. Ein Fehler von 3 Bit bedeutet 3*LSB, 
d.h. ca. 3 Promille.
Oder was kommt bei dir heraus, wenn in der Table 19-8 ein Gain-Error von 
15 Bit steht?

von Marian (phiarc) Benutzerseite


Lesenswert?

Hermann schrieb:
> Oder was kommt bei dir heraus, wenn in der Table 19-8 ein Gain-Error von
> 15 Bit steht?

1 ENOB? ;D

--

Um das vielleicht nochmal zu erklären: Die Angabe n LSB heißt nicht: n 
untere Bits. Sondern n mal das niederwertigste Bit [die Wertigkeit vom 
niederwertigsten Bit].

: Bearbeitet durch User
von Hermann (Gast)


Lesenswert?

Ich hatte mal guten Mutes die Differenzmessung getestet (Verstärkung 1). 
Habe dabei feststellen müssen, dass man da einige Abstriche machen muss.
Nach Abgleich der Verstärkung und des Offsets blieb eine Nichtlinearität 
übrig, die ich nicht erwartet hatte. Und -wie schon angesprochen- muss 
man bei Rail2Rail auch Abstriche machen (besonders im oberen Bereich).

Das Ergebnis war, dass ich als Rohwert von 20 bis 1010 zugelassen habe. 
Die Nichtlinearität war in dem Bereich ca. 3 LSB.
Geht man über 1010 hinaus, wird die Nichtlinearität schnell recht groß. 
Bei 1022 habe ich -10 LSB gemessen.

Ich habe aber keine Erfahrung, wie stabil das ist - Langzeit und 
Temperatur. Ich habe mir angewöhnt, alle ADC-Messungen über einen 
digitalen Tiefpass zu glätten. Damit ist das Rauschen weg und man 
gewinnt noch etwas Genauigkeit, da das letzte klappernde Bit noch 
gewichtet wird.

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.