mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche Zähler ähnlich wie LS7060


Autor: Chrizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich finde einfach keinen passenden Zähler für meine Anwendung.
Eigentlich brauche ich nur zwei einfachen Up/Down-Counter um den einen
Winkelversatz zwischen zwei Drehgeber zu ermitteln. Ich habe einen
Dualzähler gefunden

http://images.mercateo.com/pdf/Farnell/3390.pdf

der aber nur hochzählt, ansonsten aber perfekt wäre.

Ich plane an jedem encoder zunächst einen "quadrature clock
converter" (ls7183) zu hängen und deren Ausgang auf die Zähler zu
schalten. Zu festen zeitpunkten würde ich die Zähler gerne auslesen und
im Mikrocontroller miteinandervergleichen und auf den Winkelversatz
schliessen

Autor: Bjoern Buettner (tishima)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Um was fuer einen Drehgeber handelt es sich ??

Waere es nicht vieleicht auch möglich den gleich direkt vom µC
auszuwerten ?

mfg,
Bjoern

Autor: Bjoern Buettner (tishima)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So in meinen unterlagen gestöbert.........

http://www.pe-gmbh.com/d/eda/PE12016_12024_1_5.pdf

Aber diese oder aehnliche Counter ICs sind wohl eher vom aussterben
bedroht, da das eine sehr schöne Anwendung fuer einen weitaus
billigeren CPLD ist.

mfg,
Bjoern

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls jemand Interesse an CF32007 (DIL24) hat, ich habe noch einige zu
liegen.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
von csilsi.com gibts doch noch mehr, LS7266 usw.
IC-Haus könnte auch sowas haben

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.usdigital.com/company/sitemap.shtml dort gibts alle
Encoder-IC-Datenblätter von csilsi

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier noch der Hersteller, war falschrum, lsicsi.com:
http://www.lsicsi.com/products.htm
IC-Haus hat:
http://www.ichaus.com/

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schließe mich Bjoern an, einfach Drehgeber direkt an den MC und den
zählen lassen.

Billiger gehts nicht und man ist nicht auf irgendwelche abgekündigten
Exoten angewiesen.


Ich lese z.B. 2 Drehgeber mit einem AT89C51CC01 aus und sende die
Position über CAN zur Steuerung. Abgetastet wird mit 40kHz.

Nur für wesentlich höhere Impulsfrequenzen braucht man einen CPLD.


Peter

Autor: Chrizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Auswertung vom Mikrocontroller hat sich als nicht sehr praktikabel
rausgestellt. Das Problem liegt in der TAtsache, daß ja 2 Dehgeber
verwendet werden, aber der zu verwendene MIkrocontroller nur eine
Interruptebene hat. Tauche Flankenwechsel zeitlich gesehen sehr dicht
nebeneinander auf, gehen Impulse verloren. Daher möchte ich gerne die
Drehegeber "parallel" auswerten.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Drehgeber fallen doch unter die Kategorie "Taster und andere prellende
Sensoren", oder?
Peter fragt die Dinger mit 40kHz ab. Wenn man dann auch noch 4 stabile
Zustände messen will, kommt man auf eine Abtastfrequenz von 10kHz.
10kHz entspricht einer Drehzahl von 600.000 rpm Das fällt unter
extrem-HF-Spindel (HSC arbeitet IMHO mit ca. 30.000rpm).
Bei solchen Drehzahlen zerlegt sich eher der Drehgeber...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder habe ich da irgendwo was falsch verstanden?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Das Problem liegt in der TAtsache, daß ja 2 Dehgeber
verwendet werden, aber der zu verwendene MIkrocontroller nur eine
Interruptebene hat. Tauche Flankenwechsel zeitlich gesehen sehr dicht
nebeneinander auf, gehen Impulse verloren."


Wie kommst Du denn darauf ?

Solange die Abtastfrequenz des Timerinterrupt über der Impulsfrequenz
liegt, geht nirgends nicht auch nur ein einziger Impuls verloren.


Die Interruptprioritäten spielen nur dann eine Rolle, wenn Du noch
weitere Interruptquellen hast. Deshalb habe ich ja auch einen 8051
genommen und die niedrige Priorität dem CAN-Interrupt zugewiesen.


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Oder habe ich da irgendwo was falsch verstanden?"

Ja.

Die Impulszahl ist nicht die Drehzahl. Z.B. gibt es Encoder mit 1024
Schritten pro Umdrehung.


Encoder, die als Positionssensor arbeiten, sind üblicher Weise
prellfrei (optisch).


Peter

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die Aufklärung.

Autor: Bjoern Buettner (tishima)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

Drehgeber fallen nicht unbedingt unter  taster und prellende Sensoren,
ok die billigen Drehdinger, aber es gibt auch optische mit mehr als
1024
Punkten pro Umdrehung, die werden normalerweise in Maschinen und
Steuerrungen verwendet und dann machen die Counter ICs oder CPLD sinn.

mfg,
Bjoern

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann müsste ich meine 600.000rpm durch 1024 teilen und käme dadurch auf
etwa 600prm. (nur noch mal für mich "zum Mitschreiben").

>Encoder, die als Positionssensor arbeiten, sind üblicher Weise
>prellfrei (optisch).

Dann kann man mit 40kHz Abtastfrequenz also etwa 1200rpm messen!? Und
bei geringerer Auflösung auch höhere Drehzahlen.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die optischen prellen nicht, aber die Flanken sind langsam,
Schmitt-Trigger nötig

Autor: Chrizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem Drehgeber gebe ich euch beiden Recht. Aber da sich beide
drehgeber nicht im festen Winkel zu einander stehen. Ist doch meine
Impulsfrequenz nicht fest. Werden beide Drehgeber also gleichzeitig in
gleicher Phase ausgelenkt, welcher Impuls wird dann vom Mikrocontroller
interpretiert.
Und es werden tatsächlich auch noch andere Interrupts verwendent, z.b.
für das Timing der Regelung. Ich würde dem yC zusätzlich gerne etwas
luft verschaffen indem ich die Auswertung noch aussen verlagere.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Aber da sich beide drehgeber nicht im festen Winkel zu einander
stehen. Ist doch meine Impulsfrequenz nicht fest."


Nicht wie sie stehen ist entscheidend, sondern wie schnell sie sich
drehen.


"Ich würde dem yC zusätzlich gerne etwas luft verschaffen indem ich
die Auswertung noch aussen verlagere."

Kein Problem. Einfach nen extra  MC als SPI-Slave anbinden, der nur die
Encoder auswertet. Ist immer noch billiger, als ein Exot oder CPLD.


Peter

Autor: Chrizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht was ich nicht richtig verstehe. Was ich meine ist: Jeder
Drehgeber liefert bei fester Drehzahl vier Flankenwechsel pro Strich.
Der Abstand der Flanken richtet sich nach dieser Drehzahl. Aber der
Abstand der vier Flanken des einen Dehgebers zum andern Drehgeber
richtet sich nach dem Winkel der beiden zu einander. Bei einen
ungünstigen Winkel kann es also doch vorkommen, daß die Flanke des
einen Drehgebers beliebig nah an die Flanke des anderen Drehgebers
gerät, völlig unabhängig von der Drehzahl.
Meine Schlussfolgerung ich brauche eine parallele Auswertung.

Autor: Bjoern Buettner (tishima)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Kannst Du mal erleutern, vieleicht auch den mechanischen Aufbau, warum
Du 2  Encoder brauchst die sich gegensetig ueberwachen. Das habe ich
bisher bei keinem prof. Antriebssystem gesehen, es sei denn auf nem
Teststand fuer Antriebssysteme. Dann kann ich vielleicht noch einen Tip
geben aus der Praxis,da ich mit son krempel ne Menge zu tun habe.

mfg,
Bjoern

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bei einen ungünstigen Winkel kann es also doch vorkommen, daß die
Flanke des einen Drehgebers beliebig nah an die Flanke des anderen
Drehgebers gerät, völlig unabhängig von der Drehzahl."


Du kannst aber nicht feststellen, wie nah, wenn es unter einem Schritt
ist.

Bei allen digitalen Meßverfahren ist die höchste Auflösung und der
kleinste Fehler immer >=1.


Welche Winkeldifferenz Du messen kannst, hängt allein von der Anzahl
der Schritte pro Umdrehung ab und nicht davon, wie schnell Du
ausliest.

Ob Du mit nem Exot, CPLD oder MC ausliest ist also völlig irrelevant.


Peter

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prellen Deine Drehgeber?
Wenn ja, dann lässt sich das sowieso nicht sinnvoll per Interrupt
lösen. Da wäre ein Ansatz mit pollen wesentlich besser /
zuverlässiger.

Falls die Drehgeber nicht prellen, kannst Du separate Interrupts für
die beiden Drehgeber verwenden. Du verpasst dann quasi schon einen
Interrupt, jedoch bleibt das Interrupt-Flag des "verpassten"
Interrupts ja gesetzt und die Routine wird gestartet, sobald die erste
abgeschlossen ist. Somit hast Du dann schlussendlich doch nichts
verpasst, solange die IRQ-Routinen genügend schnell abgearbeitet werden
können.

Autor: Chrizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ZU Bjoern:

Du lagst mit dem Teststand goldrichtig. Zwei Motoren sind über eine
Torsionfeder mit einander verbunden. Ziel ist es, daß beide Motoren die
selbe Geschwindigkeit haben. Allerdings soll ein Winkelversatz
einstellbar sein und dadurch ein genau definiertes Moment gegen das der
einer Motor läuft.

Autor: Chrizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu Johnny:
Was Du sagst macht Sinn! Vielleicht ist dann meine Erklärung mit der
Gleichzeitigkeit der Interrupts doch nicht richtig.
Jedenfalls sind in jetzigen Firmware Verluste von Impulsen aufgefallen.
Ich scheue mich etwas davor einen zweiten MIkrocontroller ins spiel zu
bringen der nur für das Pollen der Eingänge zuständig ist.

Habe auch einen schönen dualzähler gefunden: LS7266R1 mit
Eingangsfiltern und parallelen Datenbus inklusive der Encoderauswertung
für rund 15 Dollar.

Zu Peter:
Ich weiss jetzt warum wir aneinader vorbei geredet haben. Ich will
natürlich nicht den Phasenversatz zwischen den Flanken der beiden
Encoder auswerten. Es ging mir nur darum parallel die Zähler hoch bzw.
runter zu zählen und diese dann zu vergleichen. Was Du als
selbstverständlich aufgefasst haben must, war die Tatsache, dass die
Interrupts ja nicht wirklich verloren gehen, wie Johnny anmerkte.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Es ging mir nur darum parallel die Zähler hoch bzw. runter zu zählen
und diese dann zu vergleichen."

Das habe ich auch genau so verstanden.

Und daher ist es gleichgültig, wann Du sie vergleichst, Du hast immer
eine Unsicherheit von +/-1 Impulsen.

Und der Timerinterrupt, der sie ausliest, zählt zwar nacheinander
(wenige µs versetzt), aber für das Main gesehen zählt er parallel.

Und da Du ja eh einen MC nimmst, gibt es keine perfekte
Gleichzeitigkeit, alles erfolgt immer nacheinander.

Gleichzeitigkeit liegt immer im Auge des Bertrachters und hier ist
Gleichzeitigkeit, wenn alles innerhalb der Zeitspanne von einem Impuls
bis zum nächsten erfolgt und die ist, wie schon mehrmals gesagt, ganz
allein von der Drehzahl abhängig.


Wenn Du also nicht die maximale Drehzahl und die Pulszahl pro Umdrehung
nennst, kann keiner feststellen, ob Software allein ausreicht oder
nicht.

Ich hoffe, das war jetzt endlich verständlich.


Peter

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]
  • [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.