Hallo liebes Forum, habe ein Net-IO von Pollin, welches u.A. 4 AD-Wandler Eingänge bietet. Über eine externe Schaltung liefere ich ein (sauberes = störungsfreies) Gleichspannungssignal im Bereich von 0-5V. Da der Microcontroller (AT Mega32) einen 10 bit AD-Wandler besitzt, bedeutet dies ja (theoretisch), dass das unterste Bit einer Spannung von (5V / 1024)=0,00488V entspricht. Ich habe nun schon zwei dieser Net-IO Boards aufgebaut und bei beiden beginnt das unterste Bit erst bei ca 17mV (statt 4,88mV). Nun habe ich - ebenfalls bei beiden Boards - festgestellt, dass auf der Versorgungsspannung eine kleine Einstreuung des 16MHz oszillators stattfindet (ca 50mV pp). Die Referenzspannung habe ich nun mal extern zugeführt (Batterie). Diese ist auch absolut störungsfrei. Hat mein Problem jedoch nciht gelöst. Hat jemand eine Idee, woran dieses Phänomen liegen kan? Schöne Grüße und vielen Dank, MikaeLis
Möglicherweise Spannungsabfall an der Masseleitung. (kann auch dynamisch sein während der Sample-Phase der A/D-Wandlung). Was auffällt: 1. Im Schaltplan fehlen ggf. 100nF-Kondensatoren am A/D-Eingang. bei hochohmigen Quellen kann die Eingangskapazität des A/D-Wandlers evtl nicht vollständig aufgeladen/entladen werden. 2. Die Klemmen sind nicht mit AGND Verbunden sondern mit GND Versuche mal deine Analogeingänge (Masse) direkt an Pin 31 des Prozessors anzuschließen Gruß Anja
Hi, Danke für deine Antwort. 1. ja ich habe schon allerlei 100nF Kondensatoren nachgerüstet - auf der Unterseite direkt an die Pins gelötet. Am Ausgang meiner Schaltung liegt ein Operationsverstärker - der sollte den AD-Wandler schon geladen kriegen (aber super Idee - hab' ich noch gar nicht drüber nachgedacht). 2. AGND und GND trennen die auf der Platine nicht - die Bezeichnung AGND steht nur im Schematic am Pin des Microcontrollers. Alles liegt aber auf einer gemeinsamen Masse. Gruß, Mikaelis
Mikaelis Kah schrieb: > Am Ausgang meiner Schaltung liegt ein Operationsverstärker - der sollte > den AD-Wandler schon geladen kriegen (aber super Idee - hab' ich noch > gar nicht drüber nachgedacht). Dann ist möglicherweise der Operationsverstärker die Ursache. Es gibt wenige OPs die mit den Stromsprüngen der kapazitiven A/D-Wandler zurechtkommen. Und auch wenige die mit einer kapazitiven Last von 100nF nicht anfangen zu schwingen. In der Regel braucht man da mindestens 100 Ohm als Entkopplungswiderstand. Was passiert wenn du anstelle des OPs eine Drahtbrücke nach Masse bestückst? 2. Wie viel Spannungsabfall hast Du zwischen Pin 31 des Prozessors und der Anschlußklemme für den Analogeingang?
Anja schrieb: > Dann ist möglicherweise der Operationsverstärker die Ursache. Es gibt > wenige OPs die mit den Stromsprüngen der kapazitiven A/D-Wandler > zurechtkommen. > Und auch wenige die mit einer kapazitiven Last von 100nF nicht anfangen > zu schwingen. In der Regel braucht man da mindestens 100 Ohm als > Entkopplungswiderstand. Warum gibt es aber dann ab 20mV überhaupt keine Probleme mehr? Ich habe es auch mal mit einer Batterie ausprobiert (also die spannung ganz klein runtergeteilt) - das klappt genausowenig. Deine restlichen Vorschläge / Fragen verusche ich im Laufe der Woche zu beantworten :) Danke!!! Gruß Mikaelis
Offset Fehler des Wandler + Offset Fehler vom Op ? hast du die mal gemessen, bestimmt ?
Mikaelis Kah schrieb: > Warum gibt es aber dann ab 20mV überhaupt keine Probleme mehr? Ich habe > es auch mal mit einer Batterie ausprobiert Kannst Du mal die Eingangsschaltung posten? Welchen OP hast du denn? Ist der Bipolar oder mit single Supply gespeist?
Hallo, anbei ist mal die Schaltung, so wie Sie derzeit ist (ist ein Screenshot von PSpice - daher der R2 Widerstand nur zur Simulation - statt diesem gehe ich direkt auf den AD-Wandler). Gruß, Mikaelis P.S.: der OP ist also ein "billiger" LM324 4-fach op. In der Schaltung sieht man einen Summierer (erster OP) sowie einen nachgeschalteten inverter. Er ist "bipolar" gespeist, also +Ub und -Ub (+-5V)
Bernd N schrieb: > Offset Fehler des Wandler + Offset Fehler vom Op ? hast du die mal > gemessen, bestimmt ? Wie messe ich denn den Offset Fehler des Wandlers? Offset des Wandlers habe ich gemessen ... hab noch einen "guten" LM324 erwischt mit ca. 8mV. Alleine Durch diesen Offset müsste der AD-Wandler schon ansprechen, da das LSB ca 4,88mV ausmacht. Tut er aber nicht ... Aber wie kann ich beim Mikrocontroller am besten den Offset messen? Gruß Mikaelis
Am besten ermittelt man den Offset über 2 Stützpunkte (Testmessung). Also, lese einfach den AD Wert bei einer Eingangsspannung von z.B. 0.4 V und dann bei 2 V. Dann hast Du als Ergebnis ein Delta U und ein Delta ADC. Nun kannst Du die Steigung ausrechnen und den Wandler mal linearisieren. Der Offset wird folgendermaßen bestimmt. Beispiel: Faktor = ((Umax - Umin) / (ADCmax - ADCmin)) => Steigung Offset = (Umin - (Faktor * ADCmin)) Wobei Umax = 2V, Umin = 0.4V und entsprechend ADCmax = der ADC Wert für 2V und ADCmin der ADC Wert für 0.4V. Zur Korrektur verwendest Du (ADC_Wert * Faktor) + Offset Wenn Du die 2 Stützpunktmessungen gemacht hast kannst Du den Offset also schon ausrechnen.
Achso, den Offset der Eingangsschaltung bestimmst Du in dem Du den Meßeingang kurzschließt und am Ausgang des OP die Spannung mißt, die sollte idealerweise = 0 sein.
Hallo, und du bist dir sicher daß der LM324 bei 4,7uF Last am Ausgang nicht schwingt?. Ich verwende da immer so ca 100 Ohm zwischen Pin 1 und Kondensator sowie ca 1nF zwischen Pin 1 und Pin 2 des OPs. Gruß Anja
Und die Versorgungsspannung der OP's gehört auch noch geblockt mit je 100nF, also 4 Stück.
@Anja: nee der Schwingt keinesfalls. @Bernd: klar - in der reslisierten Schaltung sind überall Abblockkondensatoren verbaut. Werde die Offsetmessung mal machen Vielen Dank euch Beiden. Danach melde cih mich gewiss wieder. Gruß Mikaelis
Such doch 'mal in der Software. Wenn du nur 8 Bit auflöst, dann hast du den Effekt auch. Gib es denn wirklich eine Änderung von 17 auf 22 mV? Gruß Einhart
Einhart Pape schrieb: > Such doch 'mal in der Software. Wenn du nur 8 Bit auflöst, dann hast du > den Effekt auch. Gib es denn wirklich eine Änderung von 17 auf 22 mV? jep. bei 20mv gehts direkt weiter auf die nächste stufe. war auch schon eine meiner vermutungen, dass der ad-wandler auf nur 8 bit läuft. Gruß, Mikaelis
Bernd N schrieb: > Faktor = ((Umax - Umin) / (ADCmax - ADCmin)) => Steigung > Offset = (Umin - (Faktor * ADCmin)) > > Wobei Umax = 2V, Umin = 0.4V und entsprechend ADCmax = der ADC Wert für > 2V und ADCmin der ADC Wert für 0.4V. > > Zur Korrektur verwendest Du (ADC_Wert * Faktor) + Offset Hallo Bernd: nun habe ich nach deiner Anleitung folgendes getan: Spannungen eingestellt auf: Umax = 2,007V Umin = 0,0997V beides mit Multimeter direkt am ADC Eingang gemessen. Entsprechende Spannungen am ADC abgelesen: ADCmax = 1,992264V ADCmin = 0,092777V Dann nach den Formeln (s.o.) berechnet: Faktor = ... = 1,004113 Offset = ... = 0,0065414 V Nun habe ich noch mal "genau" nachgemessen und festgestellt, dass bei 13,5mV am Eingang des ADC dieser auf "0000000001" (also 0,004883V) springt. Messe ich nun also mit dem ADC eine Spannung von 0,004883V, dann bedeutet dies ja - unter Berücksichtigung des Offsetwertes - dass ich in Wirklichkeit eine Spannung von Ukorr = (0,004883 * 1,004113)V + 0,0065414V = 0,01144447V habe. Das liegt ja schon recht nahe an der Realität (den besagte 13,5mV). Aber ich will noch nicht so recht glauben, dass nur diese zwei Messwerte von Umin=100mV und Umax=1V genügen .... müsste man da nicht eigentlich eine in die Tiefe gehende Fehleranalyse machen, um die Bestimmung genauer zu machen (ich denke das ist klar ... deine Formeln sind dann der theoretische Ansatz?) Bin gespannt auf deine Antwort, schöne Grüße Mikaelis
@Mikaelis Kah ich weiß ja nicht was du mit dem A/D vorhast, aber schau dir doch erst mal das Datenblatt des ATMega32 an - da kannst du messen wie du wills't aber der ist nun mal nicht zu 100% genau! Sascha
Da braucht es nur 2 Testpunkte, glaub mir, Du hast nun die Qualität deines Wandler real gesehen :-) Überleg mal, das ist ein lineares System, die Stützpunkte kannst Du beliebig wählen... in Grenzen, aber 2 Testpunkte ergeben nun mal die lineare Funktion die einen Wandler ausmachen. Du hast 2 Schnittpunkte und verbindest diese. Es entspricht außerdem meinen eigenen Tests... die Wandler sind fehlerbehaftet.
Bin drübergeflogen :-) >> ADCmax = 1,992264V >> ADCmin = 0,092777V Nein, ADCmax, min, bewegt sich zwischen 0 und 1024 (1023) also z.B. 1000, 400.
ja habe diese Werte einfach mit 0,004883 multipliziert - ist also nur ne umrechnung in die entsprechende vom ADC gemessene Spannung?! Gruß Mikaelis
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.