Forum: Analoge Elektronik und Schaltungstechnik ADC Dynamikbereich


von Jack S. (jack1505)


Lesenswert?

Hallo Forum,
ich möchte das Signal einer Einstabmesskette (0V-500mV) mit einem rp2040 
digitalisieren. Dazu nutze ich einen vorgeschalteten 
Instrumentenverstärker. In der Musterschaltung wird ein anderer 
Prozessor verwendet, bei welchem der Dynamikbereich des ADC eingestellt 
werden kann. Beim RP2040 ist dies nur bedingt möglich. Er muss 
mindestens 1,8V betragen wenn ich das richtig verstanden habe (und dabei 
hat er Leistungseinbusen). Um den Dynamikbereich vollständig nutzen zu 
können bräuchte ich aber höchsten 0,5V. Macht es nun sinn das Signal so 
zu verstärken, dass es in den Bereich 0V - 1,8V passt oder in den 
vollständigen Bereich bis 3,3V .
VG

von Norbert (der_norbert)


Lesenswert?

Jack S. schrieb:
> Hallo Forum,
> ich möchte das Signal einer Einstabmesskette (0V-500mV) mit einem rp2040
> digitalisieren. Dazu nutze ich einen vorgeschalteten
> Instrumentenverstärker. In der Musterschaltung wird ein anderer
> Prozessor verwendet, bei welchem der Dynamikbereich des ADC eingestellt
> werden kann. Beim RP2040 ist dies nur bedingt möglich. Er muss
> mindestens 1,8V betragen wenn ich das richtig verstanden habe (und dabei
> hat er Leistungseinbusen). Um den Dynamikbereich vollständig nutzen zu
> können bräuchte ich aber höchsten 0,5V. Macht es nun sinn das Signal so
> zu verstärken, dass es in den Bereich 0V - 1,8V passt oder in den
> vollständigen Bereich bis 3,3V .
> VG

Erwartest du denn eine grobe Schätzung, oder soll's genau (wie genau?) 
werden?
Von den 12Bit des RP2xxx ADC bleiben euphemistisch betrachtet 9Bit übrig 
wenn man Richtung 3.x Volt als Vref nimmt.

Mit Mathe, Statistik, manueller Kalibrierung und Kennlinien kann's 
deutlich besser werden. Aber nur ADC lesen … das wird, hmmm, 
interessant.

von Lutz K. (lutz_k)


Lesenswert?

Jack S. schrieb:
> Um den Dynamikbereich vollständig nutzen zu
> können bräuchte ich aber höchsten 0,5V. Macht es nun sinn das Signal so
> zu verstärken, dass es in den Bereich 0V - 1,8V passt oder in den
> vollständigen Bereich bis 3,3V .

Kommt darauf an ob es um absolute Genauigkeit geht oder ob du mehr 
Auflösung haben willst um Änderungen zu registrieren.

Für die absolute Genauigkeit, da die Referenz die 3.3V 
Versorgungsspannung ist, die wahrscheinlich 1% bis 2% absoluten Fehler 
hat, da bist due wenn du nur 0..500mV nutzt mit 620 Schritten genau 
genug unterwegs, der Lineraitätsfehler ist zwar nicht in der Doku zu 
finden, wird aber so groß nicht sein das verstärkung etwas bringt.

Wenn due mehr Auflösung haben willst, klar, wenn das Signal um Faktor 6 
verstärkst hast due 3720 Schritte, dann siehst du kleinere Änderungen, 
genauer ist es aber dadurch nicht.
Wenn du die Genauigkeit erhöhen möchtest dann kannst du eine 
Refernzspannung an einem anderen Analogeingang anschließen, z.B AD680
Du kannst dann in der Software diesen Wert für 2.5V einlesen, wenn alles 
fehlerfrei wäre dann würdest du 4096 / 3300 * 2500 = 3103 einlesen, da 
der Fehler der RP2040 Referenz 10 mal größer ist als der Fehler des 
AD680 und wir mal davon ausgehen das du den genauen Wert der AD680 
Referenz nicht messen kannst, gehen wird davon aus das die AD680 Werte 
stimmen. Du wirst aber sehr wahrscheinlich einen anderen Wert als 3102 
einlesen, wegen des RP2040 Fehlers, dieser Wert x, z.B. 3049 ist jetzt 
der digitale Wert für 2.5V

Wenn du dann deine Sonde einließt, dann rechnets du diesen Wert der 
Sonde dann durch die 3049 * 2500 und du hast den Wert in mV deiner Sonde

Da der AD680 aber 0.2% Fehler hat bei RT, hat der ermittelte Wert für 
deine Sonde auch 0.2% Fehler.

Also von Mathe nur 3-Satz

Man kann natürlich überlegen wegen der Auflösung das Signal zu 
verstärken, dazu benötigst du aber einen präzisen Verstärker, das kann 
man auch manuell kalibrieren, ist auch mit einfachen Messgeräten und 
normalen 1% Widerständen möglich, aber sehr zeitaufwendig
Oder du nimmst 0.1% Widerstände für den Verstärker, dann ist der Fehler 
in Summe Worst Case 0.4% bei RT wenn man den OP so auswählt das man den 
Einfluss vernachlässigen kann.

von Gerd E. (robberknight)


Lesenswert?

Der ADC des RP2040 ist meiner Erfahrung nach nur mäßig gelungen. Z.B. 
die ADC-Einheiten moderner STM32 sind wesentlich besser. Wenn es Dir auf 
Genauigkeit ankommt würde ich den nicht nehmen.

Wenn Du beim RP2040 bleiben willst, dann schließ einen externen ADC an. 
Z.B. per I2C oder SPI, da gibts viel Auswahl. Dort dann oft auch die 
Möglichkeit die Referenz passend zu Deinem Signalbereich zu wählen. Das 
wäre meine erste Wahl.

Oder nimm einen anderen Mikrocontroller, z.B. STM32F373 mit Delta-Sigma, 
oder sonst die STM32G4-Serie und dort dann Oversampling verwenden. 
Größere Gehäusegröße, so dass die dedizierten Ref-Eingänge rausgeführt 
sind. Das wäre meine 2. Wahl.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Lutz K. schrieb:
> Also von Mathe nur 3-Satz

…zumindest bis die Theorie das erste mal unsanft auf die Realität 
trifft… ;-)

von Lutz K. (lutz_k)


Lesenswert?

Norbert schrieb:
> Lutz K. schrieb:
>> Also von Mathe nur 3-Satz
>
> …zumindest bis die Theorie das erste mal unsanft auf die Realität
> trifft… ;-)

dann erkläre mal bitte wie man mit einer Referenz die die absolute 
Genauigkeit der verwendeten Referenz deutlich übertrifft Statistik 
sinnvoll anwendet und woher man Infos zu einer Kennlinie bekommt.
Wenn die Referenz statt 0.2% 0.05% hätte und wenn man eine 
Kalibrierquelle hätte, ja, da wirds aufwendiger und da kann man mehr 
machen. Dann kann man Mittelwerte von der Referenz nehmen um die 
Auflösung zu verbessern.
Aber welche statistischen Betrachtungen willst du machen in einem 
solchen Fall?

Aber der Linearitätsfehler ist besser als die 0.2%, was bringt das dann 
wenn man damit etwas kalibriert.

von Norbert (der_norbert)


Lesenswert?

Lutz K. schrieb:
> dann erkläre mal bitte wie man

Gerne. Nach du dich zumindest soweit mit der Linearität des ADC vertraut 
gemacht hast, bis du die extremen Verzerrungen bei 1×2⁹-1, 3×2⁹-1, 
5×2⁹-1 und 7×2⁹-1 verstanden und akzeptiert hast. Kleinere existieren 
übrigens auch bei sämtlichen 2¹⁰-1 Werten.

Und ja, selbst die Raspberry Foundation hat die dokumentiert und 
veröffentlicht.
Messungen und Kurven diesbezüglich hatte ich bereits vor geraumer Zeit 
gepostet. Auf denen kann man die Stellen mit bloßem Auge erkennen.

: Bearbeitet durch User
von Lutz K. (lutz_k)


Lesenswert?

Norbert schrieb:
> Lutz K. schrieb:
>> dann erkläre mal bitte wie man
>
> Gerne. Nach du dich zumindest soweit mit der Linearität des ADC vertraut
> gemacht hast, bis du die extremen Verzerrungen bei 1×2⁹-1, 3×2⁹-1,
> 5×2⁹-1 und 7×2⁹-1 verstanden und akzeptiert hast. Kleinere existieren
> übrigens auch bei sämtlichen 2¹⁰-1 Werten.
>
> Und ja, selbst die Raspberry Foundation hat die dokumentiert und
> veröffentlicht.
> Messungen und Kurven diesbezüglich hatte ich bereits vor geraumer Zeit
> gepostet. Auf denen kann man die Stellen mit bloßem Auge erkennen.

Oh, achja, vergaß, Arroganz wird hier ganz groß geschrieben

Keine Sorge, ich kenne mich mit ADC aus und benötige nicht deinen 
Support um auf das Thema Linearität zu kommen, zu "der Lineraitätsfehler 
ist zwar nicht in der Doku zu finden" das ist ja weiterhin korrekt, 
unter Spezifikation verstehe ich keine Einzelmessung, da denke ich eher 
an sowas wie typische Wert, max. Werte etc. wie sie in Datenblätter 
externer ADC zu finden sind.

Aber wie ich schon vorher geschrieben habe, der Linearitätsfehler macht 
jetzt nicht soviel aus wenn man mit der Referenz schon mal auf 0.2% 
runter kommt von 2%, das ist eine enorme Verbesserung.

Ich denke nicht, dass das Ziel ist, auf 1LSB genau zu werden, zumal 
diese Elektroden bei 1% Fehler schon sehr genau sind und eher 2% bis 3% 
Fehler haben können, da muss der RP2040 nicht 0,05% oder besser sein.

Wenn man die Sonden in Messlösungen kalibriert macht man das ja mit der 
verwendeten Anzeige, also dem RP2040, somit hat man die ganze Kette 
kalibriert, die Drift des ADC und der Referenz mit 0.2% dürft dann 
deutlich weniger ins Gewicht fallen als die Fehler der Sonde selber.

Die Verbesserung der Referenz scheint mir schon notwendig, weil 2% wären 
zuviel

Man kann natürlich mit einer Handvoll Widerstände, z.B. 11 x 1 kOhm und 
dem AD680 den Bereich von 0 bis 2.5V in 0.25V Schritten genau 
kalibrieren, wobei der Fehler des AD680 bleibt mit 0.2%, ist aber eine 
aufwendige Prozedur.

: Bearbeitet durch User
von Lutz K. (lutz_k)


Lesenswert?

Lutz K. schrieb:

> Man kann natürlich mit einer Handvoll Widerstände, z.B. 11 x 1 kOhm und
> dem AD680 den Bereich von 0 bis 2.5V in 0.25V Schritten genau
> kalibrieren, wobei der Fehler des AD680 bleibt mit 0.2%, ist aber eine
> aufwendige Prozedur.

und in 1/16 Schritten mit den 3.3V als Spannung

von Rainer W. (rawi)


Lesenswert?

Jack S. schrieb:
> ich möchte das Signal einer Einstabmesskette (0V-500mV)

Liefert die Messkette ein ratiometrisches Signal oder ein absolutes?
Daran entscheidet sich, wie der ADC betrieben werden muss, i.e. was er 
als Referenz nutzen muss.

von Jack S. (jack1505)


Lesenswert?

Lutz K. schrieb:
> Kommt darauf an ob es um absolute Genauigkeit geht oder ob du mehr
> Auflösung haben willst um Änderungen zu registrieren.

Das hört sich auch gut an denkst du ein einfacher Spannungsteiler würde 
auch gehen oder würdest du ehr auf den AD680 setzen.

von Jack S. (jack1505)


Lesenswert?

Rainer W. schrieb:
> Liefert die Messkette ein ratiometrisches Signal oder ein absolutes?
> Daran entscheidet sich, wie der ADC betrieben werden muss, i.e. was er
> als Referenz nutzen muss.

Soweit ich weiß ein absolutes Signal.

von Jack S. (jack1505)


Lesenswert?

Lutz K. schrieb:
> Refernzspannung an einem anderen Analogeingang anschließen, z.B AD680

Ich hab auf meinem Board auch ein kleines Platzproblem wodurch sich die 
Implementierung dieser Spannungsreferenz als Schwierig gestalten könnte

von Lutz K. (lutz_k)


Lesenswert?

Jack S. schrieb:
> Lutz K. schrieb:
>> Refernzspannung an einem anderen Analogeingang anschließen, z.B AD680
>
> Ich hab auf meinem Board auch ein kleines Platzproblem wodurch sich die
> Implementierung dieser Spannungsreferenz als Schwierig gestalten könnte

Welchen Messfehler kannst du akzeptieren? Wenn due die Genauigkeit 
deines Sensor halbwegs ausschöpfen möchtest dann benötigst du die 
Referenz, wenn du das Signal verstärken willst mit welcher Schaltung? 
Ist die kleiner als der AD680 im TO92. Ich hätte jetzt gedacht du nimmst 
einen OP im DIP8 Gehäuse mit Widerständen, belegt mindestens im 
Lochraster 4 x 5, ein TO91 ist 1 x 3.

deswegen kann ich gerade deinen Randbedingungen die du hast nicht 
folgen. Wenn du noch Fragen hast, ich unterstütze gerne.

von Jack S. (jack1505)


Lesenswert?

Lutz K. schrieb:
> deswegen kann ich gerade deinen Randbedingungen die du hast nicht
> folgen. Wenn du noch Fragen hast, ich unterstütze gerne.

Ich nutze zur Aufnahme des Signals eines INA333 mit einer Verstärkung 
von ca. 8. Der Signalrahmen ist -200mV bis +200mV. Da ich keine negative 
Spannung habe verschiebe ich den Bereich mit einer Referenzspannung aus 
einem Spannungsfolger.
Dazu habe ich einen vorgegebenen Platinenfootprint. Den ich mit uC Flash 
LEDs ... schon recht gut ausfülle. Ich bin aktuell daran den MAX6035 mit 
SOT Gehäuse unterzubringen.

von Lutz K. (lutz_k)


Lesenswert?

Jack S. schrieb:
> Lutz K. schrieb:
>> deswegen kann ich gerade deinen Randbedingungen die du hast nicht
>> folgen. Wenn du noch Fragen hast, ich unterstütze gerne.
>
> Ich nutze zur Aufnahme des Signals eines INA333 mit einer Verstärkung
> von ca. 8. Der Signalrahmen ist -200mV bis +200mV. Da ich keine negative
> Spannung habe verschiebe ich den Bereich mit einer Referenzspannung aus
> einem Spannungsfolger.
> Dazu habe ich einen vorgegebenen Platinenfootprint. Den ich mit uC Flash
> LEDs ... schon recht gut ausfülle. Ich bin aktuell daran den MAX6035 mit
> SOT Gehäuse unterzubringen.

Wenn du eine andere referenz verwendest und diese auch die 2.5V zum GND 
Bezugspunkt des ADC liefert dann kannst du natürlich diese auf einen ADC 
Pin des RP2040 geben, dann benötigst du keine weitere referenz wie den 
AD680, das wäre überflüssig

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.