www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem: Atxmega 128A1 ADC wandelt nicht richtig


Autor: AxmegaFrage (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Versuche einen Analogwert mit einem Atxmega128A1 auf einem ALVIDI 
Entwicklungsboard einzulesen. Jedoch schwanken die eingelesenen Werte 
recht stark von Wandlung zu Wandlung. Kann es sein, dass der ADC noch 
noch falsch konfiguriert ist? Anbei der Code. Jegliche Hilfe ist 
willkommen.
/*
Multi-Level-Inverter
FHWT ´10
*/
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <math.h>

void clock_init(void);

ISR(ADCB_CH0_vect) 
{   
  PORTA.OUT = ADCB.CH0RESL;  
}



int main (void)
{  
  clock_init();
  sei();
  PORTA.DIR=0x00;
  PORTB.DIR=0x00;
  PORTA.OUT=0x00;
  
  ADCB.CALL = 0x00;
  ADCB.CALH = 0x00;
  ADCB.CTRLA = 0b00000001;       //ADC enable, flush pipeline aus, start=0
  ADCB.CTRLB = 0b00001010;        //unsigned mode,8Bit, Free Running Mode
  ADCB.REFCTRL = 0b00000000;      //Externe 1V Referenz
  ADCB.PRESCALER = 0x01;     //Vorteiler auf 8 
  ADCB.CH0.CTRL = 0x81;     //input mode single ended Kanal 0
  ADCB.CH0.MUXCTRL = 0b00000000;  //PIN 0 für ADC wählen
  ADCB.EVCTRL = 0b00000000;   // sweep ch0 
  ADCB.CH0.INTCTRL = 0b00000011;   // enable hi level interrupts 
  PMIC.CTRL = 0b00000111;   // enable interrupt
  

  while(1) 
  {  
  }        
  return 0;
}


Autor: G*sti Garsti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt zur Hand nehmen, Abschnitt "Errata" lesen (42 Punkte), sich 
beim XMega ADC über gar nichts mehr wundern.

Autor: wt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine ADC steht wie eine Eins. Ich benutze allerdings interne Ref. 
Vcc/1.6

hier ist noch die Init vom ADC Modul

  // Max. ADC Geschwindigkeit 2Msps
  ADCA.PRESCALER = 0b00000010 & ADC_PRESCALER_gm;

  // Setze ch0 Mode auf SINGLE_ENDED
  ADCA.CH0.CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc;

  // CH0 MUX -> ADC1
  ADCA.CH0.MUXCTRL = (1 << ADC_CH_MUXPOS_bp);

  // Reference interne Vcc/1.6V
  ADCA.REFCTRL |= (0x01 << ADC_REFSEL_bp);

  // Enable ADC Module
  ADCA.CTRLA = ADC_ENABLE_bm;

gruß

Autor: XMEGA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,


G*sti Garsti schrieb:
> beim XMega ADC über gar nichts mehr wundern

kein Punkt trifft hier zu! +- 2LSB hat jeder gängige ADC.
Die heutigen Versionen funktionieren astrein. Die beschriebenen Fehler 
sind leicht zu kompensieren.


Meistens ist der Fehler im schlechten Aufbau zu finden. Steckbrett oder 
ähnliches funktionieren zu 75% nicht.

Also keine Panikmache.


Gruß XMEGA

Autor: Avr Noob (balze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
XMEGA schrieb:
> Die heutigen Versionen funktionieren astrein.

Da wuerde ich gerne zustimmen, kann ich aber leider nicht.
Aber vielleicht kannst Du mir sagen was ich falsch mache.
Beitrag "Atmel Xmega synchrone ADCs / Quantisierungs + Schwingungs Problem"


Bei der Wahl der externen Referenz muss diese natuerlich auch in 
entsprechend guter Qualitaet (und am richtigen) Eingang zur Verfuefung 
stehen.
Ist die exteren Referenz schlecht, ist das Messergebnis auch schlecht.
Ich habe aber wie im oben stehenden link auch genug Probleme mit den 
ADCs der XMega. (Und zwar Probleme, die nicht im Errata stehen. Rev.H)

Mfg;

Balze

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.