XMega128A4U & ADC

  • 1
  • 2
  • Page 1 of 2
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2084
Registered: 03 / 2003
Subject:

XMega128A4U & ADC

 · 
Posted: 06.04.2020 - 15:26  ·  #1
Hallo Zusammen,

ich verstehs einfach nicht. Was? Nunja folgendes .....
Ich habe einen XMega128A4U an dessen ADCA0 ist über einen Spannungsteiler 27K5:1K50 (Teilerfaktor 19) eine Spannung angeschlossen (1K Vorwiderstand, 1uF gegen GND). ADCref ist intern 1.00V und der AVCC ist über eine Induktivität 10uH an VCC, natürlich mit dem obligatorischen 100nF gegen Masse. Bereits bei knapp über 17.5V erreiche ich aber schon das ADC-Maximum (12 Bit = 4095 max.). Bei genau 17.5V lese ich schon 4010. Eigentlich sollten doch bei 19V 4095 sein. Die Teiler-R sind 0.1%ig.

Wer hat eine Idee dazu? Wie schafft man es außerdem, daß der gelesene ADC-Wert wenigstens einigermaßen stabil ist? Die Versorgungsspannung des XMega wird zuerst über einen Schaltregler auf 5V herab gesetzt (brauch ich an anderer Stelle) und dann über einen Linearregler auf 3.3V. Kondensatoren gibts auf der Platinen mehr als genug (1uF und 100nF).

Gruss
Harry
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 307
Registered: 07 / 2003
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 06.04.2020 - 16:40  ·  #2
Welche Spannung misst du am 1,5k Widerstand?
Bei 19 V und bei 17,5 V.
Wenn dein zu messendes Signal "recht langsam" ist, parallel zum 1,5k einen Kondensator, 10nF - 1µF je nach Anwendung
Bild vom Schaltplan wäre nützlich.
Konfiguration der Referenzspannungsquelle.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2084
Registered: 03 / 2003
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 06.04.2020 - 17:44  ·  #3
Hi Mathias,

ich mess das mal und berichte. Die zu messende Spannung ist seeeeeeeehr langsam, es ist einfach die Betriebsspannung des Moduls. Momentan ein Festspannungsnetzteil mit 11.5V. Als ich die Schwankungen gesehen habe, war es ein Labornetzteil analoger Bauart.
Die Referenzzspannungsquelle hat ein Design? Steht im Compiler auf Ref100, also 1.00V intern des XMega.
Schaltplan? Was ist das? :D Ich layoute immer direkt und zeichne nie Schaltpläne ..... sorry.

Gruss
Harry
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 06.04.2020 - 17:49  ·  #4
Hallo Harry,

so in der Richtung mache ich das auch.
Ich habe einen 5V Schaltregler, für die ganzen Relais usw. und habe dann einen LDO auf 3V3 (siehe Bild 1), bei Bild 2 siehst Du den kompletten Part für den XMEGA C112 liegt direkt hinter dem L6, die Stützkondensatoren (C5, C3, C116, C115, C114) sind nahe an den PowerPins dann gehe ich nochmal über L7 mit C110 und C109 nur für den AVCC. Ab da hängt nichts weiteres mehr an dem FILTERAVCC.


In dem Bild 3 ist einiges für den ESD- und EMV-Schutz vorhanden, das kannst Du mal gedanklich ausblenden. Ich nutze hier die 5V über einen Spannungsteiler an den 3v3 XMEGA.
Streiche hier einfach mal die folgenden Bauteile raus, ZD1, D1, RV9, D16 und D2, ich messe damit keine direkte Spannung, aber vielleicht gibt das eine oder andere einen Denkanstoß.
Ich messe damit einen Widerstand, offene Leitung und Kurzschluss.

Weiterhin verarbeite ich die AD Werte bei mir nicht über den Treiber vom AVRco (geht leider beim XMEGA384C nicht)
Code
...
    // PORTPIN ADC0
     if    adPort = 0  then
       LO(wADCBuffer):= ADCACH0RESL;    // Ziehe Werte
        HI(wADCBuffer):= ADCACH0RESH;
         AddAVfilter(ADC0Filter,integer(wADCBuffer) );
        inc(xForADC);
         if xForADC >=20 then
            ADCACTRLA.1   := true;  // flush
             inc(adPort);
              ADCACH0MUXCTRL := %00001000; // MUX CTRL MAXPOS ADC1 nächster Port
               xForADC:=0;
               wADC0:= GetAVfilter(ADC0Filter);
         endif;
...


Ich nutze aber die Filterfunktion (AddAVfilter und GetAVfilter) und lese die Eingänge ein paar mal, da die AD-Werte gerade nach dem umschalten nicht immer stabil sind.

Thorsten
You must be logged in or your permissions are to low to see this Attachment(s).
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2084
Registered: 03 / 2003
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 06.04.2020 - 19:34  ·  #5
Hi Thorsten,

was für eine Induktivitat hast du da vor dem AVCC? Ich sehe 10uH, aber welche Bauform und welchen Widerstand hat die? Ich hab hier eine Bauform 0805 drin (vorher immer eine 1210) mit doch ein paar Ohm. Wie ich gelesen habe ist das aber ok, da nur ein sehr kleiner Strom fliesst.

Gruss
Harry

..... achja AVFilter verwende ich natürlich auch. Vielleicht könnte ja Rolf mal dafür sorgen, daß die ADCs aller XMegas (auch ADCB des A4U ;) ) auch mit dem AVRCo-Treiber verwendbar sind :)
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 07.04.2020 - 08:49  ·  #6
Ich glaube, Internal 1V Reference ist ohne calibration unbrauchbar.
Nehme AVCC/1.6, AVCC/2 oder external reference

Ich bekomme gute Werte wie folgt
Code

Define
    ADCrefB        = REFintVCC; // AVCC/1.6
    ADCprescB      = 512;
    ADCchansB      = [0..7];

Implementation
    adcValue := getAdcB(1) - 190; // compensate for fix Offset


Meine AVCC ist sogar ungefiltert
Gruß
You must be logged in or your permissions are to low to see this Attachment(s).
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2084
Registered: 03 / 2003
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 07.04.2020 - 11:27  ·  #7
Hallo Thomas,

ok das erklärt, wieso das so daneben liegt. Beim A3U hatte ich das aber nie, oder eine gute Serie erwischt.

Harry
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: XMega128A4U & ADC

 · 
Posted: 07.04.2020 - 16:05  ·  #8
Quote by Harry

...
was für eine Induktivitat hast du da vor dem AVCC? Ich sehe 10uH, aber welche Bauform und welchen Widerstand hat die? Ich hab hier eine Bauform 0805 drin (vorher immer eine 1210) mit doch ein paar Ohm. Wie ich gelesen habe ist das aber ok, da nur ein sehr kleiner Strom fliesst.
...


Hallo Harry,

nein, das 10µ ist von dem Kondensator zur Energieversorgung ;-)

Ich nutze ein SMD Ferrit in 0805, Würth Elektronik # 742792092, wenn die Spannung sauber ist, hat dieser so gut wie keinen Widerstand (siehe Grafik). Bei ca. 3Mhz fängt der eigentliche Widerstand "R"
erst an. Solange es keine Störungen gibt, verhält er sich wie ein 0 R Widerstand. Man will ja mit diesen Ferrit-Perlen HF (Hochfrequenz) entfernen.
You must be logged in or your permissions are to low to see this Attachment(s).
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   137   151 · Page-Gen-Time: 0.030184s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI