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
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.
@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/
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.
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.
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
Ok... das ist mir neu, den Link hab ich ewig gesucht^^ Dann ist doch alles klar.
@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?
Das Interface läuft auch mit 3.3V, allerdings sollten dann die IO-Pins des Microcontrollers 5V tolerant sein. Ansonsten sollten noch Levelshifter dazwischen.
@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.
@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... ;)
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.
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.
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.