Forum: Mikrocontroller und Digitale Elektronik CY7C68013A Probleme bei der Konfiguration


von flo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe Probleme die Datenübertragung FPGA -> 68013A -> PC zum laufen 
zu bekommen. Auf dem FPGA läuft eine Statemachine, die die Daten aus dem 
OUT-Fifo ausliest oder in den IN-Fifo hineinschreiben soll. Die 
Statemachine realisiert auch gleichzeitig den Fifo-Master. Die 
Statemachine schreibt einfach solange Daten in den IN-Fifo bis das 
Fullflag aktiv wird und liest so lange Daten aus dem OUT-Fifo bis das 
Emptyflag des jeweiligen Fifo aktiv wird. Der 68013A läuft im 
Asynchron-Slave-Fifo-Mode und soll die Daten nur durchreichen. Die EPs 
sind alle als Bulk-Endpoints konfiguriert.

Ich benutze die vorgebene Firmware von Cypress und habe sie nach meinen 
Bedürfnissen angepasst. Eigentlich sollte nur EP2 und EP6 verwendet 
werden. EP4 und EP8 habe ich nur zum testen hinzugefügt aber das 
funktioniert allerdings auch nicht.

Die ganze Geschichte sollte nun folgendermaßen funktionieren: EP2 ist 
als OUT-Endpoint konfiguriert und empfängt die Daten vom Host und die 
Statemachine im FPGA kann diese auch auslesen und weiter bearbeiten, 
soweit funktioniert das auch.
Wenn ich nun allerdings Daten vom FPGA in den EP6Fifo schreiben möchte 
wird der EP6Fifo niemals full. Das auslesen des Fifos per CyConsole 
endet auch in einem Transfer failed.
Auf dem Logicanalyzer sehe ich, dass die Daten auf dem FD-Bus anliegen, 
die Adresse von FIFOADR korrekt ist, SLOE=1(Output enable = inaktiv), 
SLCS=0(Chip Select = aktiv) und auch SLWR ewig hin und her toggelt. 
Normal müsste das EP6FIFO Full Flag nach 1024 Flanken aktiv werden 
(512Byte double buffered). Wird es aber leider nie. Also das Timing was 
mir mein LA ausspuckt sieht korrekt aus. Ich denke also das der CY68013 
einfach nicht korrekt mitarbeiten will und es irgendwie an der 
Konfiguration liegen muss.


Zum testen hab ich bereits einfach mal die Funktionen von EP2 und EP6 
getauscht, nun war also EP2 der IN-EP und EP6 der OUT-EP. In der 
Statemachine habe ich dann nur die jeweiligen Adressen geändert und 
ansonsten alles so gelassen.
Wenn ich nun Daten vom FPGA in den EP2Fifo geschrieben habe wurde das 
EP2Fifo Full Flag auch aktiv! Allerdings lese ich per CyConsole nur 512 
mal 0x00 pro Paket aus obwohl auf dem FD Bus eigentlich 0x66 dauerthaft 
anliegen.
EP6 Funktioniert nun auch nicht mehr. Die OUT-Übertragung über EP2 hat 
vorher ja korrekt funktioniert. Die Konfiguration habe ich für den EP6 
nun genau so übernommen. Wenn ich jetzt Daten von der CyConsole an den 
EP6 schicke wird das Empty Flag zwar inaktiv aber Daten lassen sich 
nicht auslesen. FIFOADR steht auf der korrekten Adresse, SLOE=aktiv, 
SLCS=aktiv, und SLRD toggelt aber auf dem FD-Bus tut sich gar nichts.


Ich beschäftige mich nun schon einige Zeit mit dem Problem aber ich 
komme im Moment einfach nicht weiter.
Mein geredet oben klingt sicher etwas wirr aber ich wollte einfach 
soviel Infomation wie möglich rüber bringen. Falls ich etwas vergessen 
habe gebt mir bitte bescheid.

Vielen Dank
Flo

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.