mikrocontroller.net

Forum: FPGA, VHDL & Co. Drehzahlmessen in VHDL


Autor: Pat Rik (patrik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich würde gerne mit meinem Spartan 3E Drehzahl einer Achse messen. Die 
Drehzahl bewegt sich zwischen 1000-20000. Ich bekomme von einem 
Schmidt-Trigger 12 Signale pro Umdrehung, der Spartan ist mit 50Mhz 
getaktet. Wenn ich die Taktzyklen zwischen 2 Signalen zähle, dann ist 
die Formel die zu berechnen gilt: 250*10^6/#Taktzyklen. Da aber Teilen 
ziemlich übel ist, wollte ich mal fragen ob es eine einfachere Lösung 
gibt.
danke
patrik

Autor: Panzer H. (panzer1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

zähle doch einfach eine Minute (generierst Du aus dem 50MHz Takt, also 
50.000.000 Takticks) lang die Impulse, die vom Sensor kommen und 
dividiere das Ergebnis durch 12.
Oder zähle 15sek (12.500.000 Taktticks) lang die Sensorpulse und 
dividiere einfach dann durch 4 (einfacher Shift um 2 Stellen).
Oder zähle gleich 3,75sek lang (3.125.000 Taktticks) die Sensorpulse und 
Du musst nicht mehr dividieren.
Je nach Dynamik des Systems kannst die Messdauer auch verkürzen und dann 
multiplizieren...

panzer

Autor: hugo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da aber die Drehzahl der Achse nicht synchron mit der Taktfrequenz des 
FPGA ist, schwankt das Zählerergebnis immer um 1 . Kann man das 
irgendwie vermeiden?

Autor: Tim R. (vref)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das ganze synchron wäre, müsstest du ja die Drehzahl nicht messen, 
oder?
Je länger dein Messzeitraum ist, desto genauer wird der Messwert.
Du musst entscheiden, in welchen Intervallen du mit deinem Drehzahlwert 
etwas anfangen willst (z.B. Motorgeschwindigkeit nachregeln)...
Da dein Motor eh eine gewisse Trägheit haben wird, wird das Schwanken um 
1 kaum eine Rolle spielen.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ hugo (Gast)

>Da aber die Drehzahl der Achse nicht synchron mit der Taktfrequenz des
>FPGA ist, schwankt das Zählerergebnis immer um 1 . Kann man das
>irgendwie vermeiden?

Nein, das ist ein prinzipielles Problem jeder Drehzahlmessung bzw. 
Quantisierung. Spielt aber bei richtiger Wahl der Torzeit keine 
Rolle. Ob du nun 2000,00 oder 2000,01 U/min misst ist doch egal.

MFG
Falk

Autor: Der Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must doch nur ganzzahlige Vielfach von 2t als Torzahlen verwenden.
Die Normierung auf die FPGA-Frequenz erfolgt durch Multilplikation mit 
k/f, was auch wieder sehr einfach ist, wenn die Frequenz ein Pendat zu 
60x60 ist. Das einfachste ist ein Addierer, der mit k x 60 x 60 x 1000 
(auflösung) abgetastet wird.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.