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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren