Forum: Mikrocontroller und Digitale Elektronik ADC Ergebnis PIC18F26K80


von Jörg Rehlig (Gast)


Lesenswert?

Guten Abend,

ich versuche mich gerade am 12bit A/D-Wandler eines PIC18F26K80, leider 
komme ich mit den Ergebnissen nicht klar.
Liegen die Eingänge auf 0V (=Vrefn) erhalte ich als Ergebnis 
0x7f7e..0x7f7d, liegen die Eingänge auf 3,3V (=Vrefp) erhalte ich als 
Ergebnis 0x0f7a..0x0f7f.

Es ist bekannt (Errata), dass der Wandler +-25LSB Offsetfehler hat, 
daher könnte ich auf Kanal 5 gegen GND messen, aber 0x7f7e bringt mich 
als Nullwert irgendwie ins Schleudern.
Die interne 1,024V Referenz ergibt als ADC-Wert 0x0467, halbwegs 
plausibel.

Wo stehe ich hier auf dem Schlauch bzw. wo könnte ich noch suchen?
1
    ANCON0bits.ANSEL0 = 1;
2
    ANCON0bits.ANSEL1 = 1;
3
    ANCON0bits.ANSEL2 = 1;
4
    ANCON0bits.ANSEL3 = 1;
5
    ADCON2bits.ACQT   = 0b100;    // Taqc = 8*Tad
6
    ADCON2bits.ADCS   = 0b110;    // fosc/64, Tad=1us
7
    ADCON2bits.ADFM   = 1;        // Ergebnis rechtsbündig
8
    ADCON0bits.ADON   = 1;
9
    ADCON0bits.CHS    = 0;         
10
    ADCON0bits.GO     = 1;      
11
12
    // Bisschen sonstiges Programm (UART, digitale Ausgänge, I2C)
13
    while(1)
14
        if (ADCON0bits.GO == 0)
15
        {
16
            i2c_reg_map[0x10 + (ana_chan << 1)] = ADRESH;    
17
            i2c_reg_map[0x11 + (ana_chan << 1)] = ADRESL;
18
            ana_chan++;
19
            if (ana_chan > 3)
20
                ana_chan = 0;
21
            ADCON0bits.GO = 1;  
22
        }
23
    }

von Jörg Rehlig (Gast)


Lesenswert?

Fehler gefunden. Die PLL muß bei INTOSC mit OSCTUNE.PLLEN=1 aktiviert 
werden, #pragma config PLLCFG=ON bewirkt hier nichts. Deshalb lief alles 
mit 16MHz, was bei einem Teiler von 64 zu einer zugroßen Tad führt und 
der Wandler komische Ergebnisse liefert.

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
Noch kein Account? Hier anmelden.