www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IDE Festplatte ansteuern


Autor: ameise123 (Gast)
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: ameise123 (Gast)
Datum:

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

Autor: Barny F. (barny)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

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

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht ist dies ja was für dich.

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

Sven

Autor: Peterle Anonym (Firma: keine) (wanderameise)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: vlad (Gast)
Datum:

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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

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

Autor: SuperUser (Gast)
Datum:

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

Autor: ameise (Gast)
Datum:

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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

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

Autor: Jens G. (jensig)
Datum:

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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

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

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätt auch noch was:
http://www.ubergizmo.com/de/2007/09/general/die_fe...

Gruß
Roland

Autor: André H. (andrekr)
Datum:

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

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.