mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Noch eine Frage zur Festplatte


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab mich mimtlerweile mal durch den ersten teil der ata specs
gelesen.
nun würd ich gern mal den ersten versuch starten und
zwar will ich die drive-specs auslesen, also sprich
das commando "identify drive" ausführen lassen.

so wie ich das verstanden hab muss ich dabei wie folgt vorgehen:

1. cs0: 1    (low)
   cs1: 0    (high)
   da2: 1    (high)
   da1: 1    (high)
   da0: 1    (high)

   setzen

2. (mit ein paar ns verzögerung)
   d15-d8: 0 (low)
   d7-d0:  0xec
   setzen.

anschließend sollte die platte bzw. der plattencontroller
über die pins d0-d15 256 words ausspucken.

mir ist 1. nicht ganz klar ob diese nun 16bit oder 8bit breit
ankommen,
und zweitens mit welchem clock-signal getriggert?

kann mir da bitte jemand weiterhelfen?

thx im vorraus markus

Autor: Axel Rühl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
anschließend sollte die platte bzw. der plattencontroller
über die pins d0-d15 256 words ausspucken.

Hallo Markus
Words eben. war doch 16Bit, oder...

Grüße
AxelR.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

klar, :) das ein word 16 bit breit ist weis ich schon.
nur kommen diese wenn IOCS16 nicht gesetzt ist auf den
pins dd0 - dd7 jeweils als zwei bytes an oder grundsätzlich
als komplettes word auf dd0-dd15

ist der rest eigentl. richtig?
und wie find ich denn nu raus ob im an dd0-dd7(15)
nun das nächste word anliegt?

gruß markus

Autor: Axel Rühl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
würde voraussetzen, dass auch ich mir die ATA-Specs reinziehe, ausm
Bauch: /RD /WR oder sowas, einer von den Pins geht doch bestimmt bei
jedem Word auf L, denke ich.
sowas hat doch sicher schon mal einer gemacht...

Ich weiss es nicht genau, schade
AxelR.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm..interessante idee....
vielleicht sollte ich mir die specs nochmal etwas näher anschaun ;)

danke.

.gruß markus

Autor: Florian Pfanner (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab so was schon mal Programmiert. Im Anhang ist die C und H-Datei.
Musst mal durchschauen.

Gruß, Florian

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey DANKE.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gleich mal ne frage:

die funktionen out & in sind von dir definierte funktionen oder?
wenn ja, könntest du mir die vielleicht mal schicken?
wenn nein: ???

gruß markus

ps: welchen controller hast du verwendet?

Autor: Florian Pfanner (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die Funktionen sind Definiert. Diese geben aber nur das Byte an die
Adresse aus oder lesen das Byte ein. Ich hab die Festplatte an den
Externen Adressbus gehängt - für deine Zwecke vielleicht ein bischen
unpassend.

Ich hab mal noch ein bischen gesucht, und bin auf den Quellcode von
einem Versuchtsprojekt gestoßen. Bei diesem hab ich die Festplatte
direkt an den Controller angeschlossen. Hab dir mal den Quellcode in
den Anhang gestellt. Inwieweit die Angaben in der Datei
verbindungen.txt stimmen, kann ich nicht sagen. Für dich Interresant
dürften die Lese- und Schreib-Funktionen sein. (Die Pause von 1ms ist
sehr lang, kannst ruhig noch kürzen)

Programmiert sind beide Programme mit CodeVision auf einem MEGA161

Gruß, Florian

Autor: freaky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sehr geil. danke.
ich werd mich gleich mal damit beschäftigen.

gruß markus

Autor: freaky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine frage hätte ich da aber noch:

beim lesen/schreiben im PIO kann man ja zwischen 16 & 8 bit
modus wählen. geht das auch bei identify device?

mein problem ist nämlich das ich nur einen atmega8 mit 22 io pins hab
(reset nicht mitgerechnet) und da wirds enge wenn ich schon 16 für
die adressierung verbrate.....

das identify device scheint immerhin schon zu funktionieren,
nur leider krieg ich halt immer nur das lsb jedes
der 256 words mit :)

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.