Mehrere Inkrementalgeber auslesen

Gast #264129
Lesenswert?

Hallo zusammen,

ich muss mehrere Inkrementalgeber(bis 8 Stück) auswerten. Wichtig ist
die getrennte Zuordnung der Links-Rechtsimpulse. Alle 8 Encoder müssen
mit ihren A- und B-Leitungen entprellt sein.

Ich kenne zwar den Thread von Peter Dannegger in 'Codesammlung',
jedoch erscheint mir eine Softwarelösung zu zeitintensiv.

Mir ist zwar eine Hardwarelösung bekannt, die separiert aber nur die
Links-Rechtskanäle, macht aber keine Prellunterdrückung.

Kennt jemand eine komplette Hardwarelösung?

Vielen Dank für Hinweise!

Norbert
Gast #264130
Lesenswert?

> jedoch erscheint mir eine Softwarelösung zu zeitintensiv.

Warum? Läuft doch alles im Timerinterrupt und das bisschen Pinabfrage
kostet doch nicht viel Zeit. Also effektiver dürfte es kaum gehen.
Gast #264134
Lesenswert?

5khz sind mit Software-Enprellung kein Problem. Nimm einen Timer-IR mit
20khz und frage darin alle 8 Kanäle ab. Orientiere Dich an Peter
Daneggers Entprell-Routine.

> Kennt jemand eine komplette Hardwarelösung?

Sorry, wenn ich Deine eigendliche Frage ignoriert habe, aber den
Hardwareaufwand würde ich mir sparen ...

Viele Grüße, Stefan
Gast #264135
Lesenswert?

Hardware-Lösungsvorschlag: Mega16 oder so nur für die
Inkrementalgeber, und den dann irgendwie an den 128 knoten...

Was soll dein Controller denn sonst noch machen?
Wenn man den mit 16MHz betreibt, hat er doch ohne Ende Reserven.
Gast #264136
Lesenswert?

Meine Einschätzung ist, daß 8 Kanäle mit 5kHz mit einem AVR, wenn
überhaupt, nicht problemlos erledigt werden können.
Um auf der sicheren Seite zu sein, würde ich für ein bis zwei Kanäle je
einen Mega8/Tiny2313 einsetzen und diese dann per UART/IIC auslesen.
Da in allen Sub-µCs die gleichen Programme laufen, ist die Entwicklung
nicht aufwendig; der Hardwareaufwand ist dadurch gerechtfertigt, daß
die Sache sicher funktioniert und es nicht sporadisch zu
Falschzählungen kommt.
Gast #264137
Lesenswert?

a) Die Encoder sitzen an Achsen von Transportbändern. Es wird u.a. eine
Geschwindigkeitsregelung für jedes Band benötigt. Dazu kommen Tastaur,
Grafikdisplay, div.I/Os usw.

b) Ein anderes Projekt benutzt die selben Encodersignale zur mm-genauen
Positionierung.

Geld und Materialaufwand sind hier nicht wichtig. Wegen b) will ich
kein Risiko eingehen. Deshalb meine Frage.

Besten Dank für eure Tipps!

Norbert
Gast #264139
Lesenswert?

@Michael,

"Meine Einschätzung ist, daß 8 Kanäle mit 5kHz mit einem AVR, wenn
überhaupt, nicht problemlos erledigt werden können."


Diese Einschätzung ist falsch.

In Assembler benötigt man 13 Zyklen pro Kanal, mit 12 Zyklen
Interruptrahmen sind das insgesamt 116 Zyklen, d.h. Du kannst mit
137kHz abtasten, was weit über den benötigten 5kHz liegt.

Um nun dem Main noch reichlich Rechenzeit übrig zu lassen, würde ich
mit etwa 20kHz abtasten.

Probleme könnten nur andere Interrupts machen, wenn diese zu lange
sperren.
Dann könnte es was bringen, z.B. einen ATMega48 nur für die Encoder
abzustellen und diesen per SPI auszulesen.


Peter
Gast #264141
Lesenswert?

also falls ein Interrupt die Programmierung mit einem Mikrocontroller
unmöglich macht dann tut es mir erstmal für dich leid ;-) und dann
würde ich dir als 2. den Tipp geben eventuell ein CPLD zu nehmen.
Ich würde die Messwerterfassung warscheinlich auch mit einem seperaten
IC machen. Why not ein CPLD dort gibts auf jedenfall keine störenden
Interrupts
Gast #264142
Lesenswert?

Wenn man das Programm und vor allem die ISR richtig plant, steht einer
Einzel-Controller-Varinate nichts im Weg.
Ich würde es mit einem Controller ausprobieren.
Notfalls könnte man es noch mit einem externen Drehencoder-Controller
machen...
Gast #264144
Lesenswert?

Habt erstmal Dank für eure Anregungen.

Auch unter meinen Kollegen wird ein Für und Wider dikutiert.

Die Forderung sieht mittlerweile vor, daß alle Kanäle auf
Kurzschluss(A=B), falsche Impulsfolge und Impulsausfall detektiert
werden sollen.

Da der mega128 mit seiner einfachen Interruptstruktur von weiteren
Interruptquellen(Ext., USART) angefordert wird, geht die Tendenz bei
uns in der Tat zur CPLD-Lösung.


Schönen gruß   Norbert

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