AD-Wandler im xMega32A4 macht Probleme

Gast #1804657
Lesenswert?

Hallo,
Ich verwende auf meinem Board einen Atxmega32A4 und u.A. den AD-Wandler, 
der mir ein paar Probleme bereitet.
Und zwar zeigt dieser mir zuviel an. Wenn ich den AD-Pin auf GND lege, 
gibt er mir noch immer über 500 Counts aus.

Hier meine Initialisierung und mein Aufruf:
1
/***********************************
2
**      AD-Wandler einstellen     **
3
************************************/
4
void adcInit()
5
{
6
    ADCA.CTRLA = 0x01;      //ADC enable
7
    ADCA.CTRLB = 0x00;      //unsigned mode,8Bit, Free Running Mode
8
    ADCA.REFCTRL = 0x20;    //Externe Referenz von PORTA
9
    ADCA.PRESCALER = 0x00;  // Vorteiler auf 4
10
}
11

12

13
/*********************************
14
**  AD-Werte auslesen       **
15
**********************************/
16
uint16_t getAdValue(uint8_t adChannel)
17
{
18
    uint16_t tmp=0;
19
  
20

21
    ADCA.CH0.MUXCTRL = 0x00;
22
    ADCA.CH0.MUXCTRL = adChannel<<3;
23

24
    ADCA.CH0.CTRL = 0x81;
25
    _delay_ms(5);
26
    tmp = (uint16_t)((float)ADCA_CH0RES/4);
27
    
28
    return tmp;
29
}
Am AREF-Pin (A0) habe ich 3,3V (mit C nach GND) angeschlossen. AVCC ist 
mit 100nF an GND.
Mache ich was falsch?

Vielen Dank!! lg

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