Forum: Mikrocontroller und Digitale Elektronik Referenzspannung pricht ein ATxmega128A1


von Ralf2007 (Gast)


Lesenswert?

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
.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Ralf2007 (Gast)


Lesenswert?

Es hilft nichts, hat jemand vielleicht eine andere Idee???

von Ingo (Gast)


Lesenswert?

Ja, Schaltung zeigen...

von Ralf2007 (Gast)


Angehängte Dateien:

Lesenswert?

Schaltplan

von Ralf2007 (Gast)


Lesenswert?

ohh, zwei gleiche Pläne hochgeladen.

von Ralf2007 (Gast)


Lesenswert?

Der ATxmega dürfte aber nicht beschädigt sein

von Bernd (Gast)


Lesenswert?

Da werden nicht 2,5 V, sonden 0,7 V an Vref gelegt.

von Ralf2007 (Gast)


Lesenswert?

Mein Fehler in dem Bild hab ich die Werte vertauscht. Oben soll 700 Ohm 
sein und unten 2700 Ohm.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

Hmm. Wenn ich eine 2.5V Referenzspannung brauche, nehme ich immer einen 
MCP1525. Kostet auch nicht die Welt.

fchk

von Ralf2007 (Gast)


Lesenswert?

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?!

von holger (Gast)


Lesenswert?

>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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ralf2007 schrieb:
> ohh, zwei gleiche Pläne hochgeladen.

Und dann auch noch als riesigen Pixelhaufen im für Zeichnungen nicht
tauglichen JPEG-Format.  Umpf.  → Bildformate

Guck mal, wie klein das als PNG in passender Größe wird.

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.