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:
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.
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.
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.
Hier ist die EFI-Tabelle (elektrisches Feld);
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).
Das Photon
Shrikant
Transistor
Shrikant
Alexander von Werner
Markus
Peter Schmidt
Chris Stratton
John Birkkopf
pjc50
Tony Stewart EE75