mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F0 - PWM Timer1 und 3 snychronisieren


Autor: soundmachine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

wie der Betreff schon sagt habe ich momentan 7 PWM Kanäle an Ausgängen 
des Cortex M0 am laufen. 4 Kanäle werden durch den Timer 1, weitere 3 
Kanäle durch den Timer 3 realisiert. Im Setup benutze ich die gleiche 
Parametrierung für beide Timer, allerdings musste ich feststellen, dass 
das PWM Signal des Timer 1 um ca. 20% voreilend ist.
Das kann ich aber so garnicht gebrauchen. Hat jemand hier Erfahrung wie 
ich ggf. die beiden Timer/PWM Gruppen synchronisieren kann?

Bin für jede Ernst gemeinte Antwort mehr als dankbar.

: Bearbeitet durch Moderator
Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein „Cortex M0“ hat als solche keine Timer (außer SysTick).

Du solltest also wohl schon dazu schreiben, um welchen Controller es
sich handelt.

Autor: soundmachine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STM32F0

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soundmachine schrieb:
> STM32F0

OK, ich habe das Subject im Eingangsposting mal modifiziert.  Vielleicht
findest du ja so eher Leute, die sich damit auskennen.

Autor: soundmachine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg...
danke vielmals. Bin, was den STM betrifft noch eher ein Anfänger, von 
daher auch die falsche Ausrucksweise. Vielleicht findet sich so ja 
jemand der das Problem schonmal hatte und mir weiter helfen kann.

Nochmals Danke

Autor: soundmachine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe mitlerweile die Lösung gefunden.

Evtl. ist es ja nützlich für jemand anderes.

Die beiden PWM Timer liefen bei mir deshalb "unsynchron" weil die Timer 
zu unterschiedlichen Zeiten aktiviert wurden.

Die Zeilen
TIM_CtrlPWMOutputs(TIM1, ENABLE);
und
TIM_CtrlPWMOutputs(TIM3, ENABLE);
sind ca. 30 Zeilen auseinander.

Auf gleiches Level gebracht laufen beide PWM Kanäle einwandfrei 
Taktsynchron.

Autor: Nico W. (nico_w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
100%ig werden die so auch nicht synchron laufen. Beim F4 kann man den 
advance Timer so einstellen, dass er als Taktgeber für andere Timer 
fungiert. Dadurch könnte man die synchronsieren.

Autor: Christopher Johnson (christopher_j23)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nico W. schrieb:
> 100%ig werden die so auch nicht synchron laufen. Beim F4 kann man den
> advance Timer so einstellen, dass er als Taktgeber für andere Timer
> fungiert. Dadurch könnte man die synchronsieren.

Meines Wissens nach geht das auch mit dem F0, ich habe es allerdings 
selber noch nicht ausprobiert. Im RefMan des F030/F070 gibt es 
jedenfalls ein Beispiel wo genau das gemacht wird. Genauer gesagt dient 
der eine Timer da nicht als Taktgeber sondern als Trigger um den anderen 
zu starten:
"Using one timer to start another timer" (RM0360 S.334), siehe 
Screenshot.

100% synchron sind sie da zwar auch nicht, weil der eine Timer ja 
startet und es dann ein paar Takte braucht bis der zweite den Trigger 
verarbeitet hat. Eventuell kann man einen dritten Timer (TIM15) nehmen 
und den als Master Trigger verwenden, wobei Timer 1 und Timer 3 dann 
beide als Slave laufen. Dann sollte es theoretisch 100% genau passen, 
aber was sind schon 100% ;)

Wenn es auch in Software klappt ist ja sowieso alles gut.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.