www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR als IDE-Festplatte


Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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. ;)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

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

Autor: mkeller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kai F. (k-ozz)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.