Hallo,
die meisten Leute versuchen ja eine IDE-Festplatte an ihren 8-Bit AVR zu
hängen, ich interessiere mich eher für die andere Richtung: einen ATMega
(oder XMega) als ATA Gerät an einen PC hängen.
Mit 16bit Breite gehten zwar sicherlich einige Pins mehr drauf, aber
dafür sollte die Übertragung auch recht schnell gehen. Hat jemand grob
ne Idee was für Geschwindigkeiten da erreicht werden können bzw ob es
überhaupt möglich ist? Ein Dateisystem muss nicht unbedingt
implementiert werden, bzw man könnte ja ein simpels FAT16 simulieren mit
nur einer "Datei".
Die Anforderungen sind:
-viele Daten schnell an den PC übertragen (z.B. Übertragungen welche
über SPI kommen oder für den Anfang erstmal einfach direkt den Status
von einzelnen Pins)
-universelles Interface (über nen USB-IDE-Adapter bekommt man sowas auch
an sein Notebook problemlos dran)
-einigermaßen zuverlässige Datenübertragung (einzelne Daten können
verloren gehen - müssen halt über simples Protokoll erkannt werden)
Bei allen Ideen die mir einfallen dürfte der Flaschenhals wohl in der
Taktrate des AVRs liegen... 20MHz bzw 32MHz ist nicht gerade viel. Hat
jemand eine andere Idee für mein Unterfangen?
(Die AT90USB Chips als USB sind aufgrund der max. 16MHz wohl ungeeignet,
da der USB Bus eh keine "garantierte" Performance liefern kann)
Was meint ihr dazu?
Grüße Uli
PS: Falls ihr der überwältigenden Meinung seid, dass diese Idee
schwachsinnig ist, wie schaut dann z.b. eine Alternative über Ethernet
aus? (hat ja auch jeder PC)
AVR32 AP7 oder UC3A wären hierfür wohl die geeignetsten AVR-Kandidaten
wobei ich mich einfach nicht entscheiden könnte was nun besser geeignet
wäre (AP7 hat scheinbar eine deutlich höhere Taktfrequenz -> besser für
schnelle Datenübertragung&Verarbeitung?)
Naja, machbar ist das sicherlich, aber für schnelle universelle
Datenübertragung zum PC gibts USB. Das hat auch jeder PC und ist von
außen zugänglich. Wüsste nicht, wieso man sich den massiven Aufwand
machen sollte, eine ATA Festplatte nachzubilden, zumal du ja dann auch
eine Art Filesystem integrieren musst, und sicherstellen, dass da nix
passiert, wenn das OS gerade mal der Meinung ist, es müsse da irgendwas
auf der "Platte" arbeiten. Das wird eine never-ending-story. Was spricht
gegen eine direkte USB Verbindung? Wenn´s schnell gehn muss, gibts jetzt
den FT2232H oder halt klassisch den Cypress FX2, die schaffen 25 bzw.
40MB/s....mit ordentlicher Pufferung auch kontinuierlich.
Christian R. schrieb:
> zumal du ja dann auch> eine Art Filesystem integrieren musst, und sicherstellen, dass da nix> passiert, wenn das OS gerade mal der Meinung ist, es müsse da irgendwas> auf der "Platte" arbeiten.
Das ist das kleinste Problem. Hängt man die Festplatte nicht ein, greift
auch niemand drauf zu. Und greift man direkt auf Gerätedateien zu
(dev..), dann
(a) kommen blanke ATA-Kommandos an, je nach Treibermodul und
(b) braucht man keinerlei Dateisystem.
Sven P. schrieb:
> Christian R. schrieb:>> zumal du ja dann auch>> eine Art Filesystem integrieren musst, und sicherstellen, dass da nix>> passiert, wenn das OS gerade mal der Meinung ist, es müsse da irgendwas>> auf der "Platte" arbeiten.> Das ist das kleinste Problem. Hängt man die Festplatte nicht ein, greift> auch niemand drauf zu. Und greift man direkt auf Gerätedateien zu> (dev..), dann> (a) kommen blanke ATA-Kommandos an, je nach Treibermodul und> (b) braucht man keinerlei Dateisystem.
Sicher ist das machbar. Aber es könnte ja auch sein, dass er sein Gerät
an Windows hängen will, dann muss man schon mehr Aufwand treiben. Denn
CreateFile() Zugriffe auf block-devices auf so niedriger Ebene erfordern
Administratorrechte und sind mit vielen Fallstricken bedacht. Auch wenn
du das gerne hättest, die Welt besteht nicht nur aus Linux-Rechnern. ;)
Christian R. schrieb:
> Auch wenn> du das gerne hättest, die Welt besteht nicht nur aus Linux-Rechnern. ;)
Och, solange er nicht konkret wird, unterstell ich halt mal das, was am
einfachsten realisierbar wäre...
Hallo,
Danke für eure Antworten. Den FT2232H kannte ich vorher noch nicht.
ja Sven, ich hab da vorallem an die Unix/Linux Welt gedacht und das auch
schon versucht sanft anzudeuten in meinem Text. Daher die Phrase dass
Dateisystem wohl nicht nötig wäre.
Ich muss mir das ganze nochmal genauer durch den Kopf gehen lassen...
Der FT2232H klingt wirklich interessant - aber er scheint nicht gerade
einfach zu beschaffen sein, und für nen Preis von >20 Euro (Mouser) ist
er auch nicht gerade so günstig...
Grüße Uli
Ich sehe darin keinerlei Sinn. Wenns schnell gehen soll nimmst du einen
Controller mit FullSpeed USB oder einen großen Controller mit HighSpeed.
Hast du an deinem Controller Flashspeicher hängen oder eine HD? Oder
wieso sollte USB nicht reichen?
Der nackte Chip kostet bei Mouser nur €6,11 (zzgl. MwSt.). Der von dir
genannte Preis bezieht sich auf ein Modul mit dem FT2232H. Da ist der
Chip mit den erforderlichen externen Komponenten, einer USB-Buchse und
Stiftleisten schon auf eine Platine aufgelötet.