Hallo, ich habe hier ein super-kleines STM Nucleo-Board mit STM32f303k8 auf dem Tisch liegen und würde gerne lernen, wie man unter Verwendung von CubeMX/Keil-Compiler einen Frequenzzaehler hinbekommt. Die Zeitbasis soll extern von einem GPS-Modul im 1s-Takt kommen. Eigentlich fand ich bisher die CubeMx-Welt sehr verständlich. Nun sehe mir in CubeMx die Timer-Abteilung an und verstehe nichts. Ich habe gegoogelt und finde keine Beispiele. Kann mir jemand einen Tipp geben, bitte ? ... Vielen Dank recently
Ich habe, um die Timer zu verstehen, alle möglichen Timer/PWM und sonstige Outputs zur Kontrolle mit dem Oszi angesehen und gemessen. Dann bekommt man schnell einen Überblick was da so passiert. Im nächsten Schritt dann die internen Trigger von einem Timer zum anderen. Wenn du das alles durch hast, sollte genug Verständnis für alle Timer Ein- und Ausgaben vorhanden sein.
Vermutlich willst Du zunächst einmal einen direkten Zähler mit 1 s Torzeit umsetzen? Gut, kann man machen, ist aber nicht mehr zeitgemäß. Als Anregung, wie man mehr aus einem STM32 'herausholen' kann, ein Beispiel für einen reziproken Frequenzzähler, der auch bei niedrigen Frequenzen eine konstant hohe Auflösung (>= 7 Stellen/s) liefert. Hier wird Timer9 bei einem STM32F407 verwendet: Beitrag "reziproker Frequenzzähler mit STM32F4Discovery" Es eignet sich jeder Timer, der zwei Capture-Eingänge bietet. Um das ganze mit einem 1 pps GPS-Signal zu stabilisieren, wird eine weitere Frequenzmessung gemacht und die beiden Ergebnisse miteinander verrechnet. Das nachfolgende Beispiel ist zwar für einen ATmega, aber das Verfahren ist das gleiche: Beitrag "reziproker Frequenzzähler, GPS-stabilisiert, ATmega162" Viel Erfolg!
Ich denke, dass die Doku von Cube HAL nicht genügt, um die Peripherie-Funktionen des STM32 voll zu verstehen. Du solltest auch das Reference Manual und das Errata dazu lesen.
Vielen Dank für die Antworten. Der "reziproke Frequenzzähler" hört sich ja hochinteressant an. Aber soweit bin noch nicht, taste mich langsam heran :-) Es ist ein reines Lernprojekt, ich möchte verstehen, wie das Impulszählen auf dem STM32 funktioniert. Anbei der aktuelle Testaufbau. Mit dem ESP8266 und dem SI5351 kann ich die zu messende Frequenz erzeugen. Das GPS-Modul lierfert den 1-Sekunde-Puls. Jetzt muss ich dass mit CubeMx hinbekommen ...
Zunächst mußt Du Dir einen Timer aussuchen, der ein externes Taktsignal an TIMx_ETR zählen kann. Damit werden die Impulse gezählt. Dann wähle "PWM input mode". Damit kann man mit dem 1 pps Signal den Zählerstand zwischenspeichern und den Zähler auch gleichzeitig löschen. Wie man das mit Cube umsetzt? Keine Ahnung.
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.