Hallo, ich versuche seit einiger Zeit mittels des Vinculum Chips einen USB Stick auszulesen. Ich steuere das Teil über eine SPI Schnittstelle mittels eines MPC Prozessors (32Bit, 128Mhz) an. Allerdings ist die ganze Sache furchtbar langsam. Ich müsste ca 1 MB an Daten auf den Stick schreiben. Im Moment dauert das geschlagene 3 Minuten. hat irgendwer Erfahrungen gemacht, wie man dem VNC1L etwas auf die Sprünge helfen kann ? Im Moment sieht es so aus, also könnte der VNC1L die Daten einfach nicht schneller auf den Stick schreiben. Die SPI Schnittstelle läuft mit 10,6 Mhz. Ach ja Firmware ist Version 3.65. Alternativ könnte ich auch einen anderen Chip verwenden, allerdings habe ich nichts ähnliches gefunden. Ein reiner USB Host Controller ist mir zu kompliziert, ich bräuchte etwas, was die Kommunikation mit dem Stick bereits soweit erledigt, dass ich nur noch das Dateisystem schreiben müsste (mir also quasi einen byteweisen Zugriff erlaubt). Falls jemand soetwas kennt, immer her damit. mfg
Mittlerweile habe ich eine App-Note von FTDI gefunden (NICHT auf der Vinculum Seite wie die restlichen App-Notes, sondern auf der FTDI Seite...) in der ein paar Geschwindigkeitsangaben enthalten sind. Laut derer schafft der Vinculum unter idealen Bedinungen im Mittel 25kByte/s. Bei Ansteuerung über SPI noch weniger. D.h. der Chip ist völlig ungeeignet um große Datenmengen zu speichern. Für Alternativen wäre ich offen :-) mfg
>Ein reiner USB Host Controller ist mir zu >kompliziert, ich bräuchte etwas, was die Kommunikation mit dem Stick >bereits soweit erledigt, dass ich nur noch das Dateisystem schreiben >müsste (mir also quasi einen byteweisen Zugriff erlaubt). Die VNC1L-Firmware (VDAP) muss da einiges leisten. Immerhin hat der VNC1L nur einen 8Bit Controller auf dem Chip, der das gesamte FAT-Handling realisieren muss. Dazu kommt noch das Monitorinterface im Kommandmode. Das Ergebnis ist relativ geringe Geschwindigkeit, Du brauchst dafür aber keine Kenntnisse vom FAT-Filesystem zu haben. Schneller gehts wahrscheinlich nur im Datamode, dann müsstest Du FAT allerdings auf Deinen System realisieren.
Ja schon klar, dass der VNC für seine Aufgabe eigentlich zu schwachbrüstig ist. Ihn im Datenmode ansteuern und die FAT selber machen möchte ich eigentlich nicht, da ich nicht glaube, dass das ganze viel schneller wird. Am liebsten wäre mir halt ein Chip, der eben das macht, sprich mir einfach erlaubt, byteweise auf einen USB Stick zu schreiben. Das FAT Dateisystem würde ich dann selber machen. Bei einem "normalen" USB Host Controller schreckt mich eben die ganze USB Treibergeschichte ab, das FAT Dateisystem wäre kein Problem. Mal abgesehen davon, dass ich keine Lust mehr auf den VNC habe, da die Firmware noch immer einige Fehler aufweist (die neueste Version erkennt z.B. die meisten meiner USB Sticks nicht mehr, mit der Vorgängerversion funktionierts...)
Das taugt alles nix. Da bleibt zur Zeit nur selber schreiben, wenn deine CPU einen USB Host Controller besitzt. Hier ist auch ein Tread, wo im Prinzip das gleiche rauskommt, das Ding geht nicht gescheit. Manchmal wird der USB Stick nicht erkannt usw. Wenns eine SD Card sein kann, dann ist es kein Problem. Ich kenn ja deine Entwicklungsumgebung nicht, aber bei Keil sind einige Beispiele, USB Host deveice, allerdings nur für die NXP's aber erstmal ohne FAT32. Wenn dir ein Blockdevice reicht, dann geht das ganz gut.
Das Problem ist, dass die CPU keinen USB Host-Controller besitzt und diese auch nicht mehr getauscht werden kann. Wenn dann müsste man einen USB Host Controller über SPI anbinden. Aber da schreckt dann eben die USB Treiberschicht ab, da mir das im Moment als zu viel Aufwand erscheint, sich da komplett von 0 einzuarbeiten. SD Karte wäre ne Alternative, es geht im Prinzip nur darum, Daten aufzuzeichnen und diese irgendwo zu speichern, so dass man sie leicht im Rechner wieder abrufen kann. Da das ganze dann allerdings kommerziell verwendet wird, muss ich erstmal die Lizenrechtlichen Fragen klären. Falls es eine möglichkeit gibt, so ne Speicherkarte ohne große Lizenzkosten zu verwenden, wäre das sicher ne Alternative. Vor allem da ne SD Karte ja sowieso ne SPI Schnittstelle hat, d.h. es wäre nur wenig zusätzliche Beschaltung notwendig.
Hier gibts fertige Software die wunderbar funktioniert und gut getestet ist: http://elm-chan.org/fsw/ff/00index_e.html Und hier den Benchmark dazu: http://elm-chan.org/fsw/ff/img/rwtest.png Ich erreiche damit mit einem AVR (10MHz) rund 100kByte/s beim Schreiben inkl. allem drumrum, also einlesen der Daten von einem externen IC usw. Mit einem schnelleren Controller mit höherem SPI Takt sollten je nach Karte deutlich mehr möglich sein.
Die Seite ist echt gut, nur muss halt die rechtliche Frage noch geklärt werden, da das ganze - wie bereits erwähnt - kommerziell verwendet wird. Soweit ich weiß hat Microsoft Patente auf FAT32, so dass man auch hier schauen müsste ob dies ein Problem darstellt. FAT ist ja afaik mittlerweile frei.
Wenn dir <4GB reichen, kannst du ja FAT32 deaktivieren (dafür gibts eine Option in der ff.h)
1 GB würde locker ausreichen, die Daten die geschrieben werden bewegen sich im Bereich von 1-2MB. Das ganze dann zwar evtl öfter, aber so viel wird das net. Ich schaus mir mal genauer an, danke!!
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.