Ich weiß nicht, ob Du folgende Quellen schon kennst (meine natürlich zuerst ):
In diesem thread, der auch in den u.g. Blogeinträgen öfter verlinkt ist, haben meine Versuche begonnen.
https://www.roboternetz.de/community...l=1#post531780
Mit einem 74HC14 und einem 74HC86 kann man zwei Geber bedienen.
Hier habe ich mit Reflexoptokopplern eine selbsterzeugte Encoderscheibe abgetastet. Die Logikschaltung noch eben im Kommentar zum Blogeintrag hinzugefügt.
https://www.roboternetz.de/community...b-ausprobieren
Hier eine Variante mit der Optoelektronik einer Kugelmaus. Der Vorteil war, daß die IR-Empfänger schon Rechtecksignale lieferten und ich mir den Satz Schmitttriggerverkabelung, die die Spannung vom Fototransistor aufbereiten, sparen konnte.
https://www.roboternetz.de/community...UP-DOWN-Signal
Hier ein Link zu einer "Profi?" Seite mit aufwendigeren Schaltungen:
http://www.dse-faq.elektronik-kompen...e-faq.htm#F.29
Man liest sehr oft, daß die Nutzung von Interrupts bei der Incrementalgeberauswertung sehr sorgfältig überlegt werden soll. Wenn Kontakte prellen können oder auch durch Zittern sehr schnell Flankenwechsel hintereinander auftreten können, können die Interrupts den µC dicht machen.
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Der zusätzliche Schaltungsaufwand erzeugt ein Rechtecksignal, bei dem immer die zuerst wechselnde Flanke eine steigende Flanke verursacht und die folgende wechselnde Flanke eine fallende. Durch einen Frequenzhalbierer wird daraus das Direction Signal.
Gegenüber der Variante von heute Nacht ergibt sich bei gleichen Simulationsparametern nur in einem der Fälle eine Verbesserung.
Ich muß noch testen ob bei veränderten Parametern dadurch in allen Fällen immer ein schnelleres Umschalten erreicht wird.
So, habe die Werte für die Simulation noch etwas verändert um auch auf dem B-Kanal mehr Wechsel zu haben.
Momentan wird Direction sofort geändert, wenn nach dem Rictungswechsel an A oder B eine steigende Flanke folgt.
Kommt nach dem Richtungswechsel als erstes eine fallende Flanke, reagiert die Schaltung erst auf die folgende steigende Flanke.
Also noch etwas "basteln".
Ich habe mich auch nochmal probiert.
https://www.roboternetz.de/community...krementalgeber
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Klappt bei mir mit LTSpice nicht.
Beim Direction Signal kommt bei mir das selbe raus was ich schon beim Summensignal habe (Bei Dir der Ausgang vom XOR links unten).
Ich habe als Logigkgatter die CD 4000 er genommen. Mit deren Werten für Rise und Fall sowie der Durchlaufverzögerung.
Was bei Dir unten ist, der Teil der das Summensignal bildet und dann einen Nadelimpuls pro Flanke erzeugt, funktioniert.
Aber z.B. das Flip Flop am A-Kanal dessen Set Du mit A und dessen Reset Du mit der Inversion von A beschickst, liefert bei mir an Q, grade wieder das Muster von A (halt nur um ein Paar ns verzöger).
Ebenso bei dem Flip Flop an B.
Und das dritte Flip Flop (an B) liefert auch wieder das Signal von B, halt noch ein paar ns stärker verzögert.
Damit kommt dann bei mir an dem XOR rechts oben das selbe raus wie bei dem links unten.
Mit welcher Software hast Du denn simuliert und mit welchen Bauteilen/Bauteilparametern?
- - - Aktualisiert - - -
Hier meine optimierte Schaltung. Direction wird jetzt bei jedem Richtungswechsel mit dem ersten Pegelwechsel umgestellt.
Jetzt kommt der Teil vor dem es mir immer graut. Wahrheitstabellen und versuchen zu vereinfachen um kein Chip Grab zu haben.
Eventuell Suche ich auch mal meine alten PAL/GAL Unterlagen raus. Ein CPLD wäre auch eine Möglichkeit. Bei der Anzahl Chips die man im Moment bräuchte, würden sich die 5€ für ein CPLD auf jeden Fall rechnen.
Zum Verständnis der Schaltung:
Ganz links ist die Simulation des B-Kanal und dessen Verhalten beim Richtungswechsel.
Die Pulse Spannungsquelle Steuert die beiden Spannungsgesteuerten Schalter die für den Richtungswechsel zwichen den beiden um 180° verschobenen Sinus Spannungsquellen hin und her schaltet.
Der Selbe Aufbau folgt dann für die Simulation des A-Kanal, halt um 90° Verschoben zum B-Kanal.
Dann folgen die Schmitt-Trigger aus je zwei NAND (als Inverter).
Nach den Schmitt-Triggern wird oben durch ein XOR das Summensignal Pulse gebildet und dann mit der Schaltung von Searcher die Nadelpulse erzeugt. Das ergibt eine Vervierfachung der Pulse gegenüber einem einzelnen Kanal (A oder B).
Nach dem ersten NAND der Schmitt-Trigger und nach den Schmitt-Triggern werden A- und B-Kanal jeweils zum Ansteuern der Flip-Flops der Frequenzteiler abgegriffen. Es wird der A-Kanal einmal auf D des einen Flip-Flop und auf CLock des anderen gelegt.
Der B-Kanal entsprechend vertauscht.
Am Ende werden die Beide, je aus drei Flip-Flops, einem XOR und einem NAND (als Inverter) bestehenden Zweige auf einen letzten Frequenzteiler geführt, der das Direction Signal jeweils zum ersten Flankenwechsel nach einer Richtungsumkehr umschaltet.
Im Diagram unterhalb der Schaltung ist rot PULSE und grün DIRECTION dargestellt.
Oberhalb der Schaltung stehen die LTSpice Direktiven damit die V-Switche funktionieren und die CD 4000 Library genutzt wird.
Unterhalb der Schaltung, die Simulationszeit von 30 Sekunden.
Geändert von i_make_it (24.02.2018 um 23:24 Uhr)
Ja, ich habe mittlerweile auch bemerkt, daß Logikzustände scheinbar einfach durch die R-S Flipflops durchgereicht werden.
Zur Entstehung der Schaltung:
Ich habe mir sämtliche Zustände, die an den A/B Eingängen in Vorwärts- und Rückwärtsrichtung auftreten können, aufgeschrieben.
Die Richtungsbestimmung kann durch Vergleich des gegenärtigen A/B Zustandes mit dem A/B Zustand davor erfolgen.
Zum Speichern der Zustände hatte ich 74HC595 Schieberegister verwendet. Das schien selbst mir etwas zuviel.
Schieberegister kann man durch hintereinandergeschaltete R-S flip Flops erzeugen; mit einem Inverter zwischen R-S im ersten Flip Flop.
Das ist sind die Flip Flops, die an Eingang B hängen.
An A hing das Gleiche bis ich festgestellt hatte, daß nach Wahrheitstabelle zur Feststellung der Richtung das zweite Flip Flop an A entfallen kann.
Mittlerweile sieht es so aus, daß ich auf die Flip Flops ganz verzichten kann aber die Gatterlaufzeiten sehr wichtig sind.Code:Wechsel AB von nach (Richtung) nur Vorwärtsrichtung rausgezogen 00 01 R 00 10 V 1.2. 3.4. Bit 10 00 R 10 11 V 0 0 1 0 11 10 R 1 0 1 1 11 01 V 1 1 0 1 01 11 R 0 1 0 0 01 00 V Gemeinsamkeit Vorwärts: 1. und 4. Bit gleich im Gegensatz zu Rückwärts. Deswegen das abschließende XOR.
Habe deshalb die Flipflops entfernt und Latches "eingebaut", die nur die Aufgabe haben auf steigende Taktflanke die Logikpegel gezielt durchzuschalten.
Es sollten CD4000er OK sein. Die Latches schalten bei steigender Flanke. Die etwas optimierte Schaltung:
LT Spice habe ich länger nicht benutzt und schaue später mal, ob ich das dort auch simuliert bekomme.
Durch die Optimierung und Gewichtung auf die Delays der Gatterlaufzeiten werde ich den Verdacht nicht los, daß ich früher oder später bei der Manf-Lösung lande:
https://www.roboternetz.de/community...ll=1#post82074
Ich benutze hier den Uralt- DigitalSimulatorV5.57.exeMit welcher Software hast Du denn simuliert und mit welchen Bauteilen/Bauteilparametern?
Info: http://www.vlin.de/vlin2/material/Si...chaltungen.pdf
https://sourceforge.net/projects/dig...ll%20EXE/5.57/
Man kann keine Bauteile nach Namen auswählen sondern nur die Funktion. Sicher keine hochwertige Simulation aber durch die Anzeige der logischen Zustände durch farbige Leitunngen schön übersichtlich. Durch Rechtsklick auf Leitungen kann man Meßpunkte setzen, die dann im Pegelschrieb erscheinen. Seltsamerweise gehen Beschriftungen nach Abspeichern und Wiederladen einer Simulation verloren Daher die magere Beschriftung, die auch noch umständlich anzubringen ist.
Geändert von Searcher (25.02.2018 um 07:10 Uhr)
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
OK, Das ist schon etwas älter.
LTSpice basiert halt auf SPICE, das hat den Vorteil, das man so ziemlich alle Bauteilmodelle die es für SPICE gibt, meistens ohne Anpassungen nutzen kann.
Und man kann halt Analog und Digitalschaltungen Simulieren.
Da es Freeware ist und auch die meisten großen Profilosungen auf SPICE basieren, findet man halt viele Modelle, Anleitungen und Dokus.
Die Schaltung von Manf habe ich auch mal simuliert. Da kommt bei mir bei Direction allerdings auch nur das Summensignal mit ein paar ns Zeitverzögerung raus.
---------------------
Bei Manf und bei Deinem Entwurf sollen die Flip-Flops, zustandgesteuert sein.
Bei mir sind es Flankengesteuerte, die zu einem Ergebniss geführt haben.
Geändert von i_make_it (26.02.2018 um 07:23 Uhr)
So, nachdem ich LTSpice mit den 4000ern zum Laufen gebracht habe, hatte ich zunächst auch nicht das gute Ergebnis vom Digitalsimulator. Bis ich festgestellt hatte, daß die Pulserzeugung aus V1 und V2 langsamere Flanken hat als das, was aus den Gattern rauskommt. Habe dann einfach noch Inverter nach V1, V2 geschaltet und dann den untenstehenden Plot bekommen. Die Pulserzeugung hat unterschiedliche Periodenzeiten um Vorwärts- und Rückwärtsbewegungen in einem Plot zu zeigen.
Überbrückt man U4, U5 stimmt das Ergebnis nicht mehr.
Die Schaltung ist weit entfernt vom Ideal aber ich wollte erstmal das Rätsel der unterschiedlichen Ergebnisse untersuchen.
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Lesezeichen