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?
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
Was ist an obigem Bild eigentlich soo schwer zu verstehen...?
Gerrit G. schrieb: > Oder hab ich > doch was übersehen? Die Lösung ist hier zu finden : https://www.mikrocontroller.net/articles/Netiquette
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.
Vielleicht nur eine Idee. Verwendest du den selben DMA Controller für die drei ADCs? Vielleicht kann er nur eine Kopievorgang machen, dh. für die drei muss er es nacheinander machen. Versuch Mal, für jede ADC einen individuellen DMA Controller zu verwenden.
Michael W. schrieb: > Was ist an obigem Bild eigentlich soo schwer zu verstehen...? 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
Gerrit G. schrieb: > ab wann etwas zu lang ist Wenn man für den Code scrollen muss. Ist aber hier allgemein bekannt. Siehe : https://www.mikrocontroller.net/articles/Netiquette
:
Bearbeitet durch User
Ali K. schrieb: > Versuch Mal, für jede ADC einen individuellen DMA Controller zu > verwenden. hab ich. Hab alles mit einer DMA oder mit zwei DMA (gemischt) probiert. Delay bleibt immer gleich.
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.
:
Bearbeitet durch User
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.
Gerrit G. schrieb: > Daher habe ich halt alle auf indipendet gestellt Nein! Sondern: Du hast halt alle auf "independent" gestellt.
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...
Moin, Gerrit G. schrieb: > Delay bleibt immer gleich. Und? Kannste damit nicht leben? Wenns immer gleich bleibt, wirst du's ja auch kennen, und dann kannste ja deine Daten entsprechend filtern, dass sie danach synchron (genug) sind. Oder nicht? Gruss WK
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.
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.
:
Bearbeitet durch User
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.