Guten Morgen,
ich bin gerade dabei, mir ein Gerät zur Spannungsmessung mit 8 Kanälen
zu bauen. Der verwendete ADC hat eine Auflösung von 14 Bit und die
Referenzspannung beträgt 4,096V. Der Wandler ist an einen ATmega32
angeschlossen, welcher die Messwerte einlesen und später auf
7-Segment-Anzeigen ausgeben soll.
Zur Zeit habe ich etwa ein Grundrauschen von 5mV, was bedeutet, dass ich
die unteren 5 Bit der Wandlung in die Tonne treten kann. Richtig heftig
wird es, wenn ich meine Schaltung zur Protokollierung der Meßwerte an
die serielle Schnittstelle hänge. Dann nämlich habe ich 50mV Rauschen,
d. h. die unteren 8 Bit sind nutzlos.
D. h. eine galvanische Trennung zum PC ist zwingend notwendig. Ich frage
mich aber, ob man die erwähnten 5mV mit vernünftigen Aufwand noch weiter
drücken kann? Wünschenswert wäre natürlich, mit dem Rauschen unter das
LSB (250µV) zu kommen. Aber ich denke, dass ist eher utopisch.
Oder was meint ihr? Kennt jemand gute PDFs, die sich mit rauscharmen
Design befassen?
Thomas
Gutes Layout, viel Masse, Analogteil vom Digitalteil masseseitig und
räumlich trennen. Digitalsignale weit weg von Analogsignalen führen. Bei
Schnittstellen die Digitalsignale über Serienwiderstände führen, um
hochfrequente Reflektionen zu vermeiden. ADC über L/C-Filter mit
Spannung versorgen.
Versuche mal Dein Rauschen näher zu ergründen. Ist es vielleicht
Netzbrummen oder Spikes der Stromversorgung ?
Dann müssen diese Quellen abgestellt werden.
Ansonsten ist der Aufbau der Schaltung sehr entscheidend: Trennung von
GND und AGND und ein einziger Verbindungspunkt zwischen diesen Signalen.
Wenn die Messung floating ist wird keine galvanische Trennung benoetigt,
alles ist eine Layoutsache. Die Hersteller der ADC, National
Semiconductor, Motorola, Analog Devices, Linear Technology, Maxim, ua.
haben beliebig viele Application Notes zu diesem Thema.
holzi
Hallo,
danke erst mal für eure Antworten.
Es ist definitiv kein Netzbrummen, sondern hochfrequentes Rauschen. Die
Schaltung wird durch ein nicht geerdetes, linear geregeltes Netzteil
versorgt. Ich werde jetzt als erstes mal einen Optokoppler in die
serielle einschleifen, um vom PC kommende Störungen auszuschließen.
Sowas kann man ja eh immer mal gebrauchen.
Generell sieht es zur Zeit so aus, dass ich eine Platine habe, auf der
der ADC sitzt und außerdem noch eine zweite Platine mit dem AVR.
Auf der analogen Platine sind AGND und DGND strikt getrennt, und werden
über zwei Leitungen direkt an die GND-Klemme des Netzteils geführt. VCC
(5V) für den Wandler wird auf der Analogplatine mit einem RC-Glied (10R,
10uF) gefiltert. Die 8 Analogeingänge haben alle ebenfalls RC-Glieder
(51R, 10nF). Ferner geht eine Flachbandleitung von der Analogplatine zur
AVR-Platine, über welche die SPI-Signale laufen. Der SPI läuft mit 1MHz
und funktioniert so, dass zuerst vom AVR 8 Bit via SPI an den ADC
gesendet werden, worauf hin dieser die Wandlung startet. Er hat einen
internen Oszillator, daher ist während der Wandlung ein externer Clock
nicht notwendig. Störungen von dieser Seite sind daher ausgeschlossen.
Ja und schließlich führt noch GND der AVR-Platine ebenfalls zur
Netzteilklemme.
Ich werde mich jetzt auch mal der Stromversorgung widmen.
Thomas
>Generell sieht es zur Zeit so aus, dass ich eine Platine habe, auf der>der ADC sitzt und außerdem noch eine zweite Platine mit dem AVR.
ok
>Auf der analogen Platine sind AGND und DGND strikt getrennt, und werden>über zwei Leitungen direkt an die GND-Klemme des Netzteils geführt
AGND und DGND separat halten und an einem! Punkt auf der Platine
verbinden.
Was du da hast ist eine hübsche Antenne. Masseflächen nicht nur
Masseleitungen.
>VCC (5V) für den Wandler wird auf der Analogplatine mit einem RC-Glied (10R,>10uF) gefiltert.
der Wandler darf also maximal 0,5 A ziehen. Warum erzeugst du die
Spannung nicht auf der Platine mit Linearregler, das ist besser, als das
Rauschen über eine Leitung mit Spannungsabfall reinzuholen und dann zu
probieren wieder rauszufiltern.
Ich vermute du denkst die Stabilisierung der Spannung mit 10uF ist
ausreichend. Nimm da wenigstens noch einen 100nF Keramik Kondensator
nahe ans IC.
Wird in deinem Flachbandkabel eigentlich GND mitgeführt, wenn nicht
kannst du anhand deiner Verkabelung sehr schnell sehen wie gross die
Leiterschleife ist in die induziert wird. (proportional Fläche)
Verändere doch mal die Lage deiner GND Leitungen verändert sich das
Rauschen?
Was ich komplett vermisse ist die Referenz ist die integriert? Wenn
nicht hochwertige Referenzquelle verwenden und stabilisieren.
Wie kommen die Messsignale zu deinem ADC? Einzelne freilaufende Drähte?
Woher kommen die Signale die gemessen werden ? Von einem Netzteil (als
beim Testen) oder einem Sensor (wenn ja, was für einer). Liegt der
Sensor vielleicht irgendwo auf einer anderen Masse mit dem Gehäuse und
schleift die so eine Masseschleife ein?
Außerdem hast du mit dem RC Filter eine Grenzfrequenz von Rund 312kHz
wenn ich mich nicht irre. Brauchst du die Bandbreite? Sonst passe den
Filter an bzw. mache einen aktiven rein.
Ich habe einen SPI-Bus mit 20MHz an einem ADC und kein Rauschen. Ok, die
Stromversorgung ist galvanisch getrennt, aber daran denke ich wird es
nicht liegen.
>>Auf der analogen Platine sind AGND und DGND strikt getrennt, und>>werden über zwei Leitungen direkt an die GND-Klemme des Netzteils>>geführt AGND und DGND separat halten und an einem! Punkt auf der>>Platine verbinden.>Was du da hast ist eine hübsche Antenne. Masseflächen nicht nur>Masseleitungen.
Antenne, dass macht Sinn. Ja und was die Masseflächen angeht, so habe
ich im Anhang mal das Layout gehängt.
>der Wandler darf also maximal 0,5 A ziehen.
Ist gegeben. Es handelt sich um den MAX1148, der benötigt so ca. 2mA.
>Warum erzeugst du die Spannung nicht auf der Platine mit>Linearregler, das ist besser, als das Rauschen über eine>Leitung mit Spannungsabfall reinzuholen und dann zu>probieren wieder rauszufiltern.
Hab ich darüber nachgedacht, werde ich auf jeden Fall ausprobieren.
Aufgrund des geringen Strombedarfs könnte man hier vielleicht wirklich
auch einen aktiven Filter vorsehen.
>Nimm da wenigstens noch einen 100nF Keramik Kondensator>nahe ans IC.
Habs vergessen zu erwähnen, 100nF sind vorhanden.
Was ich komplett vermisse ist die Referenz ist die integriert?
Ja, und sie wird auch an einen Pin des Wandlers geführt. An diesem Pin
hängen 10nF gegen AGND.
>Wie kommen die Messsignale zu deinem ADC? Einzelne freilaufende>Drähte?
Zum testen verwende ich 3V einer Lithium-Zelle, welche über kurze Drähte
mit dem Wandler verbunden sind.
Irgendwie scheint das VCC-Filter nicht korrekt angebracht zu sein,
jedenfalls wie´s auf dem Layout aussieht. Der Strom sollte durch den R
und das C sollte dann nach Masse abblocken. Den R würde ich auch durch
ein L von 47µH ersetzen. Auch wenn im Datenblatt ein R zum Einsatz
kommt.
Hi,
so ich wollte mich dann jetzt mal bedanken für die konstruktiven
Beiträge.
Es gab zwei Gründe für die erheblichen Schwankungen. Zum einen eine
kalte Lötstelle am COM-Pin, dadurch war der offen und somit keine
sinnvolle Messung möglich.
Der zweite Grund war verrückt, und zwar hatte ich auf der
Referenzspannung eine ziemlich ekelhafte Störung von etwa 14MHz mit
einer Amplitude von ca. 10mVss drauf, welches Schwankungen um +-20 LSB
verursachte. Das witzige war, dass mein AVR zufällig auch mit 14,314MHz
lief und ich dachte natürlich, dass da was durchschlägt. Dummerweise war
die Störung auch noch da, nachdem ich das AVR-Modul komplett abgeklemmt
und stromlos gemacht hatte. In einem Datenblatt von Linear stand, dass
solche Wandler intern mit "switched capacitors" arbeiten, um
irgendwelche Spannungsverschiebungen zu erreichen; keine Ahnung!
Jdenfalls habe ich dann Vref mit 10µF Tantal parallel 10nF Keramik
geblockt (statt vorher 2µ2 Tantal) und jetzt funktioniert es. Bei meinen
Messungen im differentiellen, bipolaren Modus zittert etwas das LSB,
aber das darf es :)
Naja und jetzt gehts weiter mit der Meßbereichserweiterung, schließlich
will ich +- 200V DC messen.
Also nochmals besten Dank und die nächsten Probleme kommen bestimmt.
Thomas