Forum: FPGA, VHDL & Co. Schaltwerk mit Gal 16V8


von matze (Gast)


Lesenswert?

Servus zusamm....

Ich habe folgendes Problem. Ich möchte mit einem Gal ein Schieberegister 
(74HCT4094) und einen AD Wandler (TLC 549) steuern. Der AD Wandler 
braucht acht Takte damit sein binärer Wert komplett ausgegeben ist. Ich 
habe jetzt im Gal ein Zähler mit q3,q2,q1,q0 realisiert. dieser zählt 
bis acht und fängt wieder von vorne an. mein problem ist jetzt das meine 
ausgänge cs und cp pro Zahl einmal auf 1 und einmal auf 0 gehen sollen. 
hab keine ahnung wie ich das in meiner wahrheitstabelle verarbeiten 
soll?? Bin für jede Hilfe dankbar...

von tobias (Gast)


Lesenswert?

lass ihn doch einfach bis 16 zählen von 0 bis 7 geht cs und cp auf
1 und von 8 bis 15 auf 0.

von J. S. (engineer) Benutzerseite


Lesenswert?

Ich glaube das ist eher anders herum gemeint: Ein Doppelwechsel je 
AD-Clock, oder? Damit braucht man einen Zähler bis 15 (deine 4 FFs) 
wobei das FF 2 (also die 1) den Takt des AD-Conversters treiben muss. 
Eigentlich sind es nur 4 JK-FFs, wobei das erste das toggelnde ist

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

ich würde es mindestens für die Vorüberlegung als statemachine 
aufzeichnen, die Flipflop-Ausgänge schon so sinnvoll verwendet, damit es 
reinpasst. Acht Zählerwerte mit je zwei Ausgangskonfigurationen ergibt 
jedenfalls auf den ersten Blick 16 Zustände, dafür würden 4 Fipflops 
gerade reichen.

von matze (Gast)


Lesenswert?

@ all danke für eure hilfe

@ tobias

das mit dem zählen funktioniert nicht. kann bei 4 bit nur bis 16 zählen, 
da wären aber erst die 8 bit gesendet. danach muss aber noch eine neue 
wandlung eingeleitet werden und strobe vom schieberegister muss auch 
danach noch gesetzt werden. Dafür brauch ich fünf bit und das ist mir 
zuviel.

@ jürgen

Ein Doppelwechsel is das was ich meine....

@ Christoph

hab schon n folgediagramm gemacht.. aber da ergibt sich folgendes 
problem..

aus 0000 folgt CP 1 und
aus 0000 folgt CP 1.

damit ist cp immer 1. brauche aber eine unterbrechung sonst schaltet der 
ad wandler nicht weiter....

ich habe jetzt einfach den takt doppelt genutzt... einmal schaltet der 
synchron den zähler und zum anderen liegt er an meinen ausgängen cp und 
cs.

von matze (Gast)


Lesenswert?

ich mein natürlich

aus 0000 folgt cp 1 und
aus 0000 folgt cp 0!

von matze (Gast)


Angehängte Dateien:

Lesenswert?

brauce nochmal hilfe....
im anhang findt ihr mein diagramm was ispLever erstellt. ich habe eine 
spitze  für dataout wenn strobe auf low geht, und die kriege ich nicht 
weg...theroretisch dürfte die nicht auftauchen weil weder q0,q1,q2 noch 
q3 gesetzt ist.

hier mal meine gleichungen

0  = Q1&Q2&Q3;
Q1  = !Q1&Q2&Q3+Q1&!Q2+Q1&!Q3;
Q2  = Q2&!Q3+!Q2&Q3;
Q3  = !Q0&!Q3+Q2&!Q3+Q1&!Q3;

CSADW_STROBE = Q0&!TAKT2;
CP_DATAOUT = Q2&TAKT2+Q0&TAKT2+Q3&TAKT2+Q1&TAKT2;

von tobias (Gast)


Lesenswert?

Ehrlich gesagt habe ich demnach immer noch nicht verstanden was deine 
Statemaschine machen soll. Zeichne doch einfach mal nur das Wavediagramm 
von
CS, CP und Clock auf so dass man daraus eine Lösung ableiten kann.
Je komplexer das ganze ist, desto mehr Register werden benötigt werden. 
Da wird man nicht herumkommen können. Evtl. bietet sich dann doch eher 
ein CPLD an.

von matze (Gast)


Angehängte Dateien:

Lesenswert?

Das Diagramm kann man dem Datenblatt des TLC 549 entnehmen.
Da sieht man wie io clock und cs gestuert werden müssen damit das 
serielle byte ausgegeben wird. und das ist alles was ich machen 
möchte...
er macht das ja auch soweit, nur das ich diese eine spitze hab die ich 
mir nicht erklären kann.

von tobias (Gast)


Lesenswert?

Die Spitze sollte dich nicht stören, die ist in der Praxis nicht mehr 
vorhanden. Jetzt Brenn den GAL und schau dir das mit dem Oszilloskop an.
Alles wird gut, wirst schon sehen.


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.