XMEGA128A1, ADC Input Problem

OP #3639747
Lesenswert?
• ▲
▼
Hallo,

ich versuche gerade mit dem oben genannten Controller einen Analogwert 
an POARTA:0 mit dem ADCA zu wandeln. Meine Initialisierung sieht wie 
folgt aus:
1
uint8_t ADCA_Init()
2
{
3
  ADCA.CALL = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCACAL0) );
4
  ADCA.CALH = ReadCalibrationByte( offsetof(NVM_PROD_SIGNATURES_t, ADCACAL1) );
5
  
6
  PORTA.DIRCLR = 0xFF;
7
  ADCA.CTRLA = ADC_ENABLE_bm;
8
  ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc;
9
  ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | ADC_BANDGAP_bm;
10
  ADCA.PRESCALER = ADC_PRESCALER_DIV512_gc;
11
  
12
  ADCA.CH0.CTRL = ADC_CH_GAIN_1X_gc | DC_CH_INPUTMODE_SINGLEENDED_gc;
13
  ADCA.CH0.MUXCTRL = 0x00;
14
  ADCA.CH0.INTCTRL = ADC_CH_INTLVL_LO_gc;
15

16
  return(1);
17
}
18

19
ISR(ADCA_CH0_vect)
20
{
21
  uint8_t tmp;
22
  tmp = ADCA.CH0.RESL;
23
  adc_result = (ADCA.CH0.RESH << 8) | tmp;
24
}

Nun lege ich den PIN auf GND und trotzdem wird etwas ungleich 0 (etwa 
180) angezeigt. Ich habe das Gefühl, dass der Eingang noch auf der 
Temperaturreferenz hängt, denn wenn ich die zuschalte und den Controller 
"beföne", funktioniert das (es ändert sich der Wert etwa um 2000 herum). 
Kann mir bitte jemand sagen, was ich nicht beachtet habe.

Grüße, Alex
OP #3639780
Lesenswert?
• ▲
▼
Hallo Nobby,

danke für die schnelle Antwort. Ich verstehe aber nicht, dass sich etwas 
ändert, wenn ich die Temp-Referenz zuschalte. Wenn der Eingang auf den 
PORT-PIN gemuxt ist, dürfte das ja keine Auswirkung haben. Es passiert 
auch nichts, wenn ich den Spannungswert am PORT-PIN ändere.
OP #3639815
Lesenswert?
• ▲
▼
Ich aktivuiere die Temp-Ref.
1
ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | ADC_BANDGAP_bm | ADC_TEMPREF_bm;

Wie gesagt, es ändert sich auch nichts, wenn ich die PIN-Spannung 
ändere. Ich habe mal versuchsweise den Mux auf PIN1 gelegt und sofort 
4095 erhalten. Das deutet für mich darauf hin, dass nun die Bandgap als 
Eingang zu geschaltet ist. Irgenwie bin ich nicht im SingleEndedMode, 
sondern noch auf intern, habe ich das Gefühl.

Grüße, Alex

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.