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