Hallo liebe Community, ich probiere gerade auf dem Nexys3 Board von Digilent den CY7C680 13A umzuprogrammieren. Ich habe noch nie mit dem CY7C680 gearbeitet und hätte ein paar allgemeine Fragen. Neben dem CY7C680 ist ein kleiner EEPROM (24AA128) verbaut. Diesen konnte ich erfolgreich auslesen (Intel HEX) und habe so vermutlich die Firmware von Digilent erhalten (man erkennt ein paar Interruptvektoren und ein 8051 Assembler kann daraus wieder sinnvolle Befehle machen) Nun möchte ich den Chip aber für die Datenübertragung nutzen und habe mich erst einmal in das Getting Started EZUSB FX2LP (AN66806) eingelesen. Nachdem ich nun eine Programmierung für den 8051 erstellt habe, möchte ich diese auf das Board laden. Das funktioniert soweit auch ohne Fehlermeldung. Nun steht in der Getting Started Anleitung, dass ich das Board Reseten soll 1. Was soll ich tun ? Der Reset Pin des CY7C680 hängt fest auf VCC und wenn ich den Strom entfernen, wird doch mein EEPROM wieder geladen. Ich hätte meiner Meinung nach nur folgende Möglichkeiten: 1. Ich überschreibe den Inhalt des EEPROMS (mit der Möglichkeit, dass ich nie wieder das Digilent Programm drauf bekomme) 2. Ich ziehe den SDA und SCL auf High und verhindere so die Erkennung des EEPROMs Kennt jemand noch eine andere Möglichkeit, das Programm auf dem CY7C680 zu laden? Am besten ohne Reset, und ohne das der EEPROM überschrieben wird. Mit freundlichen Grüßen AlexanderS.
Ich arbeite ziemlich viel mit dem CY7C68013A, so der volle Name, auch bekannt als FX2LP. Prinzipiell kannst du das Programm auch direkt in den RAM laden und von dort ausführen, egal, was im EEPROM ist. Wird auch beim Bootloader zum Programmieren des EEPROMs so gemacht. Am besten lädst du dir mal das komplette Entwicklungspaket von Cypress für den Chip herunter, da ist dann auch die CyConsole dabei, damit kannst du Programme auf den 8051 laden und starten oder direkt in das EEPROM. Hier findest du alle Infos: http://www.cypress.com/?rID=14321 zum Starten brauchst du das 51MB Paket ganz oben in der Liste. Da ist auch der KEIL Compiler samt Libraries usw. dabei. Dann ist auf jeden Fall das EZUSB Technical Reference Manual wichtig, denn die USB Peripherie des 8051 muss man erst mal durchschauen lernen: http://www.cypress.com/?id=193&rtID=117
Oh, das ist gut zu wissen. Dann kann ich ja in die Richtung weiter machen ohne mir Sorgen um mein Digilent Programm machen zu müssen. Die Toolchain habe ich mir schon heruntergeladen. Ich werde jetzt erst mal etwas mit dem GPIF Interface experimentieren. Mein Hauptziel ist es, eine schnelle Datenübertragung zwischen dem PC und meinem Spartan 6 zu realisieren. Bisher mache ich das über UART (2MBaud) aber ich würde das ganze gerne noch etwas beschleunigen.
Ich kenn das Board jetzt nicht genau, aber der FX2 ist für sowas ideal. Im Slave FIFO Modus ist die Ansteuerung sehr leicht. Aber man muss ein paar Sachen beachten: - 48MHz als IFCLK klappen nicht wirklich, die Setup- und Hold-Zeiten sind so blöde, dass man da immer was verletzt und Datenverlust hat. Wir arbeiten mit 25MHz externem IFCLK, das geht zuverlässig und ohne Timing-Fehler wenn wir den Takt 180° verschoben zu den Daten ausgeben. - Das Packet End ist bissl blöd, und je nach Einstellung für Zero Length Packets kanns da auch mal zu leeren Paketen führen. - Der cyusb.sys Treiber ist Schrott, erzeugt sogar manchmal bluescreens, wir arbeiten deshalb mit dem WinUSB Treiber, der funktioniert einwandfrei. Ich hatte hier irgendwo schon mal eine Beispielfirmware für den FX2 angehängt, musst du mal suchen.
Irgendwie mag mich dieser Chip nicht so recht. Ich arbeite gerade das AN66806 durch. Dort möchte ich dann einen Single Word Write Transaction an ein UART Modul in meinem FPGA machen. Dazu habe ich das Beispiel angepasst und denke auch es ist alles richig. Nun zu den zwei Problemen. Wenn ich uVision 2 das Projekt erstellen lasse, bricht er mit beim Usercommand zur Umwandlung von Bin to Hex mit Error 4 ab. Die erstellte Datei sieht aber trotzdem gut aus (stichprobenartiger Vergleich). Nun spiele ich die HEX Datei in den RAM. Der USB Link resettet sich und das Gerät meldet sich neu unter Windows an. Leider finde ich nun einfach keine Treiber. Die Gerätebeschreibung des Gerätes wird auch richtig ausgegeben, nur die PID und VID ist falsch. Diese ist USB\VID_0547&PID_1002 sollte aber eigentlich (laut Parameter in der dscr.a51) USB\VID_4705&PID_0210 sein. Für diese Kombination finde ich nur einen sehr alten Massenspeichergerätetreiber für Windows 98 - 2000. P.S Auch mit dem orginalen Beispiel der gleiche Fehler @ Christian R. Danke für deine Mühen. Meinst du zufällig die Firmware unter Beitrag "USB-Port auf Spartan 3E für Anwendung nutzen" bzw. diese http://www.mikrocontroller.net/attachment/47955/Sync_Bulk.c Gruß Alexander S.
Ja die meine ich. Und in der assembler Datei sind low und high byte immer verdreht drin, daher die falsche VID/PID.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.