mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Geschwindigkeit des VNC1L/Alternative


Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: !nullchecker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.