mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC wird von normalem Programmablauf gestört, ATtiny26


Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi..

Ich versuche für eine Akkuladeschaltung derzeit ein paar Experimente mit 
dem ADC meines ATtiny26. Der Tiny26 steuert zu dem ADC noch einen 
LED-Farb-Fader mit 3 Software-PWMs an.

ich messe über den ADC Kanal 0 und habe dort einen Poti gegen masse und 
AREF angeschlossen. An AREF befindet sich noch ein 100N keramik 
kondensator gegen masse. Alles so wies sein sollte.

Ausgeben lasse ich mir das ganze über I²C auf meinen LED-Anzeigen.

Der ADC wird mit dem Timer1 ungefär 4 mal in der Sekunde gestartet und 
läuft bei 8mhz systemtakt mit internem oszi und 64 vorteiler auf ca 
125khz wandlungsfrequenz. sobald der ADC fertig ist wird eine ISR 
ausgelöst die das ganze per I²C an meine LED-anzeige schickt.

Aber trotzdem spinnt der ADC n bissel. Während die LEDs faden zeigt der 
ADC ziemlich wirr schwankende werte an, je nach potentiometerstellung. 
halte ich die PWM mit meiner hold-funktion an wird nur noch ständig der 
taster abgefragt und nichts mehr geschaltet also vom µC gibt es schonmal 
eignetlich keine potentiellen rauschquellen.

Das seltsame ist nun dass sich der ADC nicht mehr kontinuierlich 
aktualisiert.?! Je nach potistellung springt der ADC nur zwischen vier 
verschiedenen werten rum. Z.b. 3, 259, 515, 771. Wenn ich ihn hin und 
her drehe krig ich immernur eine dieser 4 zahlen. Irgendwann springt das 
ganze auf eine andere ebene ?! z.b. 0, 256, 512, 768. Scheint immer eine 
2erpotenz und eine additive konstante zu sein, wie kommt denn bitte 
sowas zustande?

ich weiß es gibt noch den adc noise reduction sleep mode aber das ist ja 
kein rauschen. scheint eher sowas wie n bug zu sein. was auch immer. 
jemand ne idee?

ach ja, wenn ich vor mein hauptprogramm mal eine endlosschleife einbau 
die den normalen programmablauf verhindert, funktioniert alles voll 
normal.

mfg PoWl

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
omg bitte löschen..

hab die falschen register genommen.. jetzt hab ich nur noch eine 
abweichung von +-2 LSB

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein ähnliches Problem hatte ich letztens auch.
Geholfen hat eine Verkürzung der Zeit, in der gemessen wird um die 
Hälfte (4 Messungen mit 128er Vorteiler).
Ebenfalls erfolgreich war die Version mit AD Messung während die 
globalen Interrupts abgeschaltet sind - die erste Variante war mir 
lieber.

Wie man das eleganter lösen kann kann ich dir leider nicht sagen, aber 
bis hier niemand antwortet, der den Durchblick hat kannst du das ja mal 
testen :).

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Bist du sicher, daß du das Low-Byte vom ADC richtig einliest ( richtige 
Reihenfolge)?
Die Werte sehen aus, als ob nur das Highbyte (2Bit) ausgewertet würde.

MfG Spess

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, ja wie gesagt tut mir leid, habe die falschen register genommen so 
hatte das low byte seinen wert woanders her und immernur das high byte 
hat gewechselt.. das erklärt auch die seltsamen sprunghaften änderungen 
des ADC.

klappt nun schon ganz gut nur den ADC noise reduction modus möchte ich 
noch ausprobieren weil er durch das fading trotzdem noch ganz gut 
schwankt.. ganz egal wie viele kondensatoren ich da dranbaue?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.