Hi.. nächstes Problem. Ich habe hier einen ATtiny26 und möchte mit dem ADC ein Audiosignal auf AREF/2 einkoppeln. Das funktioniert auch schon recht gut. jedoch ist mir aufgefallen, dass der Mittelwert dann bei 498 liegt und nicht, wie angenommen bei 511..512. Jetzt hab ich testweise den ADC -Eingang mal auf GND gelegt. Sauber 0, die ganze Zeit. Also kein Offset-Fehler. Wenn ich den ADC-Kanal jedoch an AREF anschließe bekomme ich immer Werte von 998..999. Ja, AREF, nicht AVCC oder sonstiges. Warum nicht 1023? Montags-Produkt? Wieder so ein ATtiny26-Bug? Dürfte ja eigentlich nicht sein, eine solch große Abweichung. Der Tiny läuft mit 8Mhz int. Oszillator. Am ADC ist die Interne Spannungsreferenz 2.56V mit ext. Kondensator aktiviert. ADC-Clock Vorteiler ist 64, ergibt einen ADC-Takt von 125kHz. Die Messung erfolgt differenziell zwischen ADC0 (positiv an AREF) und ADC1 (negativ, an GND). ADCSR = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); ADMUX = (1 << REFS1) | (1 << REFS0) | 0b01100; Jemand eine Idee?
Schaltplan? Glaskugel sagt, Du treibst große Lasten gegen VCC, d.h. der interne GND wird angehoben. Ich hab mal ne LED-Anzeige gemultiplext und dann wärend der Wandlung die LEDs dunkel getastet.
Hallo, Welchen Sinn hat diese Beschaltung, bzw. Konfiguration ? Paul H. schrieb: > Die Messung erfolgt > differenziell zwischen ADC0 (positiv an AREF) und ADC1 (negativ, an > GND).
Guter Tipp! Trifft leider nicht zu. Bevor ich jetzt den Schaltplan zeichne tuts auch eine Beschreibung: Der ATtiny26 ist quasi nackt. Da hängt nur I2C dran, und das ist zum Zeitpunkt der ADC-Messung inaktiv. Ansonsten ist auch alles schön mit 100n-Kerkos versehen. Zwischen den beiden VCC und GND Anschlüssen. Zwischen AREF und GND. AVCC ist über 100µH an VCC angekoppelt. Das Rauschen ist mittlerweile auch <1LSB. ADC1 ist direkt über eine Steckbrücke mit dem nächstgelegenen GND verbunden. ADC0 über eine Steckbrücke mit AREF. Mit dem Multimeter messe ich übrigens 2.85V an AREF. Bisschen viel.
Die differentielle Messung hat zusätzle Fehler. Insbesondere kann man da einen negativen Offset haben. Also statt 0 würde eigentlich so etwas wie -20 herauskommen, was der ADC aber so nicht kann und dann 0 ausgibt. Auch durch Störungen, die mit der Auslösung des ADC syschron sind, kann man einen zusätzlichen Fehler erhalten.
Karl M. schrieb: > Welchen Sinn hat diese Beschaltung, bzw. Konfiguration ? Dass ich bei Bedarf den internen 20x-Gain nutzen kann. Ich Schalte mal eben testweise auf Single-Ended Messung.
Differentiell habe ich nie probiert. Glaube aber im Datenblatt steht, daß die Genauigkeit dann schlechter ist.
Ah tatsächlich! Mit der Single-Ended-Messung bekomme ich als Ergebnis brav 1023. Ich werde jetzt mal bei verschiedenen Eingangsspannungen zwischen Single-Ended und Differential umschalten und vergleichen.
Aha, dann bin ich beruhig. Evtl. solltest Du auf einen externen OPV zurückgreifen, dann kann man einmal die beiden Fehler erfassen und immer heraus rechnen. Paul H. schrieb: > Ah tatsächlich! Mit der Single-Ended-Messung bekomme ich als > Ergebnis > brav 1023. Ich werde jetzt mal bei verschiedenen Eingangsspannungen > zwischen Single-Ended und Differential umschalten und vergleichen.
Externen Opamp wollte ich vermeiden und das Projekt so simpel wie möglich halten. Die differenzielle Messung brauch ich eigentlich gar nicht. Die Gain-Modi sind aber nur da verfügbar. Ich hab eben mal einen Kanal single-ended und einen differential messen lassen und mit einem Trimmer zwischen GND und AREF rumgestellt. Es handelt sich hier um einen simplen Verstärkungsfehler. Der Gain ist nicht 1x sondern 0,97x oder so. So lange ich das weiß kann ichs rausrechnen :-)
Paul H. schrieb: > Der Gain ist nicht 1x sondern 0,97x oder so. So lange ich das weiß kann > ichs rausrechnen :-) Hoffentlich ist der Gain-Fehler bei jedem ATtiny gleich, sonst suchst du dich dämlich wenn der mal kaputt geht und du einen anderen nimmst. Paul H. schrieb: > Mit dem Multimeter messe ich übrigens 2.85V an AREF. Bisschen viel. Da solltest du eher die Ursache suchen. Paul H. schrieb: > verbunden. ADC0 über eine Steckbrücke mit AREF. Es ist vielleicht auch nicht die beste Idee, die interne Referenz als ADC-Eingang zu missbrauchen.
Hi >Hoffentlich ist der Gain-Fehler bei jedem ATtiny gleich, sonst suchst du >dich dämlich wenn der mal kaputt geht und du einen anderen nimmst. Dafür kalibriert man den ADC. Gibts passende AppNotes. MfG spess
In den Tiefen des Handbuchs steht: Voltage on Any Pin except RESET with Respect to Ground ..............................-0.5V to VCC + 0.5V Also sollte es mit der "Subtraktion“ von Spannungen nicht weit her sein.
spess53 schrieb: > Dafür kalibriert man den ADC. Gibts passende AppNotes. Soweit richtig! Dass ist dann allerdings kein (u.U. später problematisches) > rausrechnen Und wenn VREF falsch ist, dann ist es vmtl. keine Fehlkalibrierung
Michael K. schrieb: > Und wenn VREF falsch ist, dann ist es vmtl. keine Fehlkalibrierung Das Datenblatt sagt: VINT Internal Voltage Reference min:2.4 typ:2.7 max:2.9 Liegt also noch im Rahmen Michael K. schrieb: > Es ist vielleicht auch nicht die beste Idee, die interne Referenz als > ADC-Eingang zu missbrauchen. ADC0 ist der Eingang, AREF der "Ausgang". Wird übrigens laut Appnote bei der Kalibrierung ebenso praktiziert ;-) Im Projekt selbst wird eh ein Tiny261 zum Einsatz kommen. Mal schauen, wie der sich so verhält.
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.