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 ?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.