Forum: Mikrocontroller und Digitale Elektronik IDE Festplatte ansteuern


von ameise123 (Gast)


Lesenswert?

hoi,

hab schon gesehen das es einiges an threads hier gibt, aber ich will 
keine speziellen daten lesen oder schreiben, sondern nur zu demozwecken 
die scheiben in rotation versetzen und sehen wie sich der 
lese/schreibkopf bewegt. habe hier noch einen atmega32 rumfliegen, mit 
welchem ich die nötigen signale an die ide schnittstelle schicken 
könnte. mich würde einfach nur interessieren, welche minimal 
ansteuerungslogik ich brauche, um den arm von a nach b und evtl 
zurückzubewegen, ob er dabei schreibt oder liest oder nur luft verdrängt 
ist mir ziemlich egal.


danke soweit
benni

von (prx) A. K. (prx)


Lesenswert?

Wie willst du denn die Bewegung sehen? Üblicherweise ist eine Platte 
geschlossen und man sieht nichts.

Und wenn du sie aufmachst, dann könnte bald auch nichts mehr zu sehen 
sein weil die Platte nicht mehr ansprechbar ist. Weil die Firmware ohne 
funktionsfähigen Zugriff auf die Disks möglicherweise den Betrieb 
einstellt.

Mit uralten MFM-Disks klappt sowas mangels Eigenintelligenz besser.

von ameise123 (Gast)


Lesenswert?

ja natürlich mit offenem gehäuse, und als staubschutz wohl eine 
abdeckung aus plexi o.ä.

von Barny F. (barny)


Lesenswert?

Zum Abnehmen der orinalen Abdeckung und montieren des Plexuglases hast 
du sicher einen Reinstraum?
Denn ohne diesen kommt schon beim Wechseln der Abdeckung etwas Staub auf 
die Platte, welche diese über kurz oder lang zerstöhrt.

von Benedikt K. (benedikt)


Lesenswert?

Ist doch egal, wenn es nur darum geht dass man den Kopf sich bewegen 
sieht.

@ ameise123
Wenn du basteln willst, könntest du einen kleinen BLDC Controller bauen 
und auch den Kopf direkt per µC ansteuern.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Also ich hab mich gerade vor kurzem durch die IDE Thematik "gequält". 
Wenn du keine Daten lesen oder schreiben willst (bzw. auf die Hälfte der 
Kapazität verzichtest) reicht es wenn du die HD mit 8 Bit ansteuest, 
also ggf reicht dir auch schon ein Mega48. Neben den unteren 8bit des 
Datenbus brauchst du dann nurnoch /WR /RD  CS0 CS1 (wobei du diese auf 
festen Pegel legen kannst zur Not) und die A0-A2. Je nach Alter der 
Platte KÖNNTE es klappen mittels des SEEK Kommandos den kopf in gewissen 
Grenzen zu steuern.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Vieleicht ist dies ja was für dich.

http://www.spaceflakes.de/index.php?index=691&page=0

Sven

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

Läubi .. schrieb:
> Also ich hab mich gerade vor kurzem durch die IDE Thematik "gequält".
> Wenn du keine Daten lesen oder schreiben willst (bzw. auf die Hälfte der
> Kapazität verzichtest) reicht es wenn du die HD mit 8 Bit ansteuest,
> also ggf reicht dir auch schon ein Mega48. Neben den unteren 8bit des
> Datenbus brauchst du dann nurnoch /WR /RD  CS0 CS1 (wobei du diese auf
> festen Pegel legen kannst zur Not) und die A0-A2. Je nach Alter der
> Platte KÖNNTE es klappen mittels des SEEK Kommandos den kopf in gewissen
> Grenzen zu steuern.

so habe mal die verkabelung vorgenommen und die 15 pins + ground 
verdrahtet.
setze ich nun /WR/RD CS0 CS1 alle auf high pegel? mit A0...A2 steuere 
ich die Adressen, also die position oder? den datenbus beschalte ich 
dann willkürlich.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> setze ich nun /WR/RD CS0 CS1 alle auf high pegel?

Äh ... nein.


> mit A0...A2 steuere ich die Adressen, also die position oder?

Glaubst Du, daß eine Festplatte nur 8 Spuren hat?

Auch nein.

Du wirst nicht umhinkommen, die ATA-Spezifikation durchzulesen.

Und selbst wenn Du erfolgreich ATA-Kommandos an die Platte sendest, wird 
sie nicht unbedingt den Kopf so bewegen, wie Du Dir das vorstellst, denn 
sie wird einmal ausgelesene Daten im Cache halten und beim 
entsprechenden Lesekommando nur den Cacheinhalt liefern.

Für Dein Projekt brauchst Du eine Festplatte mit ganz erheblich weniger 
Eigenintelligenz. Eine alte MFM- oder RLL-Festplatte mit ST506-Interface 
ist da viel besser geeignet, Beispiele für so etwas sind die berühmte 
ST225, ST251, ST4096 oder ST4144R von Seagate.

Hier ein eBay-Link auf so ein Schätzchen:

http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=170347819795

von vlad (Gast)


Lesenswert?

wenn er wild irgend welche blöcke anfordert, woher soll der Cache dann 
die Daten haben?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wenn man nur irgeneine Bewegung haben will sollte das schon gehen, zur 
Not in einer Schleife einfach von Block 1 --- n alles auslesen, ggf. 
Softreset oder sogar zufällig Daten schreiben lassen.
Dafür müßte man aber halt wissen was du genau vorhast.

von SuperUser (Gast)


Lesenswert?

Wenn die Platte eh schon offen ist, vielleicht kannst du besser den 
Motor und Arm direkt ansteuern? Etwas die Platine umbauen, IDE Signale 
wegkratzen und Motor-Signale auf den Verbinder legen....

von ameise (Gast)


Lesenswert?

ich möchte eigentlich nichts anderes, als die festplatte in rotation 
versetzen und den arm willkürlich und sinnlos hin und her bewegen, dabei 
ist es mir egal wohin er schreibt oder von wo er liest oder sonst was, 
es geht hier wirklich nur um demonstrationszwecke, um die meschanik zu 
demonstrieren.

@superuser: die idee ist mir heute auch gekommen, habe mich dann mal mit 
der steuerung des armes befasst und ich denke es wäre eine 
alternative...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

http://hem.passagen.se/communication/ide.html
Hat auch ein paar nützliche Links am Ende ist allerdings mit nem PIC.

von Jens G. (jensig)


Lesenswert?

diese nützlichen Links zu den Standards gehen wohl alle ins Leere.
Auserdem - ist das mit dem LBA-Mode wirkjlich richtig erklärt dort? 
Scheint mir etwas konfus bis falsch zu sein

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

>By reading these documents you will get it all clear
>Connecting IDE Drives by Tilmann Reh
>Wesley's PIC Pages: IDE Controller
>Fil's FAQ-Link-In Corner: IDE Ref.
Funktionieren alle bei mir, besonders der erste Link / die TXT ist recht 
hilfreich.

von Roland P. (pram)


Lesenswert?


von André H. (andrekr)


Lesenswert?

Benjamin Anonym schrieb:

> setze ich nun /WR/RD CS0 CS1 alle auf high pegel? mit A0...A2 steuere
> ich die Adressen, also die position oder? den datenbus beschalte ich
> dann willkürlich.

Nein, so dumm ist die Platte nicht.

Du mußt ihr schon sinnvolle ATA-Befehle geben, und zwar über den 
Datenbus. Die Adresse, die sie lesen soll, gibst du ihr auch über den 
Datenbus. Die Daten bekämest du ebenfalls auf dem Datenbus, wenn du sie 
haben wolltest.

Ob du ihr gerade einen Befehl gibst oder eine Adresse oder Daten abholen 
willst, erfährt sie über A0..A2. Und ob du etwas in die Platte 
reinschickst oder etwas herausholst, steuerst du darüber, ob du /RD oder 
/WD pulst.

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.