Gleichzeitiger Start aller ADCs (STM32H750) nicht synchron!

Gast #7846939
Lesenswert?

Mahlzeit...

Der H750 hat 3 ADCs und diese möchte ich zeitgleich über einen Timer triggern. Scheint auch (soweit) gut zu funktionieren.

Problem: Zwischen ADC1, 2 und 3 liegen etwa 8 µs Versatz. Von ADC1 und ADC3 sommit 16 µs Versatz. Starten also doch nicht gleichzeitig?

Ist das einfach so? Erwarte ich etwa zu viel von dem Chip? Oder hab ich doch was übersehen?

Angehängte Dateien:
Persönliche Seite #7846947
Lesenswert?

Moin,

Das funktioniert. Ich frage mich eher wie misst du deine 8us?

Deine Config sieht auch erstmal gut aus. Du musst bedenken dass der DMA auch etwas Zeit braucht. Auf dem internen Bus ist auch was los. Und die End of conversion Interrupts kommen auch nicht gleichzeitig sondern je nach Prio hinter einander weg. Wann er genau den Sample Kondensator anzieht ist schwer zu sagen.

gruß

Tec

Gast #7846953
Lesenswert?

Die Application note AN3116 beschreibt unter Punkt 2, dass man nur ADC1 und ADC2 in dual mode laufen lassen kann. ADC3 läuft immer unabhängig. Daher habe ich halt alle auf indipendet gestellt und gleichzeitig getriggert.

Für den Test gebe auf alle drei ADCs ein 10kHz Sinus. Schreibe die Daten mit DMA weg und plotte das ganze (siehe Anhang).

Mhhh... vielleicht liegts auch an DMA oder am Ram? Habs mit unterschiedlichen DMAs probiert, Ergebnis war identisch.

Im Netz hab ich nur gelesen, dass ein Delay bekannt sei (nicht offiziell). Allerdings keine Infos darüber, woher dieses Delay kommt.

Angehängte Dateien:
#7846965
Lesenswert?

Gerrit G. schrieb:

dann bitte mal die [code] funktion automatisch begrenzen oder mal ne zeilenzahl nennen, ab wann etwas zu lang ist. ich finde es nicht zu lang. so ist es ja wohl eine sehr schwammige Regel

Erstens und zweitens ist es nicht »code« sondern »c«

Und wenn das Ergebnis sowieso schon aussieht wie ausgekotzte Buchstabensuppe, dann wird's durch mehr Länge nicht besser.

#7846967
Lesenswert?

Gerrit G. schrieb:

so ist es ja wohl eine sehr schwammige Regel

Das ist so oft besprochen worden dass du das mit deiner 10-jährigen Zugehörigkeit zum Forum eigentlich wissen solltest. Ich nehme an dass auch dein Bildschirm nicht so gross ist dass deine Source im Ganzen zu sehen ist. Ausserdem wird die Source ungünstig dargestellt. Muss man das alles erst in Worte fassen?

Unglaublich wie sinnlos hier durch gedankenloses Posting Resourcen verschwendet und heisse Luft (Leerzeilen) produziert wird.

Gast #7846975
Lesenswert?

Wastl schrieb:

Gerrit G. schrieb:

Daher habe ich halt alle auf indipendet gestellt

Nein! Sondern:

Du hast halt alle auf "independent" gestellt.

ok, es reicht... dieses forum verkommt so langsam.

spart euch jede weitere antwort. ich muss hier mittlerweile nämlich durch ziemlich viele nutzlose kommentare scrollen. da komm ich leider nicht mehr mit...

Persönliche Seite #7847037
Lesenswert?

Gerrit G. schrieb:

Die Application note AN3116 beschreibt unter Punkt 2, dass man nur ADC1 und ADC2 in dual mode laufen lassen kann. ADC3 läuft immer unabhängig. Daher habe ich halt alle auf indipendet gestellt und gleichzeitig getriggert.

Für den Test gebe auf alle drei ADCs ein 10kHz Sinus. Schreibe die Daten mit DMA weg und plotte das ganze (siehe Anhang).

Mhhh... vielleicht liegts auch an DMA oder am Ram? Habs mit unterschiedlichen DMAs probiert, Ergebnis war identisch.

Im Netz hab ich nur gelesen, dass ein Delay bekannt sei (nicht offiziell). Allerdings keine Infos darüber, woher dieses Delay kommt.

Benutze mal bitte die injected conversion ohne DMA und Plotte das. An deiner Methodik sehe ich jetzt keinen Fehler ich habe hier aber einen f730 der das problemlos kann ohne für mich messbaren Versatz und 8us sind für mich da ein riesiger Versatz alles über 1us würde bei meiner Anwendung sofort auffallen.

#7847120
Lesenswert?

Gerrit G. schrieb:

Für den Test gebe auf alle drei ADCs ein 10kHz Sinus. Schreibe die Daten mit DMA weg und plotte das ganze (siehe Anhang).

Der (interpolierende) Plot nützt nicht so wirklich viel. Interessant ist die Lage der einzelnen Abtastpunkte. Ob die Daten verzögert ankommen, sollte doch bei vernünftiger Pufferung nicht die große Rolle spielen. Entscheidend ist, wann abgetastet wurde, d.h. liegen die Abtastpunkte der drei Kanäle im steilen Teil des Signals auf gleicher Höhe oder sind sie gestaffelt.

Bevor diese Frage nicht beantwortet ist, lohnt es nicht, im Code rumzustochern.

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