Hallo.
Ich möchte mit einem GAL einen Auf-/Abwärtszähler programmieren.
Diesen habe ich schon IC (74er) aufgebaut.
Nur fehlt mir jetzt der Ansatz, wie ich die JK-FF in dem GAL
unterbringe, mittels der Ersatzschaltung???
Außerdem möchte ich den Zähler über einen Dreh-Encoder steuern.
Also CW-Drehung = Vorwärts, CCW = Rückwärts.
Laut Datenblatt (Panasonic EVEP) wären ja für die Richtung die Ausgänge
A und B ausschlaggebend.
also wenn auf 00 10 folgt, dann vorwärts, wenn auf 00 01 folgt, dann
rückwärts, hab ich das richtig interpretiert?
Außerdem brauche ich ja noch einen Takt, da nehme ich denke ich mal den
Drehimpuls oder?
Also sobald ein Wechsel bei AB auftaucht = 1 Takt???
Vielen dank für die Hilfe
Was willst du denn mit den alten Stromfressern?
>Nur fehlt mir jetzt der Ansatz, wie ich die JK-FF in dem GAL>unterbringe, mittels der Ersatzschaltung???
GALs haben D-Flipflops in den OLMC. Mehr brauchst du auch nicht.
Deine Schaltung ergibt sich über die Syntax deines GAL Compilers.
Sprich: du gibts die Logikgleichungen ein. Für FF gibt es dann
eine entsprechende Syntax.
>Außerdem brauche ich ja noch einen Takt, da nehme ich denke ich mal den>Drehimpuls oder?
GALs haben einen Takteingang für die FF in den OLMC. Da legst du
deinen Takt an. Wenn der schön langsam ist kannst du damit gleich
auch noch entprellen;) Der Takt kommt NICHT vom Drehgeber. Zur Not
tut es bei dir wohl ein NE555.
Erstmal danke für die Antworten.
>> Was will ich mit den alten Stromfressern?
Ganz einfach, lernen. Sicherlich werde ich für spätere Projekte andere
Bausteine einsatzen, aber ich möchte das hier mit dem GAL verwirklichen.
>> FF in GAL
Das mit den D-FlipFlops ist gut, das hab ich garnicht bedacht, dass man
die ja mitbenutzen kann. Somit wäre dieses Kapitel erledigt.
>> Takt
Also nochmal zum Verständnis: Ich möchte über einen HANDBETRIEBENEN
Drehencoder den Zähler bedienen. Je nach Drehrichtung auf oder abwärts
zählen lassen.
Somit brauche ich doch den Drehimpils des Drehencoders als Takt oder
verstehe ich da was falsch?
@ Heiko Prinz (Gast)
>Also nochmal zum Verständnis: Ich möchte über einen HANDBETRIEBENEN>Drehencoder den Zähler bedienen. Je nach Drehrichtung auf oder abwärts>zählen lassen.
Schon klar.
>Somit brauche ich doch den Drehimpils des Drehencoders als Takt oder>verstehe ich da was falsch?
Ja, das verstehst du falsch. Lies den Artikel Drehgeber, odrt ist
ein Beispiel für deinen GAL in VHDL drin. Man braucht einen
zusätzlichen, normalen Takt, bei dir so 1 kHz ode so.
Zum Lernen würde ich dir auch vom GAL abraten. Kauf dir lieber bei
Pollin das CPLD Evalbaord.
http://www.pollin.de/shop/dt/MTM5OTgxOTk-/Bausaetze/Diverse/Bausatz_CPLD_Evaluation_Board.html
MFG
Falk
Okay.
Aber ich möchte das gern mit dem GAL lösen. Habe ja schon zwei
einfachere Schaltungen mit dem GAL erstellt.
Jetzt halt mal ne Etage komplizierter.
Ich werd mich mal jetzt nochmal der Lektüre widmen.
Vielen Dank nochmal.
Eine Frage noch:
Ich habe bereits einen Zähler (74LS93) und dazu einen Taktgeber (der
bringt momentan so ca. 7kHz.
Könnte ich den Drehencoder dort anschließen und damit zählen, also quasi
durch drehen?
So also die Schaltung in WinCUPL für den GAL hab ich soweit. War ja doch
ganz einfach mit den D-FlipFlps.
Aber mein Problem ist immer noch der Takt.
Das was am Dateneingang anliegt, wird doch mit jedem 0 am Takt am
Ausgang gespeichert.
Also muss ich ja prüfen, ob nach links oder rechts gedreht wurde, und
wenn das der Fall ist, den Takt zum Flipflop durchlassen, oder?
Der VHDL-Code aus dem Tutorial ist verständlich, wie jedoch setze ich
das mit WinCUPL um?
Vielen Dank
@ Heiko Prinz (Gast)
>CLK und CLK-EN muss ich ja verknüpfen mit UND und das dann an den CLK>des Zählers, oder?
NEIN! Clock Enable muss an das Clock Enable des Zählers. Die
Und-Verknüpfung geht zu 99% schief! Siehe Taktung FPGA/CPLD.
MFg
Falk
@ Heiko Prinz (Gast)
>Aber den Zähler realisiere ich ja auch mit dem GAL, wie mache ich das>dort mit dem CLK_EN.
Einfach ein Zählersymbol mit CE-Eingang nutzen?
Also ich bin jetzt mal auf den GAL22V10 gewechselt, sonst haut es nicht
hin mit den FF.
Ich will jetzt also den Decoder für den Drehgeber und den Zähler in den
einen GAL, jedoch finde ich nirgends im Datenblatt einen CE-Eingang bei
den FF.
@ Heiko Prinz (Gast)
>einen GAL, jedoch finde ich nirgends im Datenblatt einen CE-Eingang bei>den FF.
Den gibt es bei diesen ICs nicht direkt, der wird über die Produktterme
nachgebildet. Im Abel erreicht man den über die Endung .CE
MFG
Falk
Okay, danke für die Info. Wie kann ich das in dem GAL 22v10 realisieren?
Was sind Produktterme? Sind doch disjunktive, also UND-Verknüpfungen,
oder?
Was muss ich dann mit dem CE des Decoders UND-verknüpfen? Doch
eigentlich den Takt, weil der steuert ja die Ausgabe der FF, also wenn
CE = 1 und Takt = 1 dann sollen der Zähler zählen.
@ Heiko Prinz (Gast)
>Okay, danke für die Info. Wie kann ich das in dem GAL 22v10 realisieren?
Einfach die Logikgleichungen hinschreiben, den Rest macht die Software.
>Was sind Produktterme? Sind doch disjunktive, also UND-Verknüpfungen,>oder?
Ja.
>Was muss ich dann mit dem CE des Decoders UND-verknüpfen?
Gar nichts! Aber das CE muss das Zählen des Zählers steuern.
>CE = 1 und Takt = 1 dann sollen der Zähler zählen.
Ja, aber richtig. Siehe Taktung FPGA/CPLD.
MfG
Falk
Okay, also ich habe folgende Eingänge:
A und B vom Drehgeber
und clk von meinem externen Taktgeber
Die gehen zum Decoder.
Dort bekomme ich CE und Richtung.
Die gehen weiter zum Zähler,
Mit was muss ich das CE UND-verknüpfen? In dem Tutorial (Taktung FPGA)
ist ja noch nen Zähler zwischen geschaltet.
Das verstehe ich in meinem Beispiel nicht, da ich ja nur möchte, dass
gezählt wird, wenn der Drehgeber gedreht wird.