Forum: Mikrocontroller und Digitale Elektronik STM32 Timer Output Triggern wenn Frequenz hoch genug?


von Bert S. (kautschuck)


Lesenswert?

Hi,

Ich möchte gerne auf einem STM32F4 einen Timer als Frequenzmesser 
nehmen, der ab einer Threshold der Eingangsfrequenz CPU unabhängig einen 
Ausgang auf High schaltet. Geht das überhaupt?

Ich dachte da irgendwie an Input Capture zur Bestimmung der Frequenz, 
doch kann ich da irgendwie einen anderen Timer/GPIO triggern, wenn die 
Eingangsfrequenz eine Threshold übersteigt?

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Das hängt von der Frequenz ab (Hz, kHz, MHz) und wie schnell das 
Ergebnis vorliegen soll.

von Uwe Bonnes (Gast)


Lesenswert?

Setze den Timer periodisch zurueck. Setze den Compare value auf den 
Wert, den Du als zu hoch fuer die Periode erachtet. Mit dem Compare 
Interrupt kannst Du dann Deinen Ausgang schalten oder direkt den 
Compareevent den Ausgang schalten lassen.

von Bert S. (kautschuck)


Lesenswert?

Peter D. schrieb:
> Das hängt von der Frequenz ab (Hz, kHz, MHz) und wie schnell das
> Ergebnis vorliegen soll.

Im 100-200kHz Bereich.

Uwe Bonnes schrieb:
> Setze den Timer periodisch zurueck. Setze den Compare value auf den
> Wert, den Du als zu hoch fuer die Periode erachtet. Mit dem Compare
> Interrupt kannst Du dann Deinen Ausgang schalten oder direkt den
> Compareevent den Ausgang schalten lassen.

Das Triggern des Ausgangs soll ohne CPU Interaktion möglich sein. Also 
das Zurücksetzen des Compare Values scheint schon einmal ein guter Start 
zu sein. Kann ein STM32 Timer einen GPIO triggern, ohne dass die CPU 
eingreifen muss? Ich weiss z.B von den TI C2000 uC, dass diese genau 
solche Möglichkeiten haben, jedoch bei den STM32 habe ich das noch nie 
versucht.

von Bauform B. (bauformb)


Lesenswert?

Bert S. schrieb:
> Kann ein STM32 Timer einen GPIO triggern, ohne dass die CPU eingreifen
> muss?

Ein Timer kann einen DMA Transfer triggern und per DMA memory-to-memory 
kann man beliebige Register beschreiben, hier z.B. BSRR.

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.