Frequenzzaehler mit STM32

Gast #5564901
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
Gast
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.
Gast
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!
Gast
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.
Gast
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 ...
Angehängte Dateien:
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.