"Konverter" USB/LAN mit ATXMega

  • Hallo zusammen,


    da hier ja inzwischen schon einige Projekte mit ATXMegas entstehen, habe ich mal eine Frage.
    Ich habe mehrere Geräte, die Mediendaten von USB-Storage-Devices lesen können (Fernseher, DVD-Player, Webby, ...). Meine Mediendaten liegen eigentlich fast alle auf meinem Heimserver und sind via LAN/WLAN verfügbar (NFS-Shares, SAMBA/CIFS-Shares).


    Mir schwebt vor eine art Konverter zu bauen, der sich den Geräten gegenüber als USB-Storage-Device verhält, aber die Daten nicht aus einem Flash liest, sondern über LAN oder WLAN eben von einem Share.


    LAN über ENC28J60 ist soweit kein Hexenwerk, Zugriff auf die Shares bekomme ich sicher auch noch hin mit etwas Einarbeitung. Aber hat schonmal jemand einen µC dem PC gegenüber als USB-Storage mit FAT32- oder NTFS-Filesystem gemeldet? Gibts da vielleicht sogar Fertiges/Appnotes (in C)? Oder meint ihr die Leistung des ATXMega reicht garnicht aus, um in akzeptabler Zugriffszeit die Daten vom LAN nach USB zu schaufeln?


    Ich hab bisher mit den _X_Megas noch nichts gemacht, hätte zur Zeit auch keinen passenden Programmer, aber das kann man ja ändern. Gibts da gar was mit USB _und_ Ethernet on Chip so dass man auf FT232 und ENC28J60 verzichten könnte? Im Idealfall sollte das ganze Buspowered laufen, wobei ich da bei den ENCs scharz sehe...


    Bin Dankbar für Meinungen und Tipps zum Thema.


    //EDIT: Mit ARM9 und Linux drauf könnte ich es mir natürlich deutlich einfacher machen, aber das will ich eigentlich nicht. Wo bleibt da die Herausforderung? ;)

  • Moin moin,


    'nen Pi hab ich mir ja eh schon bestellt, aber den nur als Konverter zu mißbrauchen ist irgendwie sinnfrei, der soll Medieplayer fürs Wohnzimmer werden. Wenn er denn irgendwann mal geliefert wird...


    Mal schauen wann ich Zeit finde mich näher mit dem Projekt zu befassen, stelle es mir insg. ganz spannend vor, da es mehrere Komponenten beinhaltet mit denen ich mich bislang nicht befasst hab: Zugriff auf Samba/CIFS, µC als USB-Storage, und insb. die Kombination aus beidem, also quasi das Dateisystem vom USB-Storage komplett dynamisch erzeugen...

  • Ein Samba / CIFS Client in einem ATXmega? Vergiss es! Bis du das Protokoll nachgebaut hast bist du ein alter Mann.


    Für machbar halte ich es ein ARM SOC zu nehmen, auf dem Linux läuft. Dann kann man das CIFS Problem mit Samba erschlagen. Was du dann machen müstest wäre den USB-OTG fähigen USB-Controler des SOC in den Client Modus bringen und ein USB-Storage device emulieren. Android kann das. Mein OpenMoko hat damals einen CDC Client emuliert. Also kann Linux das auch im Prinzip.

  • also quasi das Dateisystem vom USB-Storage komplett dynamisch erzeugen


    Na Dynamisch wird hier nichts. So weit ich weiß läuft es immer nach diesem Prinzip ab: Das OS ließt den Datenträger beim anstecken ein und verkürzt damit die Zugriffszeiten auf das Dateisystem. Außerdem geht es davon aus, dass es den alleinigen Schreibzugriff auf diesen Datenträger bekommt.
    Spielst du eine neue Datei auf deinen Server, sieht das OS/dein TV das gar nicht. Du müsstest dein USB Device abmelden und neu anmelden.
    Wo wir schon bei Handy sind, da ist das ähnlich. Du steckst es an den Rechner an und der Schreibzugriff auf Dateien auf dem Handy wird gesperrt.... (Wenn es eine MSC Device eröffnet)


    Grüße


    Basti

  • Ein Samba / CIFS Client in einem ATXmega? Vergiss es! Bis du das Protokoll nachgebaut hast bist du ein alter Mann.

    Ja ich fürchte da war ich etwas arg blauäugig. Ich konnte auch nicht viel zum Thema CIFS auf AVR finden, außer für AVR32 und da wären wir wieder bei Linux...


    Ich bin da aber auch nicht so festgelegt, zur Not nehme ich HTTP, dafür existieren bereits mehrere Client-Implementierungen.


    Na Dynamisch wird hier nichts.

    Ich meinte dynamisch in dem Sinne, dass ich die FAT beim Einschalten/Mounten des USB-Storage erzeuge. Dass sie dann quasi statisch bis zum Abschalten ist, ist klar. Muss mir nochmal Gedanken zum Adress-Mapping machen. Ich werd auf dem AVR kaum das Mapping für zig tausend Dateien vorhalten können...