Forum: Mikrocontroller und Digitale Elektronik Frequenzzaehler mit STM32


von recently (Gast)


Lesenswert?

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

von pegel (Gast)


Lesenswert?

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.

von m.n. (Gast)


Lesenswert?

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!

von Stefan F. (Gast)


Lesenswert?

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.

von recently (Gast)


Angehängte Dateien:

Lesenswert?

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 ...

von m.n. (Gast)


Lesenswert?

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