Forum: Projekte & Code Frequenz- und Pulsweitenmessung mit STM32F407


von M. N. (Gast)


Angehängte Dateien:

Lesenswert?

Die µCs der Serie STM32F4xx bieten vielseitige und schnelle Timer, die 
sich gut für hochaufgelöste Zeitmessungen eigenen.
Das gezeigte Programm 'f-mess.c' mißt mit Timer8 Frequenzen an Port PC.6 
im Bereich von 0,05 Hz – 500 kHz. Das reziproke Meßverfahren erlaubt bei 
168 MHz Referenzfrequenz eigentlich 8-stellige Ergebnisse bei einer 
Meßrate von 1,7 Messungen/s. Hier werden bei ca. 3 Messungen/s 'nur' 
6-stellige Frequenzwerte angezeigt, um keinen hochstabilen 
Quarzoszillator verwenden zu müssen. Dennoch sollte die Referenzfrequenz 
abgeglichen werden. (im Programm F_CLOCK entsprechend ändern).

Die feine Auflösung des Timer8 von ca. 5,95 ns wird aber genutzt, um die 
genauen Zeiten für die gesamte Periodendauer und den positiven Anteil 
des Eingangssignals zu messen. Dies wird durch jeweils eigene 
capture-Register des Timers per Hardware ermöglicht. Kennt man die 
Periodendauer und den positiven Anteil, lassen sich daraus +Pulsweite, 
-Pulsweite und das Tastverhältnis errechnen: wie bei der Frequenzmessung 
mit 6-stelliger Auflösung.

Das 1. Bild zeigt die Messergebnisse eines 1pps-GPS-Signals.
Fin = 1,00000 Hz stimmt nicht ganz. Die 7. Stelle ist eine '1' und die 
Periodendauer somit 999,999 ms. Daher ergibt sich ein Tastverhältnis von 
0,00011% (1/999999) und für die +Pulsweite 1,095 µs und die –Pulsweite 
999,998 ms.
Die +Pulsweite entspricht 184 Impulsen des Timers.

Bild 2 zeigt ein Signal mit 5,5 kHz und einem Tastverhältnis von
53,6462 %, wie es ein 74HC14 Schmitttrigger mit RC-Beschaltung erzeugt; 
hier auf einer Anzeige 2 x 16.

OhneBild: ein 1 kHz PWM-Signal - erzeugt mit einem ATmega88 - liefert 
ein Tastverhältnis von 50,0003 %, was zum einen die hohe Auflösung 
widerspiegelt aber auch zeigt, wie die Flankensteilheit des Signals 
direkt ins Messergebnis einwirkt.

Das letzte Bild zeigt die Basisbeschaltung des µC mit Anschluß der 
LC-Anzeige. Die Portbelegung ist so gewählt, dass das Programm direkt 
auf einem STM32F407-Discovery-Board laufen kann. Zur Programmentwicklung 
wurde Em::Blocks V2.20 verwendet.

Das Programm 'STM32F4_lcd.c' zeigt die Ansteuerung der Anzeige und kann 
auch für andere Anwendungen nützlich sein. Je nach verwendeter Anzeige, 
kann/muß die Kontrastspannung angepasst werden.

von m.n. (Gast)


Lesenswert?

Obiges Programm ist eine 'abgemagerte Spielerei', von einem anderen 
Programm, welches noch nicht fertig geworden ist.
Wer sich dafür interessiert findet hier weitere Informationen 
http://www.mino-elektronik.de/FM_407/fmeter_407.htm

Und wer die Schaltung kompakt nachbauen möchte, kann auch eine 
unbestückte Leiterplatte bekommen, die sich huckepack aufs Display 
montieren läßt.

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.