Nexys3 / CY7C680 / EEPROM Allgemeine Fragen

#3472832
Lesenswert?

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.
#3473028
Lesenswert?

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
#3473170
Lesenswert?

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.
#3473551
Lesenswert?

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.
#3475307
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren