Xmega ADC 4 Kanäle gleichzeitig

Gast #6621913
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?
#6621995
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.
Gast #6622339
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.
#6622366
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.
Gast #6622455
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.
Gast #6622473
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
#6622482
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.
(Firma: L-E-A) #6622548
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
Gast #6622552
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?
Gast #6623300
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren