Auswertung Motor Encoder

Gast
Ansonsten kann es aber auch durchaus einfacher sein, mal schnell
nen kleinen CPLD (z.B. Xilinx 95xx) für die Aufgabe zu programmieren,
als was "exotisches" zu beschaffen. Kommt halt drauf an, obs privat
bzw. hobbymäßig eingesetzt werden soll, oder in der Firma.
Gast
Hallo Markus,

> Ich will meinen AVR nicht so sehr mit dem
> Auswerten der Encodersignale belasten.

hat er denn soviel zu tun ?

Wenn Du ein A- und ein phasenverschobenes B-Signal hast, um Drehzahl und 
Drehrichtung auszuwerten, dürfte es ihn nicht überfordern.

Gruss Otto
Gast
>Wenn Du ein A- und ein phasenverschobenes B-Signal hast,
>um Drehzahl und Drehrichtung auszuwerten, dürfte es ihn
>nicht überfordern.

Das kann nur der OP wissen, denn das hängt ja nun mal stark
von der max. Frequenz des Quadratursignals ab und läßt sich so
pauschal nicht abtun.
Gast
Danke für die schnellen Antworten!
Die Idee mit dem externen IC hatte ich, da die maximale Encoderfrequenz 
bei ca. 5kHz liegt und ca. 3-4 Motorencoder ausgewertet werden müssen. 
Das dürfte ein AVR zwar noch problemlos packen, aber für den Rest den er 
tun soll hat er dann wenig Zeit ;-)
Preislich dürfte ein zweiter AVR oder ähnliches, aber deutlich günstiger 
sein, da von den Spezial-ICs ja jeweils einer pro Motor benötigt wird.

Grüße
Markus
Gast
Wenn die 5kHz schon fix sind, sollte ein AVR mit 16MHz das packen. Ich 
selbst hab auch erst sowas gemacht. Da ich eine zeitkritische 
Kommunikation auch noch hatte, musste ich es dann doch per zusätzlichen 
IC machen. Ich habe den HCTL2022 verwendet. Funktioniert super und die 
digitale Filterstufe ist auch recht hilfreich.

mfg Weinga-Unity
Gast
Hallo,

ein ähnliches Problem beschäftigt mich auch derzeit. Ich bin dabei ein 
Encodersignal abzugreifen um damit Drehzahl und Position zu bestimmen.

Der Encoder hat 100 Striche, Flankenwechsel wird mit Timer0 ISR 
bestimmt.
Allerdings ist das echt mühsam, da der Mega8 alle 256 Takte in diese ISR 
wechseln muß, um den Zustandswechsel auch bei 6000 UpM erkennen zu 
können. (100 Striche mal 200 Flanken = 20 kHz)

Timer1 ist für pwm Reserviert.


Die Drehzahl ermittle ich dann über die Anzahl der ISr bei denen kein 
Flankenwechsel statt gefunden hat.


Hat jemand schon mal etwas ähnliches programmiert und kennt ev. einen 
eleganteren Weg (Stichwort-> Servoregler)


Gruß

Timo
Gast
@Timo
Nimm den Capture Eingang und zähl die Anzahl der Flanken.
Diesen Wert liest du in einem festgelegten Intervall ( Timergetriggert 
IRQ) aus.
Da reicht auch ein größeres Intervall als 256 Takte, zb 20 ms.
Gast
Hallo Falk,


aber kann ich so eine Routine in der ISR abhandeln und das alle 256 
Takte?

Ich glaube ich werde mir einen tiny oder einen der 7366 von lsicsi als 
Puffer dazwischen legen und dann wie Ralph gesagt hat, nur alle 20 ms 
die Position abrufen und aus der Positionsveränderung die 
Geschwindigkeit ermitteln.

Aber ich finde diese Lösung unbefriedigend, der AVR müßte mit einer 
geschickten Programmierung doch in der Lage sein, die Daten auszuwerten 
und z.B. via RS232 auszugeben. Bei dem UHU Servoregler geht das, soweit 
ich weiß, auch mit nur einem Mega8. Und der regelt auch noch die 
Position mit!

Gruß

Timo
@ Timo Kümmerle (Gast)

>aber kann ich so eine Routine in der ISR abhandeln und das alle 256
>Takte?

Naja, wenn mans geschickt oder in Assembler macht schon. Aber für vier 
Kanäle wirds dann schon anspruchsvoll.

>Ich glaube ich werde mir einen tiny oder einen der 7366 von lsicsi als
>Puffer dazwischen legen und dann wie Ralph gesagt hat, nur alle 20 ms
>die Position abrufen und aus der Positionsveränderung die
>Geschwindigkeit ermitteln.

Moment! Wenn du die Postition erfassen willst MUSST du die 
vollständige Auswertung machen. Und ob du die dann alle ms oder 20ms 
weiterleitest ist dann unwesentlich.

>Aber ich finde diese Lösung unbefriedigend, der AVR müßte mit einer
>geschickten Programmierung doch in der Lage sein, die Daten auszuwerten
>und z.B. via RS232 auszugeben.

Kann er.

>Bei dem UHU Servoregler geht das, soweit
>ich weiß, auch mit nur einem Mega8. Und der regelt auch noch die
>Position mit!

Knoff Hoff!

MFG
Falk

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.