Drehimpulsgeber und 4046

Winfried Salomon schrieb:

Ich habe für Drehgeber noch den Link hier. Brauch nur ein Standard 74er:

formatting link

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer
Loading thread data ...

Hallo Joerg,

Joerg schrieb: [....]

sicher kenne ich die, hab noch 'nen Stapel Lochkarten von damals aufgehoben, sehr haltbares Speichermedium ;-). Man darf es nur nicht mit dem Fahrrad transportieren und damit hinfallen, wie mal einer schrieb ;-).

Der VCO, den ich modelliert habe, funktioniert über etliche Dekaden linear, aber generell kann ich sagen, daß solche mixed-mode-Simulationen enorm viel Rechenleistung brauchen, die gab es damals überhaupt nicht. Wir hatten vor kurzem wieder das Thema PLL mit charge pump, die Simulation mit Matlab/Simulink konnte auch wegen der Begrenzung von Rechenleistung und Ram nicht wirklich an die Realität zur Bestimmung von Spurs im Spektrum kommen.

Mit Pspice kann ich mir aber durchaus ansehen, welche Wirkung das Schleifenfilter hat und was von dem digitalen Signal am Eingang des VCO noch übrigbleibt, da ist nämlich die PLL mit digitalem EXOR-Gatter sehr schlecht, deshalb charge pump. Aber Spice-Modelle von VCOs habe ich bis heute noch nirgends gesehen, in meinen Augen ein schwaches Bild der Hersteller, die stellen ansonsten nur online-Filterberechnungen zur Verfügung. Spice selbst war glaube ich seit Anfang der '80er (auf Großrechnern) ein Thema.

mfg. Winfried

Reply to
Winfried Salomon

Hallo Henry,

Henry Kiefer schrieb: [....]

ja das sieht schon recht clever aus und das Problem wird da schon ausführlich beschrieben. Ich habe zwar keine Ahnung von Drehgebern, aber es sieht genauso aus wie das mit der Doppellichtschranke, das ich mal vor längerer Zeit im FPGA getestet hatte, natürlich in der Praxis funktionsfähig.

Mir fällt nur auf, daß da überall ein Takt ist, mein Vorschlag wäre ohne Takt, nur die 2 Signale des Drehgebers. Das hat den Vorteil, daß die Schaltung im Stillstand keine Schaltflanken und damit keine Störungen produziert bzw. bei CMOS auch fast keinen Strom verbraucht. Bei Bedarf kann ich sie ja mal posten.

mfg Winfried

Reply to
Winfried Salomon

Da hatte ich einen einfachen Trick, denn ich musste 7km mit dem Fiets ueber die Grenze nach NL: Alle mit einem Stift durchnummeriert :-)

Ging eh nicht anders, denn die beiden IBM-Stanzer waren dauernd besetzt. Die Jukis nicht, weil dauernd kaputt. Daher hatte ich ein Koefferchen mit Werkzeug dabei. Klar durfte man das nicht, aber wir haben die Dinger immer wieder hingedengelt und es hat uns nie jemand bei Schrauben erwischt. Nur hielten sie manchmal nicht die ganze Session durch und da musste man wissen, bis zu welcher noch alles heil rausgekommen war.

Nachdem selbst mein neuer Dual-Core bei einer HF Sim in die Knie ging, hatte ich mich eh entschlossen, das wie ueblich klassisch mit Scope und Loeterich zu machen.

Sims hatten wir aber schon 1986 auf PC gemacht. Noch schoen mit 5-1/4 Laufwerken, klacker-di-klack. Das war allerdings nicht SPICE, sondern ECA224.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Winfried Salomon schrieb:

[inkrementale Drehgeber auswerten]

Bedarf! Bitte posten.

Ohne Takt (oder Monoflop) habe ich noch keine sichere Lösung gesehen.

Servus

Oliver

--
Oliver Betz, Munich
despammed.com might be broken, use Reply-To:
Reply to
Oliver Betz

Hi Oliver,

Da schließ ich mich doch mal an. Auch wenn ich Microcontrollernet nicht so mag, wäre es dort in der Übersicht aber ganz gut aufgehoben, oder?

Marte

Reply to
Marte Schwarz

Oliver Betz schrieb:

=E4re ohne=20

=20

n=20

=20

Vielleicht =FCber einen Polarit=E4tswechsel des Signals das dann mit dem Vorhergehenden verglichen wird?

--=20 mfg hdw

Reply to
Horst-D.Winzler

"Horst-D.Winzler" schrieb:

[inkrementale Drehgeber auswerten]

und zwar _hier_, nicht im Buntforum.

Beschreibe Deine Lösung - ohne Takt und Timer - für "mit dem _Vorhergehenden_ verglichen".

Servus

Oliver

--
Oliver Betz, Munich
despammed.com might be broken, use Reply-To:
Reply to
Oliver Betz

Hallo Oliver,

Oliver Betz schrieb:

ok, hier ist die Schaltung. Es war sozusagen der Test zu meiner Behauptung in einer Diskussion vor langer Zeit im Mausnetz, man könne State-Machines auch ohne Takt entwerfen, also ausschließlich mit zustandsgesteuerten FFs und nicht mit flankengetriggerten. Hier habe ich einfache RS-FFs mit 2 Nand genommen, deren Eingänge low-aktiv sind. Die Diskussion war so heftig, daß ich es mir nicht nehmen ließ, zumindestens mir zu beweisen, daß ich recht hatte ;-). Das war mir damals nicht sofort möglich, da ich noch kein FPGA-Entwicklungssystem zur Verfügung hatte.

/S0 __ o-------------| | Q0 |& |o---o----------o .--|__| | | | | | | | | | .-)----------' | '----------. | | | __ | '----| | | |& |o---' o-------------|__|

/R0

(created by AACircuit v1.28.6 beta 04/19/05

formatting link

So ist das RS-FF definiert, seine Gleichung lautet:

Q0=S0+/mclr*/R0*Q0;

Syntax: '/' = not '*' = und '+' = oder '=' = logische Gleichheit, also keine sequentielle

Hier ist /mclr ein globaler low-aktiver Reset, wegen des Simulators und zur Sicherheit. Der Einfachheit halber gebe ich das File des GAL-Assemblers an, der diese Syntax hat:

Beginn------------------------------------------------------------------- GAL16V8 mouse State-Machine fuer Doppellichtschranke in Maus zur Richtungserkennung

28.9.2008 by WS ;%PINS R L gnd gnd mclr gnd gnd gnd gnd GND nc nc Q0 Q1 nc FREQ Q2 Q3 DIR VCC

;%LOGIC ; 5 RS-FFS:

;Q0=S0+/mclr*/R0*Q0; ;Q1=S1+/mclr*/R1*Q1; ;Q2=S2+/mclr*/R2*Q2; ;Q3=S3+/mclr*/R3*Q3;

;Eingaenge: ;/S0=R+/L+Q1+/Q3; ;/R0=L*/Q2;

;/S1=L+/R+/Q2; ;/R1=R*/Q3;

;/S2=/L+Q1+Q2+Q3; ;/R2=/(L*Q1+/R*/L*/Q1);

;/S3=/R+Q0+Q2+Q3; ;/R3=/(R*Q0+/R*/L*/Q0);

;interne Variablen und Klammern eliminiert: Q0=/R*L*/Q1*Q3+/mclr*L*/Q2*Q0; Q1=/L*R*Q2+/mclr*R*/Q3*Q1; Q2=L*/Q1*/Q2*/Q3+/mclr*Q2*/L*R+/mclr*Q2*/L*Q1+/mclr*Q2*/Q1*R+/mclr*Q2*/Q1*L; Q3=R*/Q0*/Q2*/Q3+/mclr*Q3*/R*L+/mclr*Q3*/R*Q0+/mclr*Q3*/Q0*R+/mclr*Q3*/Q0*L;

DIR=Q0+/mclr*/Q1*DIR; FREQ=R*L;

;%EQUATIONS

;%END

Ende---------------------------------------------------------------------------

Um die Schaltung nicht zeichnen zu müssen, habe ich sie in Form der Gleichungen angegeben, die für den Gal-Assembler allerdings in der ausgerechneten Form unten ohne ';' stehen müssen, weil der das selber nicht kann. R und L sind die Signale der Doppellichtschranke (ursprünglich low-aktiv, kann man bei Bedarf ändern), DIR ist das Richtungs-Bit, FREQ ist das Bit, aus dem die Geschwindigkeit der Maus aus der periodischen Funktion bestimmt werden kann.

Das mit der Maus habe ich aus dem Atari-Profibuch, dort steht genau das Zeitdiagramm drin, das Udo anfangs haben wollte, denn von Drehgebern weiß ich nichts.

Obige Schaltung wurde in verschiedenen Xilinx-FPGAs und CPLDs realisiert und mit Up-Down-Counter realisiert, die Hardware mit 2 Lichtschranken und CPLD existiert real und funktioniert. Der Counter (in VHDL) hat auch keinen Takt, sondern bekommt seine Zählimpulse mit der fallenden Flanke von Q0 und Q1 ;-). Damit sollten mal die aktuelle Anzahl von Personen bestimmt werden, die sich in einem Raum aufhalten, wobei immer wieder welche raus- oder reingehen.

Die ursprüngliche synchron mit flankengetriggerten D-FFs getaktete Schaltung habe ich einfach zum Überprüfen meiner Behauptung auf RS-FFs umgestrickt und sie funktioniert. Ich habe allerdings wegen des Aufwandes nicht jeden Zustand abgesichert, deshalb der globale Reset /mclr, um das Ganze aus einem toten Zyklus herausholen zu können. Auch bin ich mir bis heute immer noch nicht sicher, ob dieses Konzept immer sauber funktioniert. Ich weiß nämlich, daß asynchrone State-machines Glitches produzieren können und damit deren Funktionieren nicht garantiert ist. Nur kann ich das hier weder in der Praxis noch in der post-implement-Simulation feststellen, da ich es implizit im Entwurf ausgeschlossen habe.

ÚÄÄÄÄÄÄÄ? ÚÄÄÄÄÄÄÄ? ³ ÀÄÄÄÄÙ ³ ³ ³ ÚÄÄÄ? 16V8 ÃÄÄÄ? R ³ 01 ³ ³ 20 ³ Vcc ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? L ³ 02 ³ ³ 19 ³ DIR ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 03 ³ ³ 18 ³ Q3 ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 04 ³ ³ 17 ³ Q2 ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? MCLR ³ 05 ³ ³ 16 ³ FREQ ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 06 ³ ³ 15 ³ NC ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 07 ³ ³ 14 ³ Q1 ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 08 ³ ³ 13 ³ Q0 ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 09 ³ ³ 12 ³ NC ÀÄÄÄ? ÃÄÄÄÄÙ ÚÄÄÄ? ÃÄÄÄ? Gnd ³ 10 ³ ³ 11 ³ NC ÀÄÄÄ? ÃÄÄÄÄÙ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Laut Gal-Assembler paßt die Schaltung ohne Weiteres in ein GAL16V8 mit obiger PIN-Belegung (Bild im DOS-ASCII-Mode), und zwar braucht man auch nicht die eingebauten D-FFs, nur einige Rückkoppelungen. Getestet habe ich das mit GAL allerdings nicht.

mfg. Winfried

Reply to
Winfried Salomon

Oliver Betz schrieb:

Egal wo. Einem geschenkten Gaul schaut man nicht ins Maul.

Nun sei nicht kleinlich. Vielleicht meint er Verzögerungsleitungen bzw. Durchlaufzeit von Gattern? Ändert sich die Richtung während des Durchlaufs, ist das Ergebnis aber wieder mehr oder weniger falsch.

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Hallo Henry,

Henry Kiefer schrieb:

irgendwann verstaubt die Schaltung vollends und keiner würde je erfahren, daß sowas geht ;-).

Natürlich wird jeder Zustand mit dem vorhergehenden verglichen, die Schaltung hat ein Gedächtnis. Mit Laufzeiten wird hier nichts gemacht, die stören nur, müssen aber berücksichtigt werden, je kleiner desto besser.

Die Entscheidung für einen Richtungswechsel ist logisch vom Ablauf her festgelegt und funktioniert, ob in Udos's Sinne, muß er entscheiden. Die Schaltung hatte ich auf minimalen Gatteraufwand optimiert, sie ist deutlich kleiner als die synchrone Variante mit D-FFs, weicht aber in der Definition der Richtungsänderung leicht ab.

mfg. Winfried.

Reply to
Winfried Salomon

Winfried Salomon schrieb: [.....]

Ich vergaß /mclr zu berücksichtigen im RS-FF, es sieht so aus:

/S0 __ o-------------| | Q0 |& |o---o----------o .--|__| | | | | | | | | | .-)----------' | '----------. | | | __ | /mclr '----| | | o-------------|& |o---' o-------------|__|

/R0

(created by AACircuit v1.28.6 beta 04/19/05

formatting link

mfg. Winfried

Reply to
Winfried Salomon

Hallo Joerg,

Joerg schrieb:

ich selbst hatte nur ein paar Karten für 'ne Übung, aber da saß einer, der hatte große Stapel vor sich auf dem Tisch und ich konnte mir nicht vorstellen, wie man da noch die Übersicht behält.

Soweit ich mich erinnere, mußte ich für eine Debug-Session Karten neu stanzen und mich in die Schlange einreihen, also evtl. am nächsten Tag wiederkommen. Damals waren mir Computer aber ziemlich fremd und ich konnte mir den Einsatz für mich schlecht vorstellen. Zu der Zeit hatte ich als einer der letzten den Rechenschieber im Einsatz. Ich hab noch 'ne CPU von so einer alten Nixdorf-Anlage irgendwo liegen, mit roten Ringkernen als Ram mit Magnet-Speichern. Da sind viele gebundene Kabelstränge und Transistoren drauf.

Bei uns wird immer im Basisband simuliert, sonst ist man sofort an der Grenze, Rechenleistung hat man immer zuwenig, egal wie schnell die Rechner werden. Ich sehe auch oft, daß noch nicht mal das IEEE double precision floating point format (64 Bit) als Zahlendarstellung ausreicht oder man für die Berechnung eines Spektrums mehr Ram braucht als der Rechner hat. Ich glaube, Computersimulationen sind begrenzter als mancher so wahrhaben möchte.

Zu der Zeit hatte ich ein CP/M-System mit Z80 bei 5 MHz Takt und 64 KB Ram. An Spice und dergleichen war da nicht zu denken. Ich hatte damals Programme selbst geschrieben, als Compiler hatte ich glaube ich welche von Prospero, damit waren schon Filteroptimierungen möglich. So richtig interessant wurde das erst, als die Ataris aufkamen.

mfg Winfried

Reply to
Winfried Salomon

"Winfried Salomon" schrieb im Newsbeitrag news:gc5fao$1h8$01$ snipped-for-privacy@news.t-online.com...

1986 ?

Sicher doch.

Ach damals schon hat man Chips erst simuliert, dann gefertigt.

Hat allerdings trotz VAX 11/780 im Keller einige Zeit gedauert.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Winfried Salomon schrieb:

Die klassische Maus enthält zwei Drehgeber, welche von einer Kugel angetrieben werden.

Der Drehgeber mit Knopf zum Anfassen funktioniert genauso. Bei Grayhill enthält er zwei Lichtschranken und eine Lochscheibe, bei ALPS zwei Schaltkontakte und ein Zahnrad.

Gruß Patrick

Reply to
Patrick Schaefer

Winfried Salomon schrieb:

[...]

das ist das Problem. Wenn zwei Zustandsänderungen in einem Zeitabstand erfolgen, der in der Größenordnung der Durchlaufzeit der Logik liegt, mußt Du auf Races aufpassen.

Wenn das Encodersignal sowas _sicher_ nicht macht (Hysterese, begrenzte Geschwindigkeit), mag Deine Schaltung vielleicht funktionieren. Andernfalls hast Du eine gewisse Fehlerwahrscheinlichkeit.

Mit einem Timer ist die Verifikation viel einfacher.

Wenn Du keinen dauernd laufenden Takt magst, kannst Du auf Gleicheit mit dem zuletzt verarbeiteten Zustand prüfen und den Takt erst bei Ungleichheit auslösen.

Servus

Oliver

--
Oliver Betz, Munich
despammed.com might be broken, use Reply-To:
Reply to
Oliver Betz

Oliver Betz schrieb:

Das Problem der Metastabilität beim Übergang von asynchron auf synchrones System bleibt aber leider. Darüber findet man auch verdammt wenig Infos. Allenfalls mal z.B. zwei D-FFs hintereinander.

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Henry Kiefer schrieb:

[...races ohne Takt...]

die Wahrscheinlichkeit und Lebensdauer eines metastabilen Zustandes sind aber sehr gering. Gibt's das in der Realität (noch)?

Genau.

Servus

Oliver

--
Oliver Betz, Munich
despammed.com might be broken, use Reply-To:
Reply to
Oliver Betz

Oliver Betz schrieb:

Ich kann mich nur über eine kurze Abhandlung in wohl einem der Bitslice

2900 Datenbücher erinnern.

Und wozu wird dann ein Halbleiterhersteller unnötigerweise einen zweiten D-FF spendieren wollen?

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Ja.

Einiges findet man - heute nicht mehr im WEB. Ich habe selbst hier in Kiel den Versuchaufbau gesehen, wo ein Signal ein- mal direkt und einmal über eine U-förmige Leiterschleife von ca. 50 cm per mechanisch bedientem Schleifer verzögert auf ein AND-Gatter gelegt wurde. Das war so etwa 'Ende der 70er'...

Hilft _prinzipiell_ auch nicht.

Fast drei Jahre alst ist folgendes:

formatting link

Gruss, Holger

Reply to
Holger Petersen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.