Forum: Mikrocontroller und Digitale Elektronik how to synchronize adc to the middle of pwm Signal


von Dario S. (soseg)


Lesenswert?

kann mir jemand g´helfen wie man Syncronisiert auf STM32cubeIDE?
ich habe separat PWM und ADC aufgebaut und jetzt will ich das ADC in 
mitte von PWM Signal reafiert oder anfängt (ka wie das richtig heisst).

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Einfach mal die Dokumentation lesen…

von Dario S. (soseg)


Lesenswert?

welches dokument

von STK500-Besitzer (Gast)


Lesenswert?

Dario S. schrieb:
> welches dokument

Reference Manual des Controllers

von foobar (Gast)


Lesenswert?

Zu dem Zeitpunkt, wo du erkennst, wo die Mitte ist, ist sie schon längst 
vorbei.  Seltsame Anforderung ...

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

foobar schrieb:
> Zu dem Zeitpunkt, wo du erkennst, wo die Mitte ist, ist sie schon längst
> vorbei.  Seltsame Anforderung ...

Es ist überhaupt nicht seltsam, ADC-Messungen mit einer PWM 
synchronisieren zu wollen. Und gerade die STM32 besitzen ja Timerblöcke 
mit mehreren Ausgängen, durch die sich sehr einfach mehrphasige Signale 
erzeugen und auch als interne Triggerquellen für andere Funktionsblöcke 
verwenden lassen.

von Falk B. (falk)


Lesenswert?

Dario S. schrieb:
> kann mir jemand g´helfen wie man Syncronisiert auf STM32cubeIDE?
> ich habe separat PWM und ADC aufgebaut und jetzt will ich das ADC in
> mitte von PWM Signal reafiert oder anfängt (ka wie das richtig heisst).

Die Messung starten oder auslösen, neudeutsch triggern.
Wie es beim STM32 exakt funktioniert, weiß ich nicht. Aber beim 
PICCOLO von TI nutzt man dazu 1. den dual slope mode (up/down) des 
Zählers und 2. kann man damit exakt in der Mitte der PWM von dieser 
einen Interrupt auslösen, welche den ADC-Meßvorgang startet. Das geht 
auch ohne CPU, also nicht per Interrupt sondern per 
Hardware-Startsignal, manchmal nennt man das Event.

von foobar (Gast)


Lesenswert?

> Es ist überhaupt nicht seltsam, ADC-Messungen mit einer PWM
> synchronisieren zu wollen.

Mein Mißverständnis war, dass ich von einem externen PWM-Signal ausging. 
Der TO generiert es wohl selbst und dann ist die Mitte ja bekannt.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

foobar schrieb:
> Mein Mißverständnis war, dass ich von einem externen PWM-Signal ausging.
> Der TO generiert es wohl selbst und dann ist die Mitte ja bekannt.

Selbst bei einem externen Signal ließe sich ggf. rückwirkend die Mitte 
bestimmen. Beim TETRA-Funkstandard befindet sich die Trainingssequenz 
eines Frames auch nicht am Anfang ("preamble"), sondern in dessen Mitte 
("midamble"). Dort wird also auch erst munter empfangen, was das Zeug 
hält, und erst anschließend bewertet, ob überhaupt Nutzdaten enthalten 
waren.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Falk B. schrieb:
> Wie es beim STM32 exakt funktioniert, weiß ich nicht.

Darum: Reference Manual für die Chipfamilie und dann durchlesen wie die 
Timer funktionieren, den richtigen Timer auswählen, der als Trigger für 
den ADC dienen kann und los gehts.

Die (Advanced) Timer der STM32 übertreffen in ihrer Komplexität manchen 
8 Bit Microcontroller.

von foobar (Gast)


Lesenswert?

Andreas schrieb:
> Selbst bei einem externen Signal ließe sich ggf. rückwirkend die Mitte
> bestimmen.

Dann müsste der ADC aber ständig mitlaufen - das "Triggern in der Mitte" 
erledigt sich damit.

> Beim TETRA-Funkstandard befindet sich die Trainingssequenz eines Frames
> auch nicht am Anfang ("preamble"), sondern in dessen Mitte ("midamble").

Was es nicht alles gibt.  Ich vermute mal, um bei gegebener Takttoleranz 
die Framegröße verdoppeln zu können.  Müsste dann nicht auch noch 
ordentlich oversampled werden um Phasenkorrekturen nachträglich 
durchführen zu können?  Nun ja, ist mit der heutigen Technik wohl 
praktikabel ...

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

foobar schrieb:
> Dann müsste der ADC aber ständig mitlaufen - das "Triggern in der Mitte"
> erledigt sich damit.

So macht es heutzutage jedes gebräuchliche Digitaloszilloskop. Die 
Zeiten analoger Laufzeitleitungen für den Blick in die Vergangenheit 
sind lange vorbei.

> Was es nicht alles gibt.  Ich vermute mal, um bei gegebener Takttoleranz
> die Framegröße verdoppeln zu können.

Der Hauptgrund für diese Entscheidung bestand damals darin, dass bei 
vielen anderen Funkverfahren, insbesondere solchen mit Frequenzsprüngen, 
eine Präambelhäufig recht unsauber ist. Teilweise ist auch die 
Sendeleistung noch nicht ganz hochgefahren. Wenn die Präambel nun also 
Zeit- und Phasenreferenz für den Rest des Datenpakets dient ist, dies 
eher nachteilig. Diese kann durch die Midambel vermieden werden.

>  Müsste dann nicht auch noch
> ordentlich oversampled werden um Phasenkorrekturen nachträglich
> durchführen zu können?  Nun ja, ist mit der heutigen Technik wohl
> praktikabel ...

Vermutlich ist das so. Ich habe leider keinen Schaltplan eines 
TETRA-Funkgeräts zur Hand.

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.