Guten Morgen, hat hier jemand schonmal mit dem ADC der relative neuen XMEGA-A4U-Serie gearbeitet? Wir haben hier einen 32A4U und können die interne Bandgap-Spannung sowie VCC/10 korrekt messen. Die Messung der externen Pins aber ergibt bei jeweils gleicher ADC-Konfiguration immer quasi den selben Wert (+-3LSB), unabhängig davon, welche Spannung am PIN anliegt. Erhöht man den ADC-Takt, zeigt sich das selbe Verhalten, nur liegt der durchschnittliche ADC-Wert deutlich höher. Hat vieleicht jemand eine Idee, was da schief laufen könnte? Hatte jemand schon ein ähnliches Problem? Und hat schon jemand den A4U-ADC erfolgreich benutzt? Vielen dank und herzliche Grüße,
>> Hat vieleicht jemand eine Idee, was da schief laufen könnte? vielleicht das Programm. >> Hatte jemand schon ein ähnliches Problem? ja war das Programm. >> Und hat schon jemand den A4U-ADC erfolgreich benutzt? ja nachdem das Programm sauber lief. Vielleicht irgenwas vergessen zu posten ? Stefan
Hallo Steffan, danke für die Antwort. Kannst Du uns sagen, wo in deinem Programm das Problem gelegen hat? Vielen Dank,
Da ihr nicht alles postet, habe ich meine Glaskugel bemüht. Die ist sich fast sicher, dass ihr die Eingänge nicht direkt als Eingänge eingestellt habt. Der XMega ist von den EIngängen her nicht wie die Atmegas. Das ist bei denen wesentlich komplexer und flexibler. Die analogen EIngänge müssen meines Wissens nach auch noch als solche definiert und initialisiert werden. Grüße, Jens
Hey, ich hab als einstige für den Xmega das Tutorial hier benutzt http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial Es ist zwar nicht fehlerfrei aber hat mir den Einstieg sehr erleichtert und in Kombination mit dem Datenblatt lief es dann. MfG
Hallo zusammen, mit dem folgenden Ausschnitt konfigurieren wir den ADC:
1 | uint16_t t; |
2 | |
3 | PORTA_PIN0CTRL |= PORT_ISC_INPUT_DISABLE_gc; |
4 | |
5 | ADCA_CTRLA = ADC_ENABLE_bm; |
6 | |
7 | ADCA_REFCTRL |= ADC_REFSEL_VCC_gc; |
8 | ADCA_CTRLB = ADC_RESOLUTION_12BIT_gc; |
9 | ADCA_PRESCALER = ADC_PRESCALER_DIV128_gc; |
10 | |
11 | // Configuring channel 0
|
12 | ADCA_CH1_CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc; |
13 | ADCA_CH1_MUXCTRL = ADC_CH_MUXPOS_PIN0_gc; |
14 | |
15 | ADCA_CH1_CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc; |
16 | ADCA_CH1_MUXCTRL = ADC_CH_MUXPOS_PIN0_gc; |
Die Systemclock ist der halbe 32MHz DFLL, auf 48MHz USB-SOF-kalibriert. Die Konversion starten wir wie folgt:
1 | ADCA_INTFLAGS = ADC_CH0IF_bm; |
2 | ADCA_CH0_CTRL = ADC_CH_START_bm; |
3 | while(!(ADCA_INTFLAGS & ADC_CH0IF_bm)); |
4 | t = ADCA_CH0RES; |
Habt ihr noch weitere Tips, was fehlen oder warum es nicht funktionieren könnte ? Danke und viele Grüße,
Hallo Flo und Jens, vielen Dank für eure Hinweise, wir haben unseren ADC-Code mal gepostet. Das Tutorial haben wir ebenfalls angesehen. Das Problem besteht leider weiterhin. Habt Ihr außer dem PORT_ISC_INPUT_DISABLE noch weitere Pin-Konfigurationen vorgenommen? Danke und viele Grüße,
Hallo, im Prinzip ist alles iO. aber.. ADCA_REFCTRL |= ADC_REFSEL_VCC_gc; ADCA_CTRLB = ADC_RESOLUTION_12BIT_gc; ADCA_PRESCALER = ADC_PRESCALER_DIV128_gc; // Configuring channel 0 ADCA_CH1_CTRL |= ADC_CH_INPUTMODE_SINGLEENDED_gc; ADCA_CH1_MUXCTRL |= ADC_CH_MUXPOS_PIN0_gc; ADCA_CH1_CTRL |= ADC_CH_INPUTMODE_SINGLEENDED_gc; ADCA_CH1_MUXCTRL = ADC_CH_MUXPOS_PIN0_gc; ADCA_CTRLA = ADC_ENABLE_bm; ADCA_INTFLAGS = ADC_CH0IF_bm; ADCA_CH0_CTRL |= ADC_CH_START_bm; while(!(ADCA_INTFLAGS & ADC_CH0IF_bm)); t = ADCA_CH0RES; wenn ihr zB. ADCA_CH1_CTRL |=
Hallo, nochmals... da ist was schief gelaufen.. Wenn ihr den Befehl verwendet ADCA_CH1_CTRL = wird das Register wieder mit den neuen Daten überschrieben! also: ADCA_CH1_CTRL |= ADCA_CTRLA |= ADC_ENABLE_bm; immer am Ende eingeben. Der ADC im neuen ATxmega32A4U unterscheidet sich in keienr Weise von seinen Artgenossen. Gruß xmega
Lass mich raten der Wert liegt irgendwo zwichen 1600 und 1700. Ist mir auch schon passiert. >> // Configuring channel 0 Ist das wirklich Channel 0? >> ADCA_CH1_CTRL |= ADC_CH_INPUTMODE_SINGLEENDED_gc; >> ADCA_CH1_MUXCTRL |= ADC_CH_MUXPOS_PIN0_gc; Stefan
Gerhard G. schrieb: > Der ADC im neuen ATxmega32A4U unterscheidet sich in keienr Weise von > seinen Artgenossen. Aber sicher doch: Dieser ADC funktioniert gemäß seiner Spezifikationen!
@travelrec Selbst getestet? Das wäre ja zu schön! So richtig mit Referenz bis AVCC? Ich hatte leider noch keinen in der Hand. Stefan
Stefan schrieb: > Selbst getestet? Ja. Stefan schrieb: > Das wäre ja zu schön! Ist es! Stefan schrieb: > So richtig mit Referenz bis AVCC? Ja. Stefan schrieb: > Ich hatte leider noch keinen in der Hand. Ineltek hat welche, wenn Du einige Stück benötigst. Mengen ab Q2-2012.
@travelrec Mouser hat auch irgendwas um die 900 auf Lager aber ich muss erst mal die alten alle kriegen bevor ich neue bestellen darf. Ist der DAC im unteren Bereich jetzt etwa auch sauber (das Rauschen bis ca 600 mV)? Der DAC war für mich einer der Hauptgründe neben dem DMA den XMEGA zu wählen. BTW, die Dinger kann man doch problemlos statt der ATxmega32A4 nehmen? Stefan
Hi Leute, Wo sieht ihr die Features im neuen xmega adc und dac zb gegenueber stm32 oder msp430f5? Bisher hatte ti recht gute adc implementierung aber kein gain stage, dafuer musste ich immer nen externen adc nehmen der um die 4$ kosten kann. Der xmega ist hier sehr weit fortgeschritten und die inl dnl error stabil ueber die ganze temp liest sich sehr gut. Irgendwelche erfahrung?
Hallo zusammen! Danke an xmega... grml... das sind so Fehler, die man übersieht, wenn man den Code schon zu auswendig kennt ;) Vielen Dank für eure Hilfe. Gruß,
Knut Ballhause schrieb: > Stefan schrieb: >> So richtig mit Referenz bis AVCC? > > Ja. Also ähem, nein. 1V...AVcc-0.6V. Aber in dem Bereich ohne Probleme. Stefan schrieb: > Ist der DAC im unteren Bereich jetzt etwa auch sauber (das Rauschen bis > ca 600 mV)? Der DAC war für mich einer der Hauptgründe neben dem DMA den > XMEGA zu wählen. DAC habe ich noch nicht getestet, kommt aber noch. In den Errata taucht nichts diesbezüglich auf. Stefan schrieb: > BTW, die Dinger kann man doch problemlos statt der ATxmega32A4 nehmen? Ja. Nur dass die USB-Pins vom alten Design abweichen.
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.