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?
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
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.
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?
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?
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.
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.
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.
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
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.
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
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.