24-Bit-ADC zum Lesen des analogen Eingangssignals von +/-10 V

Ich muss Sensordaten lesen, die einen analogen Ausgang liefern (Bereich +10 V bis -10 V), und sie mit einem 24-Bit-ADC in digitale Form konvertieren und dann auf einer Speicherkarte speichern. Ich habe einige Erfahrung mit PIC-Mikrocontroller und Arduino. Ist es gut genug, sich für eine dieser Plattformen zu entscheiden oder zu anderen Plattformen zu gehen, um das Rauschen zu minimieren? Bitte leiten Sie mich an, welche Faktoren bei der Auswahl von ADC, Controller im Design für meine Anwendung zu beachten sind. Ich bezweifle nur, ob es möglich ist, mindestens 18-Bit-Auflösung mit einer externen ADC- und Arduino-Kombination zu lesen.


Spezifikationen des Sensors:

  • Frequenzbereich DC ..... 3 kHz DC – 30 sek
  • Sensorrauschen < 0,006 nT √Hz @ 1Hz
  • Ausgangsempfindlichkeit 0,143 mV/nT
  • Orthogonalitätsfehler < 0,5°
  • Ausgangsspannungsbereich ± 10V
  • Messbereich ± 70.000 nT
  • Offset-Temperaturkoeffizient ± 0,1 nT / °C
  • Offsetfehler ± 5 nT
  • Versorgungsspannung ± 12V bis ± 15V stabilisiert und gefiltert
  • Versorgungsstrom +26mA, -6mA (+1,4mA pro 100μT)
Warum braucht man 24 Bit?
@ThePhoton: um die atmosphärischen Daten für eine bessere Forschung aufzuzeichnen.
Aber können Sie erklären, warum Sie diese Auflösung brauchen, 1 zu 16.000.000? Und was wird Ihre Auflösung sein, wenn Sie das Rauschen berücksichtigt haben?
@Transistor: Wenn ich in meinem Sensorsignal eine Änderung von 143 Mikrovolt aufzeichnen kann, was mindestens 18 Bit ADC erfordert, könnte ich meine Daten für meine Anwendung besser interpretieren
Es sind 18- und 24-Bit-ADCs verfügbar, aber Sie müssen sich um alles (elektrische) Rauschen kümmern, denn bei einer Auflösung von 76 µV (oder schlimmer, 1 µV) hören Sie Elektronen nicht nur husten, sondern auch auf der anderen Seite der Welt. In einem Bunker. Wenn Sie taub sind. Ich bezweifle, dass es eine Lösung von der Stange zu einem vernünftigen Preis gibt.
Wie viele Samples pro Sekunde benötigen Sie? Das ist ziemlich einschränkend für die Auswahl und den ADC. Könnten Sie das Sensordatenblatt teilen? Das kann helfen, das ganze Bild zu sehen, nicht nur den ADC.
Hochleistungs-24-Bit-ADCs sind leicht verfügbar, aber sie sind nicht gerade billig. Für beste Ergebnisse würde ich eine leicht verfügbare Demonstratoreinheit verwenden, an die Sie eine Schnittstelle anschließen könnten.
Das elektrische Design, das erforderlich ist, um auch nur annähernd die angebliche Leistungsfähigkeit eines 24-Bit-ADC zu erreichen, wird kein Anfängerprojekt sein. Selbst dann sind die Bits niedrigerer Ordnung verrauscht. Glücklicherweise hört es sich so an, als hätten Sie eine relativ geringe Bandbreitenanforderung, sodass Sie einige Filter anwenden können. Es kann sein, dass die Filterung mit einem weniger leistungsfähigen ADC anständige Ergebnisse liefert. Die Verwendung von "Audio"-Teilen mit DC-gekoppelten Eingängen ist bei Null-ZF-Softwareradio mit schmaler Bandbreite nicht ungewöhnlich, daher können Sie sich dort einige Dinge ansehen. Wenn Sie über eine zuverlässige Stromversorgung verfügen, könnten Sie einfach ein Tischgerät verwenden, das von einem Raspberry Pi betrieben wird?
Wir verwenden den MCP3553 (22 Bit) mit PICs mit gutem Erfolg, aber nicht mit Ihrer Abtastrate. Um mit hoher Geschwindigkeit zu fahren, wählen Sie ein Gerät mit einem internen Oszillator; Der Arduino oder PIC muss nur über SPI oder ähnliches mit ihm kommunizieren, sodass Sie die Busaktivität während des Samples aussetzen können, wenn Sie sich Sorgen über Prozessorgeräusche machen. Der Arduino muss nur in der Lage sein, jede Probe in der Zeit zwischen den Abtastzeiten abzurufen.
Vielleicht ist es besser, ein richtiges kommerzielles DAQ-Gerät zu kaufen.
Die Analyse sollte rohes SNR, vorgefiltertes SNR, BW-Reduzierung, Auflösung und Genauigkeit umfassen, die für den gesamten Skalenbereich erforderlich sind. Bestimmen Sie, ob der DC-Offset dies verbessert, und berechnen Sie dann die Anzahl der Bits pro Abtastung und die Überabtastrate, die erforderlich sind, um dieses Ergebnis mit Worst-Case-Fehlerbudgets aus allen Quellen zu erzielen.

Antworten (2)

Hier ist eine Analyse mit HFI-, EFI-, PSI- und GPI-Störern. Dies sind Magnetfelder , die deterministischen Müll in die Schleife der Signalspur über der Ebene induzieren; Elektrisches Feld, das Verschiebungsströme in die Impedanz von Schaltungsknoten induziert; Welligkeit der Stromversorgung /Schaltrauschen/LC-Klingeln bei unzureichender Schaltung/ADC-PSRR; Grundrauschen , wobei ground_impedance * ground_currents berechnet werden. Die Summe dieser 4 Störer beträgt 14 Millivolt.

Ich habe das Tool --- Signal Chain Explorer --- für 20 Volt PP in den ADC konfiguriert; die Master-Sampling-Spezifikationen für 18 Bit und 10 kHz Abtastrate bearbeitet; Der ADC-interne Sample-Hold beträgt 50 Ohm und 48 pF-Standardwerte. Viele dieser Spezifikationen können bearbeitet werden.

Das resultierende SNR ohne Störer beträgt 109 dB.

Das resultierende SNR mit Störern (ich habe zusätzliche Störer aus den Gargoyle-Tabellen hinzugefügt, um in einem Arduino-System realistisch zu sein) beträgt nur 54 dB.

Fazit: Das blinde Erstellen eines solchen Systems erzeugt eine 9-Bit-Messung mit 9 zusätzlichen Bits deterministischem Rauschen.

Geben Sie hier die Bildbeschreibung ein

Hier unten sind die Ergebnisse der Injektion der 4 Arten von Störern, wobei der Systemfrequenzgang verwendet wird, um die deterministische Trash-Störung auf die Codespreizung (das Grundrauschen oder das SNR) zu modellieren. Beachten Sie, dass das Magnetfeld der viel zu nahen MCU-Uhr das größte Problem ist.

Geben Sie hier die Bildbeschreibung ein

Hier ist die HFI-Tabelle (Magnetfeld); das 10 MHz Switch Reg ist standardmäßig aktiv; du kannst es ausschalten. Sie können jeden der Parameter, einschließlich der Entfernung, bearbeiten, um zu untersuchen, wie nah oder wie weit entfernt einige Feldgeneratoren platziert werden können und dennoch Ihre SNR-Ziele erreichen.

Geben Sie hier die Bildbeschreibung ein

Hier ist die EFI-Tabelle (elektrisches Feld);

Geben Sie hier die Bildbeschreibung ein

Was können Sie tun, um das deterministische Grundrauschen der 4 Arten von Störern stark zu reduzieren? (Beachten Sie das thermische Grundrauschen, wobei KT-Quellen nur der Sensor mit 50 Ohm und der ADC mit 50 Ohm sind ---- beide editierbar ---- tragen nur 9 Mikrovolt RMS zur Systembandbreite bei; wenn Sie 20 Bit wollen, werden Sie Diese 9 uV müssen reduziert werden, aber zuerst können wir die vorhandenen 14 Millivolt an deterministischem Müll verbessern.

Das Hauptproblem ist die zu nahe Platzierung der Schaltnetzteile und der Takt-/E/A-Leitungen des Mikrocontrollers.

Die Schaltleistung ist nur 10 Millimeter entfernt, bei einer angenommenen Schaltfrequenz und dI/dT. Bewegen Sie das weg und schirmen Sie es ab.

Wie genau ist die HFI-Nummer? Wir verwenden einen Schleifenbereich, der durch Spurlänge und Spurhöhe über Masse definiert ist (beide editierbar); wir geben den Abstand von Wire-to-Loop an; wir geben das dI/dT im Draht an; wir nehmen den schlimmsten Fall an (maximale induzierte Spannung).

Die MCU-Takt/IO-Leitung ist 1 Millimeter von der ADC-Eingangsspur entfernt; Wer hätte so wenig Platz auf der Leiterplatte, dass er eine Takt-/Datenspur mit hoher Anstiegsrate nur 1 mm von einer analogen 18-Bit- (oder 24-Bit-) Spur weiterleiten würde?

Wie genau ist die EFI-Nummer? Wir gehen von einer Parallelplattenkopplung aus, wenn keine andere mechanische Geometrie vorhanden ist. Wir kennen die Anstiegsgeschwindigkeit und der eingebettete Simulator von Signal Chain Explore berechnet die Knotenimpedanz.

Sie haben gefragt, ob 24 Bit bei einer Bandbreite von 3 kHz erreichbar sind. Untersuchen Sie das Sensorrauschen und die Ausgangsempfindlichkeit als eine Spezifikation, indem Sie einfach diese Zahlen multiplizieren:

0,006 nT RtHz * 0,145 mV/nT == 0,00087 Millivolt Rauschen pro RtHz

oder 0,87 Mikrovolt RMS pro RtHz-Bandbreite

•Frequenzbereich DC ..... 3 kHz DC – 30 Sek

•Sensorrauschen < 0,006 nT √Hz bei 1Hz

•Ausgangsempfindlichkeit 0,143 mV/nT

Was passiert in einer Bandbreite von 3.000 Hertz? Unter der Annahme, dass kein 1/Freq-Rauschverhalten (rosa) vorliegt, was bedeutet, dass die Rauschenergie über der Frequenz konstant ist, steigt die Rauschleistung linear mit der Bandbreite und die Rauschspannung steigt somit mit der Quadratwurzel der Bandbreite

Vnoise = 0,87uV/RTHz * sqrt(3.000) = 0,87 * 55 == 48 Mikrovolt RMS

Wenn Sie den Bereich von 48 Mikrovolt RMS mit dem Bereich von 20 Volt PP vergleichen, haben Sie ungefähr 18 oder 19 Bit IN VOLLER BANDBREITE.

Ein starkes Reduzieren der Bandbreite, zum Beispiel auf DC – 30 Hertz, verursacht 10:1 weniger Rauschspannung und 100:1 weniger Rauschleistung.

Erwarten Sie also bei DC - 30 Hz 4,8 Mikrovolt RMS oder etwa 22 Bit.

Ich werde später darauf zurückkommen und den Signalketten-Explorer für 22-Bit-ADC und 30-Hz-Bandbreite einrichten. Ich füge einen RC-Tiefpassfilter (1-polig) ein, um die Bandbreite abzusenken.

Verwenden Sie die „Kommentare“, um bevorzugte Störer vorzuschlagen (oben rechts auf dem SCE-Hauptbildschirm befinden sich Schaltflächen zum Aktivieren/Deaktivieren eines/aller Gargoyles).