mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IDE (ATA) an einen 8Bit Bus verwenden


Autor: Old_school_offline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

bin seit Tagen am recherchieren, denn ich möchte eine HDD(ATA) bzw. eine 
CF-Card über einen 8Bit-Bus ansprechen.

Habe bereits etliche Seiten im Web durchstöbert die sich damit 
beschäftigen. Dennoch habe ich immer noch Grundlegende Fragen ...

Für die Control/Status - Register brauche ich ja nur 8Bit, für die Daten 
Übertragung sind default 16Bit vorgesehen.
Bei den meisten 8Bit Interfaces wird versucht die oberen Daten-Bits 8-15 
mit zwischenspeichern für die IDE-Schnittstelle bereit zu stellen.

Es gibt doch aber auch das Features-Register im IDE-Controller, wenn ich 
das richtig sehe kann man dort auf 8Bit-Data-Transfer umschalten.

Damit würde doch eine einfache 8Bit Anbindung möglich sein ?! oder ...

Wie ist das aber dann beim 8Bit-Data-Transfer mit dem "SectorCount" 
0-255 der ist doch gedacht 16Bit (Word) zu zählen.
256 x 16Bit (Word) = 512 Byte Sektorlänge.

Noch eine Frage:
Wie komme ich an die Daten vom "Identify Drive" [ECh] sollen 256 Byte 
sein die nach diesem Kommando zu Verfügung stehen ... stehen die 
vielleicht im Buffer ?  der dann über Data-Read ausgelesen werden kann 
...

besten Dank im voraus
Gruss Ralf

PS. da werden bestimmt noch mehr Fragen von mir kommen :-)

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

Bewertung
0 lesenswert
nicht lesenswert
Old_school_offline schrieb:
> Damit würde doch eine einfache 8Bit Anbindung möglich sein ?! oder ...
Würde es wenn es den unterstützt würde, das tut nur normalerweise kein 
aktuelles LW mehr, bei einer CF könntest du Glück haben.
Was aber geht ist, die oberen 8 bit per Pullup auf 5V oder GND ziehen 
und auf die Hälte der Kapazität verzichten.

Hatte mir da mal einen entsprechenden Aufbau gemacht um CD-Laufwerke 
anzusprechen, es dann aber wieder verworfen weil einfach trotzdem noch 
genug Leitungen draufgehen und das ganze unmengen an Strom frisst.

Old_school_offline schrieb:
> vielleicht im Buffer ?  der dann über Data-Read ausgelesen werden kann
So ist es... wie auch sonst?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zum 8-Bit Mode bei IDE-HDs kann ich Läubi nur zustimmen, ging schon im 
Jahr 2000 nicht mehr...

Ich habe damals mal einen MP3-Player gebaut, mit MAS3507 als Decoder, 
einem 8515 als CPU, 32k Ram, eine 6GB HD dran und 2x 16 Display.
Filesystem auf der HD war FFS vom Amiga (hatte ich damals noch...) und 
relativ wenig Zusatzhardware.
ASM-Sourcen davon habe ich gerade noch gefunden, Schaltpläne sollten 
auch noch irgendwo sein.

Man konnte es also machen, wenn man unbedingt wollte.

Gruß aus Berlin
Michael

Autor: Old_school_offline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Läubi

>> die oberen 8 bit per Pullup auf 5V oder GND ziehen

wird nicht funktionieren, muss/will FAT 16/32 verwenden, und da brauche 
ich jedes Bit :-(

>> So ist es... wie auch sonst?

hatte ich ja auch vermutet ... nur es ist schon besser es zu wissen, als 
es nur zu vermuten.

Na gut ... werde ich ein Interface für mein ECB-Bus bauen, was 8Bit und 
auch 16Bit unterstützt, soll eh nur im PIO-MODE verwendet werden.
Bei zu erwartenden Dateien um die 8-64k ist das mit der Zeit auch nicht 
so kritisch.

Gruss Ralf

Autor: JoergL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Old_school_offline,
im Elektor war vor längerer Zeit ein Artikel zum Anschluß einer PATA IDE 
Platte an das 80535 Compu-Board.
In dem Artikel stand sinngemäß, daß es in der ATA Spec den 8-bit Mode 
zwar gibt, die erhältlichen Laufwerke diesen aber nicht (mehr) 
unterstützen.
Daher waren auf der Adapterplatine 2 Stück 8bit Register vorhanden, und 
der 80535 mußte 2x lesen/schreiben.
HTH,
Jörg

Autor: Ralf G. (old-school) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@JoergL

besten Dank,
hab da auch schon eine nette Schaltung mit einem 74ALS652 als 
Alleskönner für die D8-15 gefunden, ist von Bill Cooper (c).

http://www.8bs.com/submit/subide.htm

Autor: Ralf G. (old-school) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe da noch mal eine Frage zu den IDE-Registern:

CS-  --A--  ------Register -----------
1 0  2 1 0  READ            Write
--------------------------------------
0 1  0 0 0  Data(0-15)      Data(0-15)
0 1  0 0 1  ERROR           Feature
0 1  0 1 0  Sector-Count    Sector-Count
0 1  0 1 1  Sector-NUM      Sector-NUM
0 1  1 0 0  Cylinder-LOW    Cylinder-LOW
0 1  1 0 1  Cylinder-High   Cylinder-High
0 1  1 1 0  Drive/HEAD      Drive/Head
0 1  1 1 1  STATUS          Command
0 0  x x x  -Invalid-       -Invalid-
1 1  x x x  HIGH-Z          NOT-USED
1 0  0 0 0  HIGH-Z          NOT-USED
1 0  0 0 1  HIGH-Z          NOT-USED
1 0  0 1 0  HIGH-Z          NOT-USED
1 0  0 1 1  HIGH-Z          NOT-USED
1 0  1 0 0  HIGH-Z          NOT-USED
1 0  1 0 1  HIGH-Z          NOT-USED
1 0  1 1 0  A-Status        Device-Control
1 0  1 1 1  Device-Adress   NOT-USED

Es gibt in der Beschreibung von SILICONSYSTEM die Register mit der 
Bezeichnung HIGH-Z die aber auch nur gelesen werden können ... was haben 
diese Register denn für eine Bedeutung ?

möchte gerne das Data-HByte(8-15) welches ich zwischenspeichern muss in 
diesem Bereiche adressieren(einblenden):

CS-  --A--
1 0  2 1 0  READ              Write
----------------------------------------
0 1  0 0 0  Data       (0-7)  Data       (0-7) (IOWR+IORD aktiv)
1 0  0 0 0  DataBuffer(8-15)  DataBuffer(8-15) (IOWR+IORD nicht aktiv)

Wie geht das denn eigentlich mit den 48BIT(BigLBA), um über die (137 GB) 
Grenze zu kommen ?
Es soll da ein BIG-LBA-Register geben welches aktiviert werden muss ?

Besten Dank im voraus
Gruss Ralf

Autor: Ralf G. (old-school) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ JoergL

kannst Du mir sagen in welcher Ausgabe ...

meine suche bei ELEKTOR hat da kein Erfolg gebracht ...

Gruss Ralf

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf G. schrieb:

> 1 0  0 0 0  HIGH-Z          NOT-USED
> 1 0  0 0 1  HIGH-Z          NOT-USED
> 1 0  0 1 0  HIGH-Z          NOT-USED
> 1 0  0 1 1  HIGH-Z          NOT-USED
> 1 0  1 0 0  HIGH-Z          NOT-USED
> 1 0  1 0 1  HIGH-Z          NOT-USED
> 1 0  1 1 0  A-Status        Device-Control
> 1 0  1 1 1  Device-Adress   NOT-USED
>
> Es gibt in der Beschreibung von SILICONSYSTEM die Register mit der
> Bezeichnung HIGH-Z die aber auch nur gelesen werden können ... was haben
> diese Register denn für eine Bedeutung ?

Im IBM AT befand sich neben den MFM-Controller noch der Floppycontroller 
auf der gleichen Karte. Die mit High-Z bezeichneten Adressen waren für 
den Floppycontroller reserviert, der MFM-Controller durfte da nicht 
aktiv werden. Diese Adressdefinition hat sich bis heute gehalten.

High-Z heißt hochohmig, d.h. das IDE-Interface reagiert nicht.

fchk

Autor: Ralf G. (old-school) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank K.

besten Dank

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.