Forum: Mikrocontroller und Digitale Elektronik Festplatte mit Mikrocontroller ansteuern


von Thomas (Gast)


Lesenswert?

Hallo,

ich möchte mit einem Mikrocontroller eine (IDE-)Festplatte ansteuern. 
Ist sowas möglich?

Ich weiß, dass es auch andere Möglichkeiten gibt große Datenmengen 
abzuspeichern, aber ich möchte es gerne mal mit der Festplatte 
probieren.

Wenn ihr also entsprechende Tutorials, Anleitungen oder ähnliches kennt, 
meldet euch mal bitte.


Danke,
Thomas

von Tobias P. (hubertus)


Lesenswert?

Das ist ziemlich einfach.
Hier im Forum gibts massig Threads dazu (wenn ich mich recht entsinne 
sogar noch einen von mir).
Am besten lädst du dir mal die ATA-Spezifikationen runter 
(http://www.t10.org/t13/ glaub ich).
Dort ist die Schnittstelle im einzelnen beschrieben.

von Sigint 112 (sigint)


Lesenswert?

@Thomas:
   Schau dir lieber MMC - Karten an: Die sind preiswerter, kleiner, 
benötigen weniger Strom, sind schockresistent, schneller beim lesen, 
haben eine SPI - Schnittstelle und bieten einen offenen Standard. Zudem 
findest du massenweise Software im Netz.

Gruß,
  SIGINT

P.S.: Ohhh, du wolltest ja unbedingt eine IDE-Festplatte anteuern...

schau dir mal den YAMPP an: http://www.myplace.nu/mp3/

von Sven P. (Gast)


Lesenswert?

Vom Prinzip her funktioniert IDE ziemlich einfach, ist sogar noch nen 
steinzeitliches 5V-Interface. Ich hab hier selbst son Kabelknäuel 
rumliegen, um einen ATmega16 an IDE zu kriegen -- es funktioniert.

Problem ist aber: Die ATA-Spezifikationen musst du kaufen oder du musst 
dich mit total veralteten Datenblättern zufrieden geben. Ich hab 
letzteres getan (war mir doch zu teuer zum Experimentieren...) -- 
jedenfalls funktioniert die Initialisierung nicht 100%ig und ATAPI (also 
CDROM-Laufwerke) gehen garnicht. D.h., ich kann die Schublade vom AVR 
aus auf- und zumachen, aber Audio abspielen geht net. Die Festplatte 
zumindest konnte ich dazu bewegen, den Kopf zu bewegen ("Seek") und 
Daten zu schreiben und zu lesen.

von Kai F. (k-ozz)


Lesenswert?

Also das man die ATA-Spezifikation kaufen muß stimmt so absolut nicht!

Den ATA/ATAPI-7 Standard (aktuell) kann man hier downloaden:

http://www.t13.org/FTPSite/Default.aspx

Dort auf den Link ftp://ftp.t13.org klinken. Die drei relevanten 
PDF-Dateien findet man im Ordner ATA-ATAPI-7toINCITS.

von Kai F. (k-ozz)


Lesenswert?

Habe jetzt auch den direkten Downloadlink für die drei Dokumente 
wiedergefunden:

Volume 1 - Register Delivered Command Set, Logical
Register Set:
http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf

Volume 2 - Parallel Transport Protocols and Physical
Interconnect:
http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v2r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_2.pdf

Volume 3 - Serial Transport Protocols and Physical
Interconnect
http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v3r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_3.pdf

von Sven P. (Gast)


Lesenswert?

Ok... das ist mir neu, den Link hab ich ewig gesucht^^
Dann ist doch alles klar.

von Tobias P. (hubertus)


Lesenswert?

@Sigint:
Was hast du bloss gegen Festplatten? Ich finde es völlig i.O. wenn 
jemand an einem Mikrocontroller ne Festplatte betreiben will. Warum auch 
nicht?

@Sven Pauli:
> ist sogar noch nen steinzeitliches 5V-Interface
Gibt es irgend eine Möglichkeit, das ganze mit 3.3V zu betreiben? Nur so 
aus neugier... Die grösseren Microcontroller haben ja oftmals 3.3V. 
Besonders, wenn man noch mit nem FPGA arbeitet, kommt man um die 3.3V 
erst recht nicht herum. Läuft das Interface absolut nur mit 5V?

von Kai F. (k-ozz)


Lesenswert?

Das Interface läuft auch mit 3.3V, allerdings sollten dann die IO-Pins 
des Microcontrollers 5V tolerant sein. Ansonsten sollten noch 
Levelshifter dazwischen.

von Rooney B. (rooney)


Lesenswert?

@Tobias:
Ich nehme stark an, du benötigst das für deinen MP3 Player in dem 
anderen Thread?
Festplatten anzusteuern ist nicht das Problem, problematisch oder sagen 
wir besser schwieriger, ist die Implementierung des Dateisystems. In 
Frage kommt ja fast ohnehin nur FAT32. Hierzu gibt es aber reichlich 
Code im Internet, Frage ist nur ob dieser effizient genug ist. Je mehr 
Funktionen implementiert werden desto mehr Speicher wird benötigt. 
Analog dazu wird natürlich mehr Rechenleistung gefordert.

IAR hat vor kurzem ein eigenes Betriebssystem für AT91 Controller 
rausgebracht. Ich habe mal kurz reingeschnuppert und sieht echt gut aus. 
Das Betriebssystem hat nämlich auch Support für FAT32 und USB.

USB macht natürlich sehr viel Sinn, immerhin willst die Daten ja auf den 
MP3 Player bekommen. Der ARM Controller + Speicher wird als 
Wechseldatenträger unter Windows erkannt. Datein einfach via Drag and 
Drop auf den Controller laden und das Betriebssystem übernimmt alles für 
dich. Seeeehhhhhhrrrrr empfehlenswert. Das einzige was du machen musst, 
ist die Low-Level Treiber für die HDD zu schreiben.

Wenn du also den Controller noch nicht ausgewählt hast und derzeit nur 
Überlegungen machst wie du was realisieren kannst, dann würd ich vorerst 
mal abwiegen was du am Schluss in Händen halten kannst.

Einen MP3 Player mit einem 8Bit Controller zu machen ist zwar nicht 
unbedingt ein Kinderspiel aber es ist möglich. Habe selbst so etwas 
gemacht und bin äußerst zufrieden damit. Möchtest du jedoch noch ein 
fettes Display ansteuern, das auch grafische Visualisierung ermöglicht, 
Streaming oder ähnliches integrieren dann würd ich eher zu einem 32Bit 
ARM greifen.
AT91SAM7SE256 hat bereits ein externes Speicherinterface. Damit lässt 
sich sicherlich eine Festplatte ansteuern.
AT91SAM7X256 hat integriertes Ethernet.

von Tobias P. (hubertus)


Lesenswert?

@Kai:
Du meinst, das Interface erkennt einen 3.3V-Pegel als logisch 1, gibt 
aber selbst 5V-Pegel aus?
Wäre natürlich genial wenn man das irgendwie auf 3.3V runter brächte, 
Levelshifter mag ich nicht so (naja, es braucht dann immerhin mindestens 
... ca. 20 oder so?!).

@Rooney Bob:
Der uC + Betriebssystem, von dem du erzählst, klingt sehr interessant. 
Ist sicher mal interessant!
Aber das BS wird wohl eine Unsumme kosten, oder wie?
Display muss schon sein; erst dachte ich an ein Dotmatrix (was ja auch 
reichen würde). Aber irgendwie ist das ein bisschen popelig, und da ich 
ja noch ein 2.4" Farb-TFT mit Controller rumliegen habe... ;)

von Rooney B. (rooney)


Lesenswert?

5V tolerant bedeutet, dass am Eingang 5V (meist bei 3.3V Logik) anliegen 
darf ohne den Eingang zu zerstören. 74LVC ist beispielsweise 5V tolerant 
am Eingang, der Ausgang selbst ist 3.3V.

Du kannst anstelle eines Levelshifters auch Serienwiderstände verwenden. 
Die interne Diode am Eingang begrenzt das Eingangssignal. Du musst aber 
darauf achten, dass der Widerstand entsprechend groß ist, damit die 
Diode nicht zerstört wird.
Wenn es sich um "High-Speed" Signale handelt würde ich dennoch 
Levelshifter nehmen (74LVC, 74HCT).

Wieviel das Betriebssystem kostet kann ich nicht genau sagen, es wird 
jedenfalls nicht billig sein. Ich überlege jedoch bereits ob ich es 
nicht kaufen sollte... Vielleicht kann man mit IAR verhandeln ob es für 
Studenten oder Privatpersonen beispielsweise andere Preise gibt.

von MC (Gast)


Lesenswert?

Es gibt 8051 Derivate mit eingebautem IDE-Interface. Zusätzlich ist ein 
MMC-Interface in Hardware auch noch dabei. USB, Soundschnittstelle,... 
ist auch noch in Hardware da.
Atmel produziert davon auch welche. Ich glaub sogar R******* hat einen 
im Angebot. Allerdings nicht als DIL oder PLCC.

von Sigint 112 (sigint)


Lesenswert?

@Tobias: Ich hab nix gegen IDE-Festplatten, aber MMC-Karten sind in fast 
allen Punkten besser als eine Festplatte. (OK, es gibt auch 
Schattenseiten)
Der preis dürfte allerdings der entscheidende Punkt sein: Kleine Karten 
bekommt man hinterhergeschmissen.

Die Sache mit dem AT91 ist wirklich interesannt, da man hierbei auch 
einen Software MP3-Decoder nutzen können sollte. Alternativ kann man 
auch TREMOR (Vorbis) einsetzen.

Gruß,
  SIGINT

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.