[lokal] Drehzahlmessung in PSoC

Anleitungen zum Nachbauen
Reiner W.
Beiträge: 112
Registriert: Di 7. Apr 2015, 11:43

Drehzahlmessung in PSoC

Beitragvon Reiner W. » So 19. Jul 2015, 19:07

Die Spindel meiner Fräse brauchte einen Drehzahlmesser und ich habe noch einige
der preiswerten PSoC 4 CY8CKIT-049-42xx rumliegen.
Grund genug, sich einmal etwas intensiver mit der Thematik PSoC und Drehzahlmessung zu beschäftigen.

Die beiliegenden Beispiele demonstrieren einen realen Drehzahlmesser nach dem Prinzip der Periodendauermessung
und der Frequenzmessung.

Im Dokument sind beide Verfahren sowie die Realisierung genauer erläutert.
Drehzahlmessung in PSoC 4.pdf
(3.31 MiB) 249-mal heruntergeladen

Drehzahl_Periodendauer.cyprj.Archive01.zip
(680.04 KiB) 155-mal heruntergeladen

Drehzahl01_Frequenz_A.cyprj.Archive01.zip
(487.38 KiB) 133-mal heruntergeladen

Drehzahl01_Frequenz_B.cyprj.Archive01.zip
(499.79 KiB) 140-mal heruntergeladen
Reiner W.

Thomas Barth
Administrator
Beiträge: 85
Registriert: So 5. Apr 2015, 21:46
Wohnort: Frankfurt/M
Kontaktdaten:

Re: Drehzahlmessung in PSoC

Beitragvon Thomas Barth » Mi 22. Jul 2015, 21:38

Hallo Reiner, wieder mal super Beitrag!

Bin bisher leider nur dazu gekommen kurz drüberzufliegen, werde es mir in den nächsten Tagen genauer angucken. Es scheint so als hättest du verschiedene Lösungsansätze gegenübergestellt. Bin mal gespannt welcher der Beste ist und wie nah der an meiner Idee zu dem Thema ist ;)

Code: Alles auswählen

P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S
                                   ((1.0/C_M_LSB_BH) *
                                   G_M_INFO_DERIVE(T_ALG.E_BH)))

Reiner W.
Beiträge: 112
Registriert: Di 7. Apr 2015, 11:43

Re: Drehzahlmessung in PSoC

Beitragvon Reiner W. » Mi 22. Jul 2015, 23:01

Hallo Thomas,

Es scheint so als hättest du verschiedene Lösungsansätze gegenübergestellt

Na ja, damit hab ichs nicht übertrieben und vollständig sieht anders aus;-)
Wer's noch genauer braucht, kann sich wenigstens nochmal die Hybrid Methode ansehen http://www.cypress.com/file/67281/download ab S.3
Sollte eher ein grober Überblick mit praktischen Beispielen sein.
Reiner W.

Thomas Barth
Administrator
Beiträge: 85
Registriert: So 5. Apr 2015, 21:46
Wohnort: Frankfurt/M
Kontaktdaten:

Re: Drehzahlmessung in PSoC

Beitragvon Thomas Barth » Mo 27. Jul 2015, 12:07

Besonders gut gefallen hat mir die Implementierung des Schmitt-Triggers. Hatte ich auch schonmal versucht um einen Taktgeber zu basteln bin dann aber gescheitert. Wenn der PSoC für nichts anderes genutzt wird ist das sicherlich eine gute Sache, wenn man auf die Ressourcen achtet ist ein Hardware Trigger aber wohl besser.

Vielen Dank das du die Signale auch mal nach außen geführt hast und man so sieht wie die Komponenten arbeiten!

Habe gesehen das du auch den PSoC5 Programmer nutzt um den 4er zu flashen. Das funktioniert so viel besser und außerdem hat man wieder Debugging-Möglichkeiten.

Vielen Dank für dieses tolle Tutorial, ich denke es ist besonders für Anfänger geeignet weil es alle Zusammenhänge erklärt.

Code: Alles auswählen

P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S
                                   ((1.0/C_M_LSB_BH) *
                                   G_M_INFO_DERIVE(T_ALG.E_BH)))

Reiner W.
Beiträge: 112
Registriert: Di 7. Apr 2015, 11:43

Re: Drehzahlmessung in PSoC

Beitragvon Reiner W. » Mo 27. Jul 2015, 13:02

Ja, dass mit den Ressourcen ist so eine Sache. Ganz speziell bei PSoC 4. Ich habe mir angewöhnt, zu allen möglichen Komponenten Alternativen (meist in Software) zu testen und zu dokumentieren. Das gilt speziell für Standardanwendungen wie Timer, Counter, Keypad, Drehgeber usw.)
Ist immer ärgerlich, bei der Erweiterung eines Projektes festzustellen, dass die Ressourcen doch nicht reichen. Und einen Drehgeber in Hard- und den zweiten in Software zu implementieren ist auch Mist.

Vielen Dank das du die Signale auch mal nach außen geführt hast und man so sieht wie die Komponenten arbeiten!


Das ist mir in Fleisch und Blut übergegangen, hat mir am Anfang den Debugger ersetzt und ist extrem nützlich für Dokumentationen. Und den Minigrog 3 hab ich mir wohl umsonst zugelegt. Der CY8CKIT-059 tut's genauso. Na vlt. brauch ich mal JTAG.

.. ist besonders für Anfänger geeignet..


So war's gedacht;-) Die meisten meiner Dokus hab ich ja gemacht/begonnen, als ich selbst totaler Anfänger war, was auch machmal peinlich ist, wenn mann mit späterem Abstand drüberschaut;-)
Reiner W.

Thomas Barth
Administrator
Beiträge: 85
Registriert: So 5. Apr 2015, 21:46
Wohnort: Frankfurt/M
Kontaktdaten:

Re: Drehzahlmessung in PSoC

Beitragvon Thomas Barth » Mo 27. Jul 2015, 13:50

Jaja... dieses Gefühl wenn man nach ein paar Jahren auf alte Dokument zurückblickt und denkt: Wer bitte hat denn das geschrieben ;) Ist ganz normal denke ich und ein Zeichen das man sich weiterentwickelt hat :)

hast du denn versucht den Timer in SW zu "entprellen" also z.B. alle Werte zu ignorieren die kleiner als x sind?
Wenn du alle Ressourcen für diese eine Applikation nutzen kannst dann ist es letztlich egal.

Code: Alles auswählen

P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S
                                   ((1.0/C_M_LSB_BH) *
                                   G_M_INFO_DERIVE(T_ALG.E_BH)))

Reiner W.
Beiträge: 112
Registriert: Di 7. Apr 2015, 11:43

Re: Drehzahlmessung in PSoC

Beitragvon Reiner W. » Mo 27. Jul 2015, 14:33

hast du denn versucht den Timer in SW zu "entprellen" also z.B. alle Werte zu ignorieren die kleiner als x sind?


Nein, dafür nehme ich eigentlich meist die Glitchfilter-Komponenente. Hoffe ich hab jetzt richtig verstanden was du meinst.
Wenn deine Frage darauf abzielt, ob ich unsinnige (zu keine) Messwerte eliminiere, das mache ich im Beispiel nicht. Bei Bedarf würde ich unsinnige (zu hoch/klein) aber sicher genauso machen, wie ich die Mittelwertbildung mache. Aber statt aufsummieren ggf. eliminieren. Ließe sich simpel implementieren, wobei ich wohl eher auf die Abweichung zum vorhergehenden Messwert reagieren würde.
Macht aber sicher nur bei der Periodendauermessung Sinn.
Reiner W.


Zurück zu „Tutorials“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron