FT245 als Massenspeicher?

Gast #130159
Lesenswert?

Hallo,

ich hab jetzt alle Möglichkeiten eine USB-Verbindung zum PC aufzubauen
durchgespielt und letztendlich eingesehen, das der FT245 für meinen
Fall am einfachsten zu Handhaben ist. Mich würd jetzt nur noch
interessieren, ob man dem PC mit dem FT245 ein Massenspeichergerät
"vorspielen" kann. Falls es nicht geht werd ich wohl oder übel ein
Prog selber schreiben müssen, das die Files auf das Board überträgt ...
mpf

MFG

Hannes
Gast #130160
Lesenswert?

Nein, das vom FT245 implementierte USB-Protokoll kann nicht geändert
werden, so daß damit kein "Mass Storage Device" implementiert werden
kann.

Wenn es bei Deinem Gerät eine Festplatte/CF-Karte vorhanden ist und es
nur um die Übertragung von Dateien geht, dann lohnt es sich, einen
Cypress-Chip näher anzusehen (siehe Thread "USB-Massenspeicher").
Dieser ist eine USB2-IDE-Bridge und übernimmt ohne weitere
Programmierung das gesamte USB-Festplattenhandling.
"Deine" Aufgabe ist's dann nur noch, herauszufinden, ob gerade eine
Verbindung zum USB-Host besteht (und dann die Füße stillzuhalten) und
im anderen Falle mit von Dir selbst zu schreibenden Dateisystemtreibern
auf die IDE-Platte/CF-Karte zuzugreifen.
Gast #130166
Lesenswert?

Daß man mit USB-Interface-Chips wie dem FT245/232 kein USB Mass Storage
Device implementieren kann, liegt nicht am Treiber (auf der PC-Seite),
denn den würde man bei einem MSD ja gar nicht benutzen.

Vielmehr liegt das daran, daß diese Chips "abgeschlossene"
USB-Devices sind, bei denen man als Anwender die eingebaute
USB-Firmware überhaupt nicht beeinflussen kann.

Um selbst irgendwelche USB-Funktionalitäten zu implementieren, muss man
ein USB-Interface-IC verwenden, bei dem man den USB Device Stack selbst
in der Hand hat - wo dieser also auf einem selbstprogrammierten
Microcontroller läuft.
Die FTxxx-ICs sind gewissermaßen "black boxes", in denen ein nicht
umprogrammierbarer Microcontroller vor sich hin werkelt.

Realistische Chancen hat man entweder mit Microcontrollern mit
eingebautem USB-Interface (Cypress EzUSB) oder aber mit externen
USB-Interfaces wie dem Philips PDIUSBD11/12.

Darauf aufbauend ein Mass Storage Device aufzubauen, ist allerdings
eine heftige Aufgabe - wie in einem anderen ausführlichem Thread
bereits ausführlich diskutiert, implementiert ein MSD nur einen
einfachen Blockzugriff auf ein (großes) Speichermedium. Die Verwaltung
des Dateisystems darauf wird vom angeschlossenen PC übernommen.
Daher darf dieses nur dann mit Inhalten gefüllt werden, wenn es nicht
mit einem PC verbunden ist oder aber nur vom PC über USB.
Ein einfacher dauerhafter Dateizugriff der Art "Microcontroller
schreibt Datei in Speicher, PC kann diese über USB sehen" ist mit
einem MSD nicht realisierbar.
Das entspräche dem gleichzeitigen Anschluss einer Festplatte an zwei
PCs - hier bekommt der eine PC auch nicht mit, daß ihm hinterrücks die
Daten geändert werden, wenn der andere PC auf die Platte schreibt.

Solche Lösungen sind nur mit Systemen umsetzbar, bei denen das
Dateisystem vom Microcontroller und eben nicht vom PC gehandhabt wird.
Das ist beispielsweise bei embedded Web-Servern der Fall, diese aber
werden nicht via USB, sondern über Netzwerkinterfaces angeschlossen.

Der von mir früher in diesem Thread erwähnte Cypress-Controller ist nur
dann zu nutzen, wenn das betreffende Gerät nur gelegentlich mit einem PC
verbunden wird - wie es bei festplattenbasierten mp3-Playern ja nun der
Fall ist.
Ein transparenter Dateisystemzugriff ist auch hier aus gerade erwähnten
Gründen nicht möglich.

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