Versorgungstopologie für Mikrocontroller und ADC/Sensor mit verrauschten Ein-/Ausgängen

Ich experimentiere mit einem Mikrocontroller-Projekt mit einer sehr weitreichenden, verrauschten DC-Eingangsspannung bei VCC. Der Controller verarbeitet einen Sensoreingang zum ADC und gibt ein gepulstes Signal an allen Pins eines separaten Ports aus. Ich brauche einen Rat, wie ich das System und die Versorgung des Mikrocontrollers (ATmega168) (VCC/AVCC/AREF) am besten konfigurieren kann, um den ADC und den Sensor so immun wie möglich gegen alle Schaltgeräusche zu machen. Ich habe unten 3 Möglichkeiten für die Oberseite meines Kopfes erstellt, bin mir aber nicht sicher, welche, wenn überhaupt, optimal ist, um digitales und analoges Rauschen so weit wie möglich zu trennen:

Möglichkeit 1:Geben Sie hier die Bildbeschreibung ein

Möglichkeit 2:Geben Sie hier die Bildbeschreibung ein

Möglichkeit 3:Geben Sie hier die Bildbeschreibung ein

Derzeit teste ich sowohl mit Vcc als auch mit AVcc, die von einer linearen Bankversorgung (Ausgang 5,3 V) gespeist werden, und verwende einen TL431 als 5-V-Referenz bei Aref (ähnlich wie Möglichkeit 3). Ein Potentiometer steht für den Sensor. Trotz großer Kondensatoren zwischen +5,3 V und COM (insgesamt 4400 uF) verursacht das Multiplexen derzeit viel Rauschen am Referenzausgang. Unten ist ein Scope-Screenshot der Referenzausgabe, und dies ist ohne den Umschalter:

Geben Sie hier die Bildbeschreibung ein

Was ist die beste grundlegende Topologie, um diese Schaltung zu versorgen? Kommentare, Empfehlungen oder bessere Ideen als diese wären sehr willkommen.

Wie sieht deine Erdung aus?
Welche SNR oder effektive Anzahl von Bits benötigen Sie? Ist der ADC-Differenzeingang? Wie groß ist ein Kondensator am VREF-Pin? Ist Ihr GROUND ein Flugzeug? oder Daisychain? oder was?
@abe Bisher werden Tests auf einem Steckbrett durchgeführt, also nicht großartig. Ich verwende separate Erdungsstreifen für die Multiplex- und die Analogseite, jedoch in einer möglichst sternförmigen Konfiguration, damit sich die Ströme nur minimal überlappen.
@analog: ADC ist das integrierte 10-Bit, Single-Ended, Vref hat derzeit 100 nF, ich brauche alle Bits, also ist es ziemlich eng, das LSB schwankt derzeit mit dem beschriebenen Setup + -1 Bit, abhängig von der aktuellen Differenz zwischen den Displays, aber wenn der aktuelle Unterschied zwischen den Displays nicht zu groß ist (ähnliche Segmentnummer), bleibt es überraschend stabil
Wenn Sie eine 10-Bit-Genauigkeit benötigen, können Sie den integrierten ADC wahrscheinlich nicht verwenden: Das Datenblatt behauptet einen typischen Fehler von 4,5 LSB.
Ich glaube nicht, dass ein Mikrocontroller 100 - 450 mA-Impulse direkt von seinen GPIO-Pins treiben kann - Sie benötigen eine separate Treiberschaltung, um die Displays zu speisen.
@PeterBennett: Das können Sie definitiv nicht, ich verwende ein ULN2003A-Transistorarray zur Auswahl und 8 PNP-Transistoren zum Ansteuern einzelner LEDs
@Abe: Ich muss einige Zeit damit verbringen, diesen Datenblattabschnitt erneut zu lesen, wusste nicht, dass es ziemlich SO schlimm war, ich konnte mit +/- 1 LSB leben und hatte gehofft, es vorerst stabil (nicht sprunghaft) zu halten . Hatte vor, in einem anderen Beitrag nach der ADC-Genauigkeit zu fragen/zu diskutieren, um nicht zu sehr von den Antworten auf das Stromversorgungsproblem abzulenken
Ist Ihr Sensor ratiometrisch (dh ist der Ausgang linear mit der Versorgungsspannung)? Wenn ja, willst du es von AREF ausschalten, ansonsten von AVCC.
Nicht sicher, was Sie mit "linear mit der Versorgungsspannung" meinen, der Sensorausgang ist jedoch linear in Bezug auf das, was er misst. Sie meinen, den Sensor aus der gleichen Quelle wie Aref oder AVcc mit Strom zu versorgen, richtig?
Betrachten Sie als Beispiel für einen ratiometrischen Sensor die Messung des Widerstands mit einem Spannungsteiler: Die Ausgangsspannung hängt vom Widerstand des Sensors ab, verdoppelt sich aber (z. B.) auch, wenn sich die Versorgungsspannung verdoppelt. Verknüpfen Sie das Datenblatt für Ihren Sensor und ich kann es besser erklären. (Außerdem meinte ich tatsächlich, den Sensor mit Strom zu versorgen.)
@Abe, wenn ich also einen Post-Switcher-LDO habe, der den Sensor und AVcc mit Strom versorgt, würden Sie empfehlen, denselben LDO-Ausgang wie Aref für den ADC zu verwenden? Oder würden Sie die Verwendung einer separaten Spannungsreferenz empfehlen?
Das kann ich nicht beantworten, ohne mehr über den Sensor zu wissen. Wenn die Sensorausgabe absolut ist, kann eine separate Referenz für AREF die Genauigkeit verbessern. Wenn es ratiometrisch ist, möchten Sie, dass AREF an die Stromversorgung des Sensors angeschlossen wird.

Antworten (1)

Beantworte nur einen Teil deiner Frage:

Da der schlimmste Krachmacher hier die gemultiplexte LED-Anzeige ist, haben Sie mehrere Möglichkeiten:

1- Verwenden Sie stattdessen ein LCD mit einer Konstantstrom-LED-Hintergrundbeleuchtung.

2- Halten Sie die hohen LED-Ströme in einer engen Schleife in der Nähe der 7-Segment-Module. Dazu platzieren Sie die 7seg-Treiber in der Nähe des Displays, leiten die Rückströme in Spuren (lassen Sie sie nicht in Ihre Masseebene) und verwenden die lokale Entkopplung, um die Schleife zu schließen, z. B. mehrere hundert µF mit einem niedrigen ESR wie 0,1 R (z. B. Panasonic FC). Versorgen Sie dann das gesamte Display über den Schaltregler und nicht über Ihre sauberen 5 V. Sie könnten auch einen billigen langsamen LDO oder einen RC-Filter hinzufügen, um den Strom zu glätten, der aus der Versorgung gezogen wird.

Außerdem erhalten Sie keine 1LSB-Genauigkeit vom ADC des Mikros, der TL431 ist auch nur auf 1% genau, also müssen Sie klar angeben, welche Art von Genauigkeit Sie benötigen ...

Großartig, danke für die Eingabe ... Ich mag Ihre zweite Idee, zusammen mit dem, was ich ursprünglich dachte, also würden Sie empfehlen, dass die LED-Treiberleistung direkt vom Schaltregler kommt und sie von sauberem Strom isoliert. Würden Sie empfehlen, dass der uC Vcc dann von einem Post-Switcher-LDO und auch der AVcc mit Strom versorgt wird? Soll der Referenzeingang dann auch vom selben Regler kommen, oder soll ich eine separate Referenz verwenden? In Bezug auf die Genauigkeit hat es sich zu Recht in die Antworten auf diese Frage eingeschlichen, aber ich hebe es eigentlich für einen anderen Beitrag auf, da ich der Meinung war, dass es von der Machtfrage ablenken könnte
Wenn dies ein persönliches Projekt ist und Sie keine 10k-Boards bauen, sind die Teilekosten nicht so relevant. Zum Beispiel kostet ein LDO 50 Cent, also verbringe keine Stunde damit, dich zu fragen, ob du ein oder zwei auf dein Board steckst ;) ebenso, wenn du Genauigkeit brauchst, gib ein paar Dollar für einen ADC mit mehr Bits aus, es wird sparen du Zeit...
Richtig, die Kosten für einen zusätzlichen Regler oder eine zusätzliche Referenz sind im Moment nicht das Problem, es geht wirklich nur darum, die gesamte Versorgungstopologie so gut wie möglich zu machen, um das Schaltrauschen unter Kontrolle zu halten und den besten Betrieb des ADC zu ermöglichen. ob ich den On-Board-ADC oder einen externen verwende. Um Sie also noch einmal damit zu nerven;) Wir haben die LED-Treiber von einem Umschalter und den Sensor und den ADC von einem LDO gespeist. Sollte der uC Vcc auch vom LDO gespeist werden? (da er die LED schaltet Treiber) Und würden Sie die Verwendung einer separaten Referenz empfehlen oder ist das LDO gut genug für ADCref?
Nun, eine "Referenz" und ein "Regler" sind mehr oder weniger gleich, außer dass die "Referenz" für höhere Genauigkeit, niedrigere Tempco usw. ausgelegt ist und der "Regler" für höheren Strom ausgelegt ist (und niemand kümmert es, wenn es um 1% gegenüber der Temperatur abweicht). Was Sie nicht tun möchten, ist, einen variierenden Strom aus Ihrer Referenz zu ziehen, da dieser ein Einschwingverhalten aufweist, sodass es einige Zeit dauert, bis er sich einpendelt, wenn der Ausgangsstrom variiert.
Wenn Sie also eine gute Genauigkeit wünschen, sollte ein Referenzchip (oder TL431, was auch immer Ihnen die benötigte Genauigkeit liefert) nur den ARef-Pin mit Strom versorgen und nicht andere Dinge, die gepulsten Strom ziehen. Aus diesem Grund ist die Verwendung der +5 V des Mikros als Referenz nicht genau, da die +5 V mit der CPU-Last ein wenig variieren, da die Stromanforderungen der CPU variieren, ebenso, wenn sie Lasten von ihren Ausgängen treibt usw. Je nachdem, welche Unterdrückung der AVCC-Pin des Mikros hat, können Sie einen RC- oder RLC-Filter mit einer Ferritperle und einem MLCC wie 10 µF auf den AVCC-Pin setzen, der jedes HF-Rauschen herausfiltern sollte.
Was einen LDO für den Mikro-VCC und einen für den Sensor angeht, hängt dies von der Stromversorgungsunterdrückung des Sensors ab, wie ich bereits sagte, geben Sie im Zweifelsfall die zusätzlichen 50 Cent aus ...