Referenzspannung pricht ein ATxmega128A1

Gast #2587655
Hallo zusammen,

habe ein Problem mit einer externen Referenzspannung an einem 
ATxmega128A1 für den ADC. Ich lege über einen Spannungsteiler eine 
Referenzspannung von 2.5V an VREF+ und Ground an VREF-. Leider bricht 
mir die Spannung immer ein auf ca 100mV am VREF+. Den Querstrom habe ich 
von 3 bis 10 mA varriert aber keine Veränderung. VCC ist 3.3V. Hätte 
einer mal eine Idee worna das liegen könnte?
Mein code ist meiner Meinung nach richtig
1
.
2
.
3
// ADCA is enabled
4
// Resolution: 12 Bits
5
// Load the calibration value for 12 Bit resolution
6
// from the signature row
7
ADCA.CALL=read_calibration_byte(PROD_SIGNATURES_START+ADCACAL0_offset);
8
ADCA.CALH=read_calibration_byte(PROD_SIGNATURES_START+ADCACAL1_offset);
9

10
// Free Running mode: Off
11
// Conversion mode: Signed
12
ADCA.CTRLB=(ADCA.CTRLB & (~(ADC_CONMODE_bm | ADC_FREERUN_bm | ADC_RESOLUTION_gm))) |
13
    ADC_CONMODE_bm | ADC_RESOLUTION_12BIT_gc;
14

15
// Clock frequency: 62,500 kHz
16
ADCA.PRESCALER=(ADCA.PRESCALER & (~ADC_PRESCALER_gm)) | ADC_PRESCALER_DIV512_gc;
17

18
// Reference: AREF pin on PORTA
19
// Temperature reference: On
20
ADCA.REFCTRL=(ADCA.REFCTRL & ((~(ADC_REFSEL_gm | ADC_TEMPREF_bm)) | ADC_BANDGAP_bm)) |
21
    ADC_REFSEL_AREFA_gc | ADC_TEMPREF_bm;
22

23
// Read and save the ADC offset using channel 0
24
ADCA.CH0.CTRL=(ADCA.CH0.CTRL & (~(ADC_CH_START_bm | ADC_CH_GAINFAC_gm | ADC_CH_INPUTMODE_gm))) |
25
    ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_DIFF_gc;
26
ADCA.CH0.MUXCTRL=(ADCA.CH0.MUXCTRL & (~(ADC_CH_MUXPOS_gm | ADC_CH_MUXNEG_gm))) |
27
    ADC_CH_MUXPOS_PIN0_gc | ADC_CH_MUXNEG_PIN0_gc;
28
// Enable the ADC in order to read the offset
29
ADCA.CTRLA|=ADC_ENABLE_bm;
30
// Insert a delay to allow the ADC common mode voltage to stabilize
31
delay_us(2);
32
// Perform several offset measurements and store the mean value
33
.
34
.
35
.
(Firma: matzetronics)
Ralf2007 schrieb:
> // Temperature reference: On
> ADCA.REFCTRL=(ADCA.REFCTRL & ((~(ADC_REFSEL_gm | ADC_TEMPREF_bm)) | 
ADC_BANDGAP_bm)) |
>     ADC_REFSEL_AREFA_gc | ADC_TEMPREF_bm;

Da ist was doppelt gemoppelt. Probier mal ganz simpel:
1
ADCA.REFCTRL=(ADC_REFSEL_AREFA_gc | ADC_TEMPREF_bm | ADC_BANDGAP_bm)
Ich drück dir die Daumen, das der AREFA Eingang noch heil ist. 2uS sind 
übrigens verdammt kurz. Gib ihm besser ein paar mS.
(Firma: matzetronics)
Mal ne dumme Frage: AVCC hast du aber angeschlossen und da steht auch 
ungefähr VCC dran? Pin 4 und Pin 94 sollten beide verdrahtet sein!
Als nächstes schalte doch mal auf eine der 1,0 Volt oder VCC/1,6 
Optionen um und schau, ob der ADC dann spielt.

Ausserdem solltest du an AREF+ auch einen Siebkondensator 
anschliessen,so um die 100n - 4u7.
Gast
Das wurde nur provisorisch aufgebaut um den Code zu testen. ADC mit 
einer internen Referenzspannung funktioniert. Die Frage ist wieso mir 
die externe Referenzspannung einbricht?!
Gast
>Die Frage ist wieso mir
>die externe Referenzspannung einbricht?!

Vieleicht schaltet irgend jemand den Pin auf Digital IO und Ausgang?
Keine Ahnung ob das bei den ATxmegas geht, interessiert mich auch
nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.