Forum: Mikrocontroller und Digitale Elektronik Festplatte Pinbelegung


von Sencer Soylu (Gast)


Lesenswert?

Hallo,
weiss jemand die Pinbelegung der IDE-Festplatten?
Und wie könnte ich am einfachsten auf diese mit einem Mikrocontroller
zugreifen?
Danke schön.

Mit freundlichen Grüßen

Sencer Soylu

von schneidertobi (Gast)


Lesenswert?

Hi,
besorg dir die ATA-Specs und lies sie. Danach benutz noch google.

Gruß Tobias

von Tom (Gast)


Lesenswert?

Meistens sind die Pins mit Gold belegt.

Zugreifen kannst Du am besten, wenn Du die Beinchen in Form eines
Greifers biegst und dann auf die Platte zugreifst.

von Rahul (Gast)


Lesenswert?

noch eine Möglichkeit:
Bau an den µC eine Baggerschaufel... damit lässt es sich ziemlich gut
greifen...

von Sencer Soylu (Gast)


Lesenswert?

Das mit den anschlüssen ist kein problem!
Ich habe jetzt den aufbau der IDE-Pins im Internet gefunden komme aber
nicht weiter!
Auf der Seite http://www.hardware-bastelkiste.de/ide.html sind die
pinbelegungen!
Kann mir jemand bitte sagen, wie ich jetzt auf die Festplatte schreibe
und lese?
Ich weiss leider nicht, was die einzelnen Pins machen!
Danke schön.

von Tom (Gast)


Lesenswert?

Nimm einen Edding, das funktioniert am besten.

Aber zur Sicherheit nur auf das Gehäuse schreiben!

von Sencer Soylu (Gast)


Lesenswert?

Was hat das denn mit einem Edding zutun?

von Eddi (Gast)


Lesenswert?

@Tom

Hatte ich auch schon dran gedacht. Das Problem ist aber, daß Du mit
einem Edding normalerweise nur einmal schreiben kannst. Da die
Festplatte wiederbeschreibbar sein sollte wäre vielleicht ein Bleistift
besser. Da kann man die Daten dann leichter ändern.

von Dom (Gast)


Lesenswert?

Abwaschbare Folienstifte sollten auch gehen.

von Sencer Soylu (Gast)


Lesenswert?

Wie bitte, wollt ihr mich auf den Arm nehmen?
Ich will nicht mit einem stift oder so auf die Platte in der Festplatte
schreiben sondern mit dem Lese-Schreibkopf in der Festplatte!
Ich muss nur noch wissen, welche Pins ich an der Festplatte ansteuern
muss!
Danke schön.

von Benedikt (Gast)


Lesenswert?

Du armer...
Der Grund warum du verarscht wirst:
Eine Festplatte anzusteuern ist nicht schwer, das haben schon viele
geschafft, indem sie google bemüht haben. (So habe ich das auch
gemacht.)
Außerdem wurde das hier im Forum (und auch in anderen) schon oft genug
erklärt.

PS: schau mal auf www.t13.org, das müsste deine Fragen beantworten.

von Ganove Nr.2 (Gast)


Lesenswert?

Aber der Mikrocontroller läuft schon oder? Wie hast denn rausgefunden,
was bei dem die ganzen Pins machen? Oder hast du einen Tiny genommen?
Ist eigentlich keine schlechte Idee, bei 8 pins bleibt das schon
überschaubar

von Sencer Soylu (Gast)


Lesenswert?

Ich benutze einen ATtiny26!

von Mario (Gast)


Lesenswert?

> Ich muss nur noch wissen, welche Pins ich an der Festplatte
> ansteuern muss!

Du mußt mindestens mal DD[15:0], /CS0, /CS1, /RD, /WR und A[2:0]
ansteuern wenn du einfach nur im PIO-Modus arbeiten willst.

Ich hoffe, das hilft etwas.

GND muß natürlich auch angeschlossen werden, Details findest du in der
ATA-Spezifikation.

Mario

von Sencer Soylu (Gast)


Lesenswert?

Danke,
habe auch unter google die Beschreibeung jedes einzelnen Pins
gefunden!
Hoffentlich kann ich damit was anfangen!?

von Sencer Soylu (Gast)


Lesenswert?

Hallo,
habe mir die pinbelegung angeguckt!
Habe follgendes festgestellt:
Ich denke ich weiss wie ich auf die Festplatte schreiben und lesen
kann, aber die Festplatte muss doch wissen, welcher bereich gelesen
oder drauf geschrieben werden soll!
Mit welchem Pin und Signalverlauf mache ich das?
Danke.

von Werner (Gast)


Lesenswert?

Mit dem linken, der rechte ist zum löschen da ;-)

von Nik Bamert (Gast)


Lesenswert?


von Sencer Soylu (Gast)


Lesenswert?

Super, danke für die Seite!

von Benedikt (Gast)


Lesenswert?

Zu dumm oder zu faul zum lesen ???

WWW.T13.ORG !!!!!

von Sencer Soylu (Gast)


Lesenswert?

Auf die Seite kann man nicht zugreifen, bin nicht dumm auch nicht
faul!!!!

von Andy (Gast)


Lesenswert?

also bei mir geht die Seite einwandfrei....

von Sencer Soylu (Gast)


Lesenswert?

bei mir nicht!!!

von Andy (Gast)


Lesenswert?

dann würd ich mir mal Gedanken machen woran es liegen könnte...

von Werner (Gast)


Lesenswert?

muss zu dumm sein, wenn man den link anklickt gehts tatsächlich nicht.
Wenn man ihn aber abtippt...

von Sencer Soylu (Gast)


Lesenswert?

Du hast recht, wenn man ihn abtippt funktioniert es. Wer soll denn
wissen, dass die URL sich nach dem Forum richtet?
Und ausserdem ist das ganze in Englisch und Herr Nik Bamert hat mir
schon sehr geholfen.
Danke schön.

von Benedikt (Gast)


Lesenswert?

Wenn du Probleme mit Englisch hast, hast du dir echt das falsche Hobby
ausgesucht..
99,9% aller Datenblätter sind auf Englisch.

von Sencer Soylu (Gast)


Lesenswert?

Ich weiss, scheiße ne
Aber die Elektrotechnik ist mein Herz und Leben!!!
Ausserdem bin ich doch noch so Jung, dass lerne ich auch noch:)

von Mario (Gast)


Lesenswert?

> Zu dumm oder zu faul zum lesen ???

Naja, mit 15 hab ich mir auch noch nicht die ATA-3 Spec. reingezogen.

von Sencer Soylu (Gast)


Lesenswert?

Nö, bin nicht dumm!
Ist nit nett so was zu sagen!
Ausserdem weiss ich jetzt wie ich eine Festplatte ansteuern kann, nur
an einem Tag und mit 15. He He He
Sie waren damals nicht so fitt oder?

von Nik Bamert (Gast)


Lesenswert?

hehe, stimmt das mit 15?-Ich bin nämlich auch erst 14..bal 15:) ich
versuch gerade eine SD Karte anzusteuern, klappt aber leider nicht so
wie es soll..siehe
http://www.mikrocontroller.net/forum/read-1-88411.html

MFG Nik

von Benedikt (Gast)


Lesenswert?

Es ist nicht unbedingt eine Frage des Alters. Ich war 15 als ich
Internet bekommen habe, vorher hatte ich keine Möglichkeit mir
Datenblätter o.ä. zu besorgen.
Ich bin 20 und habe vor etwa 1,5 Jahren mit uC quasi bei Null
angefangen. Festplatten Ansteuern habe ich mir selbst nur durch google
beigebracht (Anschlußbelegung + Dateisystem). Die resliche Elektronik
mit 16bit <-> 8bit Wandler habe ich mir selbst ausgedacht. Alles was
ich sonst nocht brauchte stand auf T13.org.
Ich habe aber auch mehrere Tage gebraucht, bis ich die Grundlagen
verstanden habe. Einige Beispielprogramme aus dem Internet (-> google)
helfen alles zu verstehen.
Beim ersten Mal funktionierts sicher nicht, aber nicht verzweifeln.
Eine Nacht schlafen, am nächsten Tag nochmals die Schaltung und
Software durchgehen. Wenns immer noch nicht geht, alles weglegen und
nach einer Woche nochmal versuchen, dann bekomme ich meistens alles
hin...

von Sencer Soylu (Gast)


Lesenswert?

Ja, dass werde ich machen

von Sencer Soylu (Gast)


Lesenswert?

Ach, hier komme ich nicht mehr weiter:
Wenn ich jetzt auf den Sektornummern-Register zugreifen will, muss ich
nur die Pins CS0,CS1 und DA0-DA2 mit 10011 beschreiben, aber wie sage
ich ihm, welcher Sektor es sein soll?

Sencer

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal meine Schaltung, die einwandfreu am Datenbus läuft.

Um Sektoren zu adressieren verwendet man entweder LBA oder CHS.
Bei LBA werden alle Sektoren der Reihe nach gezählt, angefangen bei 0.
Bei CHS (Cylinder, Head, Sector) werden die Sektoren so adressoiert,
wie sie real in der Festplatte vorkommen.

Lad dir mal eine der älteren Datien von t13.org runterl, da ist das
alles genau erklärt:
Im Head Register kann man zwischen CHS und LBA umschalten. Ich würde
LBA verwenden, ist einfacher (wird ab etwa 400-800MB aufwärts
unterstützt).
Im Register Sector Count gibst du an, wieviele Sektoren gelesen werden
sollen (1-256, wobei 0=256). Dann schreibst du in die Sector Number,
CylinderLow, CylinderHigh und Heads Register eine 28bit lange Zahl, die
den Sektor adressiert. Nun noch den Lesebefehl ans Command Register und
dann kannst du 256x 16bit am DataRegister lesen.

Die Schaltung wandlet 16bit Werte in 2 8 bit Werte: Um einen 16bit Wert
zu lesen, liest man erst das LowByte aus dem Dataregister (Adresse 0)
und dann das HighByte aus dem Latch (Adresse 9)

von Sencer Soylu (Gast)


Lesenswert?

Ja, aber wie sage ich der Festplatte z.B. dass er Zylinder 100 ansteuern
soll?
Wenn ich jetzt den Wert für die Zylinder in den Register schreibe, wo
soll ich die Zylindernummer reinschreiben?
Danke.

von Benedikt (Gast)


Lesenswert?

Versteh ich nicht ganz.
Wenn du Zylinder 100 lesen willst, schreibst du 100 in CylinderLow und
0 in CylinderHigh...

von Sencer Soylu (Gast)


Lesenswert?

Ja, dazu muss ich auf den Kommandoblock 10100 schreiben um den
Zylinderblock-register 0 anzuwählen!
Aber wo schreibe ich jetzt den Zylinderwert(100) rein?
Etwa in DD0-DD15 oder was?
Danke.

von Benedikt (Gast)


Lesenswert?

Wieso machst du die Datentransfers per Software ? Unterstützt der AVR
keinen Daten/Adressbus ???
Mit dem Adress/Datenbus hast du schon eine Fehlerquelle ausgeschlossen,
da du dann nicht nie unterste Low-Level Ebene programmieren musst.

von Sencer Soylu (Gast)


Lesenswert?

Jetzt verstehe ich nichts mehr!
Könntest du mir bitte eine art stichwortliste schreiben, auf welchen
register ich zugreifen muss,welchen Pin ich ansteuern muss um auf die
Festplatte einen Wert zu schreiben?
Bitte Bitte.

von hmann (Gast)


Lesenswert?

Ich muss sagen ich finde den Thread ziemlich amüsant.
Ich bin zwar selbst noch Anfänger was uC angeht, aber das hier finde
ich einfach zu gut...

@Sencer: was hast du egtl. schon mit deinem Conrtoller gemacht?

von Sencer Soylu (Gast)


Lesenswert?

Naja, einfach IO-Port angesteuert, ADC, Timer und das war eigentlich.
Aber der µController ist ja nicht das Problem, sondern die Festplatte.
Wenn ich wüsste wie ich auf die Register der festplatte zugreifen kann,
dann würde ich das auch hinkriegen!

von Nik Bamert (Gast)


Lesenswert?

hi sencer,

auf der seite http://www.inf.hs-zigr.de/~boehm/rt001/Modsching/ hat es
unter 2.5 auch ein bildchen. Es ist eine Tabelle mit den Adressen zu
den Registern. Dort steht welche pins für welche adressen high/low sein
müssen usw. Dann einfach noch daten anlegen und schreiben. achtung:
reset, cs0, cs1, wr und  rd sind low aktiv. Es gibt noch mehr low
aktive Leitungen, aber die sind auf der oben genannten seite ja auch
gekennzeichent(mit einem fetten strich über der signalbezeichnung)

MFG Nik

von Sencer Soylu (Gast)


Lesenswert?

Das ist sehr gut, wenn ich jetzt einen register makiert habe!
z. B. denn Sektornummernregister(10011), muss ich dann die Sektornummer
in DD0-DD7 schreiben und dann muss ich nacheinander den
ZylinderRegister und dann den Laufwerksregister ansteuern und dann in
dem ich an DIOW auf masse schalte, müsste ich eigentlich ein 8Bit
Datenwort über DD0-DD7 auf die Festplatte schreiben können, oder?

von Birger* (Gast)


Lesenswert?

@Benedikt - Beitrag Datum: 31.05.2004 07:33 - Betreff: Festplatte
Pinbelegung - Dateianhang: IDE.gif (25.7kB, 74 Downloads)

Ich versuch mich grad mit 'ner gescheiten Verkabelung zwischen
Mikrocontroller und ATmega128. Das ganze via Adress- und Datenbus zu
bewerkstelligen, halte ich für geschickt - wenn's denn geht. Den
Schaltplan aus obigem Beitrag versteh ich aber nicht so recht. Was ist
mit /CS1 passiert? /CS1 fest auf 5V kann ja wohl nicht stimmen. Wie
soll  denn der Ablauf der Kommunikation bei der Verdrahtung erfolgen?
Hab den noch nicht ganz ausgeräumten Eindruck, dass in bestimmten
Konstellationen es zum Datenkonflikt kommen kann.

Im Forum hier wird ja viel erzählt, dass das ganze Vorhaben soooo
einfach ist. Nur, wenn's konkret wird, schweigen sich hier viele stark
aus. Konkrete Tipps und Erfahrungen wären hier schön. Bei den (älteren)
MP3-Player-Projekten im Netz wird häufig mit GALs gearbeitet, mit denen
ich mich eher nicht befassen möchte.

Mein Vorhaben wird ausnahmsweise kein MP3-Player sondern ein
Datenlogger für ca. 10GB werden.

von Thorsten (Gast)


Lesenswert?

Mit /CS1 wird auf die control block registers zugegriffen und die
braucht man i. d. R. nicht und von daher kann man /CS1 auf High legen.
Siehe hierzu auch die ATA-Spezifikation (z. B. ATA-3 Rev. 7b, Tabelle
6).

Gruß
Thorsten

von Birger* (Gast)


Lesenswert?

Ok, aber das Device-Conrol-Register und sein Interruptflag könnte
vielleicht interesant sein/werden. Aber das ist letztlich nur ein
Randdetail.
Ich versteh bis jetzt nicht, ob und wie obige Schaltung genau
funktionieren soll. Funktioniert sie wirklich für 16 Bit lesen und
schreiben? Wie ist das dann mit der Adressierung?

von Benedikt (Gast)


Lesenswert?

Die Adressen 0-7 adressieren ganz normal die Festplattenregister 0-7.
Zusätzlich wird bei jedem Lesezugriff das High Byte der Festplatte
gespeichert und kann durch einen Lesezugriff von Adresse 9 gelesen
werden.
Für Schreiben gilt dasselbe: Bei jedem 8bit Schreibzugriff wird der
Festplatte auch das gespeicherte High Byte angeboten. Dieses muss zuvor
an Adresse 8 geschrieben werden.

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.