Forum: Mikrocontroller und Digitale Elektronik AVR als IDE-Festplatte


von Uli (Gast)


Lesenswert?

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?)

von Christian R. (supachris)


Lesenswert?

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.

von Sven P. (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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. ;)

von Sven P. (Gast)


Lesenswert?

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...

von Uli (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

Naja, der Cypress wäre da selbst in der Segor-Apotheke noch etwas 
günstiger. Kostet da 16 Euro etwa.

von mkeller (Gast)


Lesenswert?

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?

von Kai F. (k-ozz)


Lesenswert?

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.

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.