Forum: PC-Programmierung USB+AVR als Datenträger unter XP


von Alexander Ernst (Gast)


Lesenswert?

Hallo Leute,

Ich habe einen AVR mit einem FT232BM zusammengelötet. WinXP erkennt den
Baustein und verlangt nach den Treibern. Einen Treiber mit virtuellem
COM-Port gibt es von FTDI.
Den brauche ich nicht, sondern ich will eine Befehlssequenz vom AVR zum
PC üertragen, so dass dieser mein Board als Datenträger ansieht (gleich
einem USB-Stick).
Über google habe ich schon mal versucht was rauszubekommen ist aber
hoffnungslos, da mir absolut der Background von USB und XP fehlt.
Welche exakten Suchbegriffe bringen mich zu dem gewünschten Ergebnis?
Wie sieht der "Talk" mit WinXP aus?
Hat jemand eine Buchempfehlung oder ein nettes PDF mit Infos?

Zähle auf euch,
Gruß Alex

von Tobi (Gast)


Lesenswert?

ich meine mal gelesen zu haben, dass man mit den ftdi chips kein mass
storage device (den begriff wirst du brauchen) aufbauen kannst. dafür
gibts aber chips von anderen herstellern

von Rufus T. Firefly (Gast)


Lesenswert?

Tobi hat recht. Das von den FTDI-Chips abgewickelte USB-Protokoll ist
fest in diese eingebaut und kann in keiner Weise modifiziert werden.

Um ein "Mass Storage Device" zu implementieren, benötigt man schon
einen programmierbaren USB-Devicecontroller, wie beispielsweise den
PDIUSBD12 von Philips.

Alternativ kann man auch einen der ganz neuen AVR-USB-Controller
AT76C712/713 verwenden - oder statt dessen die USB-Controller mit
MCS51-Kern von Cypress (EzUsb).

Du bist Dir im Klaren darüber, daß ein "Mass Storage Device" ein
blockorientiertes Device ist? Das Protokoll zwischen PC und Gerät
überträgt nur Blöcke (Sektoren) fester Größe; welche Bedeutung diese
Blöcke haben, weiß nur der PC, der das darin befindliche Dateisystem
nach Gutdünken verwaltet.

Wenn Dein Controller auf in diesem Dateisystem vorhandene Dateien
zugreifen soll, muss er einerseits das Dateisystem verstehen (was kein
so großes Problem ist, weil es ausreichend
FAT16/FAT32-Implementierungen im Quelltext gibt) und andererseits
sicherstellen, daß der PC das Dateisystem in einem definierten Zustand
überlassen hat. Vor allem darf Dein Controller das Dateisystem auf gar
keinen Fall beschreiben, wenn die ganze Chose mit dem PC verbunden ist,
da der PC nicht mitbekommt, wenn gewissermaßen hinter seinem Rücken im
Dateisystem 'rumgepfuscht wird.

Damit ist die Implementierung eines Mass Storage Devices in den meisten
Fällen eine nette, aber nur sehr eingeschränkt nutzbare Übung.

Um mit einem PC auf Dateieebene Daten austauschen zu können, ist USB
eine ungeeignete Schnittstelle; hier ist ein Netzwerkinterface und ein
FTP-, Web- oder SMB-Server deutlich geeigneter.

von Netbandit (Gast)


Lesenswert?

Gibt es eigendlich schon SMB Server welche mit µC's aufgebaut wurden?

von Rufus T. Firefly (Gast)


Lesenswert?

Wenn der µC ausreichend "fett" ist, um darauf ein Linux laufen zu
lassen, kann ich mir das gut vorstellen.

von Dirk (Gast)


Lesenswert?

"Wenn der µC ausreichend "fett" ist, um darauf ein Linux laufen zu
lassen, kann ich mir das gut vorstellen."

Was gibt es daran vorzustellen?
Samba lässt sich für jedes Linux-System kompilieren. Somit kann man SMB
auf jedem MC, für den es ein Linux gibt, implementieren, falls er
genügend Speicher zur Verfügung hat.

von Rufus T. Firefly (Gast)


Lesenswert?

"Samba lässt sich für jedes Linux-System kompilieren."
Da ich das einfach nicht mit Sicherheit weiß, schrob ich
vorsichtigerweise, daß ich's mir vorstellen könnte.

Kommt denn Samba auch mit den Einschränkungen des ucLinux zurecht
(Linux ohne virtuelle Speicherverwaltung, für Prozessoren ohne MMU)?

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.