Forum: Mikrocontroller und Digitale Elektronik Geschwindigkeit des VNC1L/Alternative


von Michael W. (miwitt001)


Lesenswert?

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

von Michael W. (miwitt001)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

>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.

von Michael W. (miwitt001)


Lesenswert?

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...)

von !nullchecker (Gast)


Lesenswert?

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.

von Michael W. (miwitt001)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Michael W. (miwitt001)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

Wenn dir <4GB reichen, kannst du ja FAT32 deaktivieren (dafür gibts eine 
Option in der ff.h)

von Michael W. (miwitt001)


Lesenswert?

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
Noch kein Account? Hier anmelden.