Frequenzmessung mit Spikes?

Gast #557331
Lesenswert?
• ▲
▼
Hallo

ich möchte die Frequenz eines rechteckiges Signal, das von einer 
Maschine kommt. Die Frequenz dieses Signals wird die 200 Hz nicht 
überschreiten, der High-Pegel beträgt etwa 2,5V bis 3V und der Low-Pegel 
0V. Zur Erfassung dieses Signals kommt "leider nur" ein Komparator in 
Einsatz (Trigger-Level = 1V)

Ich verwende für die Messung der Frequenz einen XC164CS von Infineon. 
Der Ausgang des Komparators (High = 5V und Low= 0V) geht zu einem Pin, 
das ein schnelles externes Interrupt hat. Die Software zählt nur die 
positiven Flanke in einer Sekunde, das ist nämlich die Frequenz des 
Signal (das funktioniert, mit Funktionsgenerator getestet). Das Problem 
ist jetzt, dass das Signal von der Maschine beim Low-Pegel jede Menge 
Spikes hat, die sehr oft größer sind als 1V, somit messe ich eine 
falsche Frequenz. Messung mit Oszi: ca 5KHz.

Da ich die Hardware nicht ändern kann, habe ich mir gedacht, einen 
Tiefpass in der Software zu implementieren. Vielleicht hat einer von 
euch bereits Erfahrung mit so etwas ähnliches. Was würdet ihr denn 
empfehlen oder wie man am Besten den Tiefpass implementiert.

Ich bedanke mich für jeden Tipp.

Ricardo
#557575
Lesenswert?
• ▲
▼
Im wesentlichen entspricht dein Problem dem Entprellen von Tastern, ich 
würde erst mal danach suchen, da gibt es bereits genug.

Software-Tiefpass, den du wahrscheinlich gar nicht brauchst, wäre so 
etwas wie
Messwert kann hier ein ADC-Wert oder ein Eingangspin (0 oder 1) sein, 
man muss den Wert nur so normieren, dass er noch in den gewählten 
Datentyp passt, 16 Bit würde ich dieser Variablen schon gönnen. Dann 
muss man in Software nur noch einen Komparator mit Hysterese aufbauen. 
Bra
"Faktor" ist dabei
wobei Tau der Zeitkonstanten eines RC-Tiefpasses entspricht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren