wer kennt sich aus mit Cypress EZ-USB FX1 (CY7C64713)?

OP #2478553
Lesenswert?

Kann mir vielleicht jemand die Zusammenhänge mit diesem Chip, seiner 
Firmware und PC-Treiber(n) erklären?

Hintergrund meiner Frage:
Im Welec-Oszilloskop ist so einer drin, bestimmt auch in vielen anderen 
Geräten und Entwicklungen. Er ist dort als serielle Schnittstelle und 
JTAG-Interface angeschlossen. Mit einer geeigneten Firmware kann man per 
JTAG das Gerät umprogrammieren, aber im Normalfall über die serielle mit 
ihm kommunizieren. Das geschieht merkwürdigerweise mit 57600 Baud, wir 
hätten's aber gern schneller (>115200). USB gibt ja durchaus mehr her.

Wie sage ich das der Firmware, oder brauche ich eine andere? Was für 
Firmwaren gibt es denn so? Sollte sich ja idealerweise gegenüber dem PC 
als normale USB CDC ausgeben und dort keine weiteren Treiber benötigen?

Jörg
OP #2479992
Lesenswert?

Danke, aber so tief wollte ich vorerst und möglichst nicht einsteigen. 
Gibt es nicht irgendwelche Firmware für solche Standardaufgaben?

Das Entwicklungspaket habe ich mir dann doch in der Tat installiert. Was 
dort an Beispielen zu finden war sieht mir noch deutlich rudimentärer 
aus.

Bin also immer noch an Tipps und Erfahrungen interessiert!

Jörg
Gast #2480989
Lesenswert?

Dein Problem stellt sich nicht. Wenn der USB-Chip einen virtuellen 
COM-Port zur Verfügung stellt, dann werden die Daten über USB mit max. 
Speed übertragen. Die Baudraten-Angabe ist nur interessant, falls wieder 
auf RS232 zurück synchronisiert werden muss (z.B. bei einem Konverter). 
Es macht ja auch keinen Sinn, nur weil die COM-Schnittstelle 9600 Baud 
vorgibt, den USB-Kanal herunterzudrosseln.
Gast #2481328
Lesenswert?

Ein Konverter funktioniert folgendermaßen: virtueller COM-Port am PC 
sendet über USB mit max. USB-Datenrate (egal, ob da 9600 Baud oder 
250000 Baud eingestellt sind). Die Baudrate wird quasi nur als Parameter 
im Bulk-Transfer eingebettet mitübergeben.
Der Konverter (also Dein Mikrocontroller) liest dann den Parameter und 
setzt dann die reale UART - über die es dann weiter geht - auf diese 
Baudrate (das gilt nat. auch für Parität, usw.).

Ist Deine Frage damit beantwortet, oder verstehe ich Deine Frage falsch?
Gast #2481398
Lesenswert?

Hallo Jörg,

es gibt im SFN unter Welec die Firmware von Slog, die das Oszi
in ein Altera-Developement-Board "umwandelt". Das funktioniert
und sein Programm (8051er Code) ist offen verfügbar, kann also
nach Belieben geändert werden. Ich habe bisher nur unter Linux
probiert, denke aber, dass es unter Win eher leichter ist.

Gruß, Guido
#2481413
Lesenswert?

Wie die RS232 Übertragung in etwa über USB läuft und welche 
Einschränkungen die USB Zeitscheiben von 1ms bei der 
Übertragungsgeschwindigkeit verursachen hat FTDI für seine USB 
Controller in
www.ftdichip.com/Documents/AppNotes/AN232-04.pdf
einigermassen anschaulich dargestellt.
Die Firmware auf dem Cypress Chip wird nicht wesentlich bessere Lösung 
bringen, solange auf einer Seite serielle RS232 steht, dies ist und 
bleibt eben eine byteweise Übertragung.
Wenn das ganze schneller gehen soll hilft nur FX Firmware und PC-Treiber 
selbst schreiben auf einander abstimmen, d.h immer möglichst koplette 
Datenblöcke mit mindestens 64 byte über USB senden.
OP #2483108
Lesenswert?

Hallo Guido,

beim Stöbern im SVN hatte ich vorgestern auch diese JTAG-Firmware 
gefunden, und eine weitere, "uart2usbbridge ". Sie entspricht einem 
SDK-Beispiel namens Bulk Loop, nur die ID Strings sind geändert. Keine 
Ahnung ob die schon funktionieren soll oder nur eine rohe Ausgangsbasis 
ist. Muß ich mir noch mal genauer anschauen, und USB lernen...

Jörg
#2483730
Lesenswert?

Christian R. schrieb:
> Das schöne an den FX1/FX2/FX3 Controllern ist, dass man kein USB können
> muss.

genau und dies führt dann zu jenen Lösungen wo immer nur ein Byte pro 
Frame übertragen wird um danach über den fehlenden Durchsatz zu 
diskutieren.

Die uralt Cypress App-Note reicht auch nur zum Tastaturanschluss.

Wenn man dann USB, auch die PC Treiber Seite,  verstanden hat wird man 
sehen dass Blöcke mit 131072 Bytes die Übertragung mit den geringsten 
Latenzzeiten haben. Nur so kommt man auf spezifizierten Datenraten.
#2483744
Lesenswert?

Jo, das ist natürlich klar. Wenn es aber unbedingt ein virtueller COM 
Port sein muss, und dann auch noch nach CDC, gibts halt die CDC-Klasse 
und die muss dann implementiert werden. Natürlich bremst man damit alles 
aus, aber sonst wirds halt kein COM-Port. Wir benutzen den FX2 im reinen 
BULK Modus mit dem Slave FIFO Interface und erreichen bei großen Blöcken 
die volle Geschwindigkeit von knapp über 40MB/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