mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CY7C68013A Probleme bei der Konfiguration


Autor: flo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.