Forum: Mikrocontroller und Digitale Elektronik Xmega ADC 4 Kanäle gleichzeitig


von Tuffi (Gast)


Lesenswert?

Hallo!

Ich nutze einen Xmega256A3 und möchte gerne 4 ADC Channels möglichst 
zeitgleich samplen. Also nicht erst Kanal 1, wenn fertig dann Kanal 2 
usw.
Ich habe dazu ADCA.Ch0-3 entsprechend eingestellt. Allerdings bin ich 
jetzt nur an dem Stand, dass ich dennoch nachdem ein Kanal fertig ist, 
das Interrupbit lösche und dann neu starte. Ich nutze keine Interrupts, 
aber wie ich das verstanden habe muss ich das INTFLAGS selber löschen, 
oder?
Kann man gleichzeitig samplen? Wie wird das eingestellt?

von Schnuffi (Gast)


Lesenswert?

Tuffi schrieb:

> Ich nutze einen Xmega256A3 und möchte gerne 4 ADC Channels möglichst
> zeitgleich samplen. Also nicht erst Kanal 1, wenn fertig dann Kanal 2
> usw.

Xmega256A3:
Two Eight-channel, 12-bit, 2 Msps Analog to Digital Converters

von Thomas F. (igel)


Lesenswert?

Wie schnell ist "möglichst gleichzeitig"?

http://ww1.microchip.com/downloads/en/DeviceDoc/doc8077.pdf

Up to two million samples per second
Two inputs can be sampled simultaneously using ADC and 1x gain stage
Four inputs can be sampled within 1.5μs
Down to 2.5μs conversion time with 8-bit resolution
Down to 3.5μs conversion time with 12-bit resolution

Kapitel 25.15 erklärt das ganze doch.

von Peter D. (peda)


Lesenswert?

Gleichzeitig ist in der Praxis unmöglich.
Der Profi erzählt kein Wischiwaschi, sondern spezifiziert ganz genau, 
welche Anforderungen er hat. Also in welcher maximalen Zeit und mit 
welcher Auflösung müssen die 4 Wandlungen erfolgen?

von Hugo H. (hugohurtig1)


Lesenswert?

Peter D. schrieb:
> Der Profi erzählt kein Wischiwaschi, sondern spezifiziert ganz genau,
> welche Anforderungen er hat. Also in welcher maximalen Zeit und mit
> welcher Auflösung müssen die 4 Wandlungen erfolgen?

von Tuffi (Gast)16.03.2021 04:11

Noch Fragen?

von Tuffi (Gast)


Lesenswert?

Thomas F. schrieb:
> Wie schnell ist "möglichst gleichzeitig"?
>
> http://ww1.microchip.com/downloads/en/DeviceDoc/doc8077.pdf
>
> Up to two million samples per second
> Two inputs can be sampled simultaneously using ADC and 1x gain stage
> Four inputs can be sampled within 1.5μs
> Down to 2.5μs conversion time with 8-bit resolution
> Down to 3.5μs conversion time with 12-bit resolution
>
> Kapitel 25.15 erklärt das ganze doch.

Das habe ich gesehen, aber nicht ganz verstanden. Gibt es da ein 
Konfi-Beispiel? Mir geht es darum, ich mache bei einem Kanal eine 
Stromüberwachung, die muss sehr empfindlich sein, daher muss die die 
ganze Zeit laufen. Die anderen 3 Kanäle können sich abwechseln das ist 
nicht so schlimm.

von Falk B. (falk)


Lesenswert?

Tuffi schrieb:
> Das habe ich gesehen, aber nicht ganz verstanden. Gibt es da ein
> Konfi-Beispiel? Mir geht es darum, ich mache bei einem Kanal eine
> Stromüberwachung, die muss sehr empfindlich sein, daher muss die die
> ganze Zeit laufen. Die anderen 3 Kanäle können sich abwechseln das ist
> nicht so schlimm.

Das ist schon mal was GANZ anderes! Also nimmst du einen ADC für dein 
Stromsignal und den 2. ADC im Multiplexbetrieb für die 3 anderen 
Signale.

von Tuffi (Gast)


Lesenswert?

Falk B. schrieb:
> Tuffi schrieb:
>> Das habe ich gesehen, aber nicht ganz verstanden. Gibt es da ein
>> Konfi-Beispiel? Mir geht es darum, ich mache bei einem Kanal eine
>> Stromüberwachung, die muss sehr empfindlich sein, daher muss die die
>> ganze Zeit laufen. Die anderen 3 Kanäle können sich abwechseln das ist
>> nicht so schlimm.
>
> Das ist schon mal was GANZ anderes! Also nimmst du einen ADC für dein
> Stromsignal und den 2. ADC im Multiplexbetrieb für die 3 anderen
> Signale.

Ich verstehe nicht, wo da steht das ich 2 ADCs habe?! Ich sehe nur EINEN 
ADC. Alle Signale sind an PortA.

von Georg (Gast)


Lesenswert?

Peter D. schrieb:
> Gleichzeitig ist in der Praxis unmöglich.

So unbedingt kann man das nicht sagen - man kann z.B. 4 
Sample&Hold-Schaltungen mit dem gleichen Triggersignal schalten, das ist 
dann so gleichzeitig wie der Jitter der Hardware. Vermutlich wird der TO 
ja nicht Nanosekunden oder Picosekunden fordern. Aber was weiss man 
schon.

Natürlich, wenn man es ganz genau nimmt scheitert Gleichzeitigkeit schon 
an Einstein und der Lichtgeschwindigkeit, aber das ist relativistische 
Klugscheisserei.

Georg

von Falk B. (falk)


Lesenswert?

Tuffi schrieb:
>> Das ist schon mal was GANZ anderes! Also nimmst du einen ADC für dein
>> Stromsignal und den 2. ADC im Multiplexbetrieb für die 3 anderen
>> Signale.
>
> Ich verstehe nicht, wo da steht das ich 2 ADCs habe?!

Stimmt, das war Tuffi, welcher das Datenblatt zitierte.

> Ich sehe nur EINEN
> ADC. Alle Signale sind an PortA.

Na dann ist doch alles KLAR! Du musst, wie der Rest der Welt, mit einem 
ADC die 4 Signale im Multiplex einlesen. Man kann da sicher deinem 
Stromsignal mehr Vorrang einräumen, indem man die Sequenz z.B. so macht

ADC0 (Strom, wichtig)
ADC1
ADC0
ADC2
ADC0
ADC3

D.h. Kanal 0 läuft mit f/2, die anderen mit f/8 Abtastrate.

Mehr ist bei diesen Randbedingungen nicht drin.

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Tuffi schrieb:

> Ich verstehe nicht, wo da steht das ich 2 ADCs habe?! Ich sehe nur EINEN
> ADC. Alle Signale sind an PortA.

Vielleicht solltest Du nicht davon ausgehen, dass die ADCs der ATxmegas 
identisch mit denen der ATmegas sind. Es gibt keine starre Zuordnung 
zwischen Port und ADC. Du musst dem ADC die für jeden der 4 ADC-Kanäle 
verwendeten Portpins über den Kanal-Multiplexer zuordnen.

Vielleicht wäre ein Blick in die Application Note hilfreich:
http://ww1.microchip.com/downloads/en/AppNotes/00002535A.pdf

Und der nächste Blick dann in den zugehörigen Header der avr-libc:

avr/include/avr/iox256a3.h:
> #define ADCA    (*(ADC_t *) 0x0200)  /* Analog to Digital Converter A */
> #define ADCB    (*(ADC_t *) 0x0240)  /* Analog to Digital Converter B */


Grüßle
Volker

von Tuffi (Gast)


Lesenswert?

Was mich interessiert war eher folgendes: Die Hardware ist fertig, alle 
ADC sind an PortA. Da kann ich nichts ändern.

1. Kann ich dennoch ADCB nutzen (ggf. über PORTMUX?)
2. Wenn 1. nicht, die Sache mit dem Gain 1x ist interessant, wie ist das 
zu konfigurieren? Frage ich dort ganz normal das INTFLAG ab?

von MWS (Gast)


Lesenswert?

Tuffi schrieb:
> Die Hardware ist fertig, alle ADC sind an PortA

Wenn Du auf Seite 61 schaust:
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8386-8-and-16-bit-AVR-Microcontroller-ATxmega64A3U-128A3U-192A3U-256A3U_datasheet.pdf

dann siehst Du, dass ADCA-Inputs wohl in PortB rein reichen, ADCB aber 
nicht Iin PortA. Mit PortA und ADCB geht also nix.

von Framulestigo (Gast)


Lesenswert?

Der ADC der XMega A-Serie hat doch vier Kanäle.
Wenn Du in ADC0.CTRLA die entsprechenden Start-Bits setzt, nudelt der 
die Kanäle jeweils um einen ADC-Takt versetzt durch die einzelnen 
Konvertierungsstufen.
Den Interrupt braucht man dann nur noch vom letzten Kanal.

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.