Forum: Mikrocontroller und Digitale Elektronik STM32F446 externer Trigger für Timer mag nicht


von Hans-Georg L. (h-g-l)


Lesenswert?

Ich plane gerade eine kleine Spielerei mit dem STM32F446 und seinen 
Timern als Impulsgenerator.

Hab mir ein Nucleo64 Board besorgt und CUbeMX und AC6 installiert.

Zum ersten Test habe ich den Timer2 mit allen 4 Kanälen als PWM und 
Ausgang togglen konfiguriert. Laut CubeMX sollte der Timer mit 180Mhz 
laufen .. tat er aber nicht weil das TIMPRE Bit im RCC_DCKCFGR Register 
nicht gesetzt wurde. Mit Hand gesetzt und den Takt auf 200Mhz 
hochgeschraubt hatte ich dann 4 Rechtecksignale die ich gegeneinander im 
5ns Raster gegeneinander verschieben konnte.

Jetzt wollte ich eine Triggerverzögerung bauen in dem ich einen externen 
Trigger einstellbar verzögern wollte und wieder ausgeben. Aber der 
externe Trigger startet den Timer nicht. Verwendet habe ich den Timer3 
als slave mit Trigger extern. Wenn ich das Enable Bit von Zähler per 
Hand setzte läuft er los. Nachdem ich mir alle Register im Debugger 
angesehen habe ist mir aufgefallen das CubeMX/AC6 den trigger Eingang 
als Ausgang konfiguriert hat.

Leider hat das Umprogrammieren auf Eingang auch nichts gebracht. Alle 
anderen beteiligten Register sind wie sie sollen.

Hat schon mal wer einen Timer mit Trigger zum laufen bekommen ?

von Hans-Georg L. (h-g-l)


Lesenswert?

Ich antworte mir mal selbst ;-)

Man muss man von Hand die Enable Bits der compare register setzen dann 
geht es. HAL_TIM_OC_Start wie beim "normalen" Pwm geht nicht weil es 
auch den Zähler direkt startet und nicht auf den Trigger wartet.

Also weiter zum nächsten Schritt ...

Dem dynamischen umkonfigurieren der compare Register über DMA.

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.