Forum: Mikrocontroller und Digitale Elektronik ATXMega Verhalten


von Thomas Mundhenke (Gast)


Lesenswert?

Hallo Kollegen,
bei meinem "Kampf" mit den Atxmegas konnte ich einige seltsame Verhalten 
bisher nicht erklären:
ATMega256A3 32MHz Clock

Ich brauche alle 8 Eingänge eines ADC mit den vier internen Kanälen
Ich muss dazu die Eingänge in zwei Zyklen einmal auf das erste dann auf 
das zweite Quartett Meßeingänge umschalten.
Zyklus ist sehr gemächlich, alle 25ms wird umgeschaltet, 20Meßwerte pro 
Kanal gelesen und verarbeitet. Dazwischen macht der Controller im 
wesentlichen nichts.
Das Eingangssignal sind sind konstante Gleichspannungen ohne 
Störimpulse.
HW-Probleme kann ich ausschliessen.

Interruptbetrieb:
Was auffällt, wenn ich den ADC Clock von DIV/4 immer langsamer bis auf 
DIV/512 reduziere sind ( ab DIV/64) die ersten ein/zwei oder mehr 
Meßwerte jedes Kanals erstmal falsch, obwohl die Eingänge am Ende jedes 
Zyklus umgeschaltet werden und der ADC genügend Zeit haben müßte.

Die gleiche Anforderung mit DMA umgesetzt macht die gleichen Probleme, 
ausserdem dauert bei 4 Kanälen der Transfer extrem lange, die CPU zeigt 
Blockaden !

Ich habe schon alle hinlänglich bekannten Foren durchstöbert und jede 
Menge Code getestet.

Kennt jemand so ein Phänomen ?
Ich kann zwar das Problem im Programm ungehen, finde es aber schon 
seltsam ?!?

Danke für Eure Hilfe,
Gruß Thomas

von Christian D. (neo87)


Lesenswert?

Hallo Thomas,
Ich kenne dein Problem. Allerdings habe ich bis jetzt nur im 
Single-ended gearbeitet. Ich verwerfe Grundsätzlich erstmal die erste 
Messung. Ich glaube sogar das mal in irgendeiner AppNote gelesen zu 
haben.

BTW: Hast du mal in die Errata des 256A3 gesehen?  Da gibts fast ne 
ganze Seite zum ADC.

Gruß
Neo

von Stefan F. (Gast)


Lesenswert?

Die erste Messung ist beim Xmega immer falsch, das steht auch irgendwo 
im Datenblatt.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nimm den XMega256A3U, der ist besser, weil fehlerbereinigt.

von Thomas Mundhenke (Gast)


Lesenswert?

Danke für Eure Antworten:
Controllertausch geht nicht mehr, Platinen sind schon bestückt !
Lösung durch wegwerfen der ersten Werte funktioniert:
ab clock/64 und schneller sind auch die ersten Werte OK
Ich werde meinen Ansatz nochmals gründlich überarbeiten, weil mir auch 
die Mängel beim DMA-Betrieb nicht gefallen haben.

Auf jeden Fall kann ich bisher bestätigen, dass die µC besser sind als 
manche ihnen nachsagen, die Doku hingegen teilweise unterirdisch 
schlecht ....

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
Noch kein Account? Hier anmelden.