closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

XMega128A4U & ADC



Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: XMega128A4U & ADC  -  Posted: 06.04.2020 - 15:26   -  
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
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Mathias offline
Benutzer
Avatar
Gender: n/a
Location: n/a  Stutensee
Age:
Posts: 254
Registered: 07 / 2003
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 06.04.2020 - 16:40   -  
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.
This post has been edited 1-times. Last edit: 06.04.2020 - 16:48 by Mathias.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 06.04.2020 - 17:44   -  
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
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 06.04.2020 - 17:49   -  
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).
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 06.04.2020 - 19:34   -  
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 :)
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
This post has been edited 1-times. Last edit: 06.04.2020 - 19:37 by Harry.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 261
Registered: 07 / 2013
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 08:49   -  
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).
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 11:27   -  
Hallo Thomas,

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

Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 16:05   -  
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).
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 17:25   -  
Danke Thorsten. Es ist, nachdem ich an den AVCC nochmal 10uF parallel geschaltet habe, gefühlt stabiler geworden :)

@Thomas: Bei 19.00V Eingangsspannung hab ich nach dem Teiler 0.997V. Ist doch ok.
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 261
Registered: 07 / 2013
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 19:52   -  
Quote

Bei 19.00V Eingangsspannung hab ich nach dem Teiler 0.997V. Ist doch ok.

Ich habe nicht danach gefragt

Quote

Es ist, nachdem ich an den AVCC nochmal 10uF parallel geschaltet habe, gefühlt stabiler geworden


Das kann ich mir gut vorstellen, da 10uH und 100nF eine starke Resonaz bei 160kHz bilden. Hier gehört idealerweise eine Dämpfungsglied dabei. Entweder zusätzlicher Serienwiderstand oder größeren Kondensator mit ca. 1..4 Ohm parasitärem Serienwiderstand parallel, was dann ein Elko entspricht.
Allerdings ist das wegen dem Linearregler nicht so sehr erforderlich. Bei einem Schaltregler wäre es unter Umständen wichtig.

Quote

Solange es keine Störungen gibt, verhält er sich wie ein 0 R Widerstand

Nein, wie eine Spule mit wenigen uF

Gruß
This post has been edited 3-times. Last edit: 07.04.2020 - 20:07 by Thomas.AC.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 20:07   -  
Ich bin immer noch bei der internen 1.00V-Referenz. Ich habe mir eine Lookup-Table erstellt und rechne mit der um.
Das mit der Bandgap-Referenz könntest du mir mal genauer erklären. Ich hab das immer so verstanden, daß die Angabe AVCC/1.6 bzw. AVCC/2 von der Spannung am AVCC abgeleitet wird und somit mit der Versorgungsspannung schwankt, also auch nicht so besonders genau sein kann. Liege ich hier total daneben?

Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 261
Registered: 07 / 2013
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 20:21   -  
Sorry, habe meinen vorherigen Post noch schnell editiert, weil ich etwas falsch gelesen hatte.

Die Internal 1.0V werden von der 1.1V bandgap abgeleitet. Die Toleranz der bandgap ist im Datenblatt nicht angegeben. Du hast somit überhaupt keine Information darüber wieviel Volt die interne 1.0V Referenz in Wirklichkeit hat.
Ohne Kalibrierung nimmst du besser die Spannung von deinem Linearregler als Referenz. Die Genauigkeit sollte im Datenblatt des Linearreglers spezifiziert sein. Wenn du eine Kalibrierung für die interne 1.0V Referenz vornimmst, geht die natürlich auch gut, da die Spannung unabhängig von AVCC stabil bleibt.

Das mit der Lookup-Tabelle habe ich jetzt nicht verstanden. Ist das eine Kalibrierung?
This post has been edited 2-times. Last edit: 07.04.2020 - 21:07 by Thomas.AC.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 261
Registered: 07 / 2013
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 07.04.2020 - 21:05   -  
Noch ein Zusatz
Quote
Eigentlich sollten doch bei 19V 4095 sein

Eher bei 18.1 Volt wegen dem offset. Xmega können geringfügig negative Spannungen messen.
Das ist sogar gut, weil man damit den Offset per Messung herausfinden kann.
This post has been edited 1-times. Last edit: 07.04.2020 - 21:07 by Thomas.AC.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 08.04.2020 - 11:07   -  
Quote by Thomas.AC

...
Das mit der Lookup-Tabelle habe ich jetzt nicht verstanden. Ist das eine Kalibrierung?


Hallo Thomas,

nein das ist wahrscheinlich die Interpolation (LookUp-Table) zum umrechnen, nutze ich selbst für die Umrechnung in Ohm. damit bekommt man auch sehr genaue Werte hin, wenn diese nicht Linear verlaufen. Ist ein Tool von AVRco "Curve Editor"

Code
Const
// Umrechnungstabelle ADC in Ohm
  ADCLookUpInt   : array[1..(42 * 4) + 3] of byte = 'PVS2018_46_INT_R.crvg';
  // 46 point.x point.y of integer, 3bytes info


Code
InterPolY(@ADCLookUpInt, wADC0, wADC0R)


Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 261
Registered: 07 / 2013
Private message
Subject: Re: XMega128A4U & ADC  -  Posted: 10.04.2020 - 17:43   -  
Danke Thorsten für den Hinweis.
@Harry. Wie ist der Stand?
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 01.06.2020 - 03:36