Um Pins zu sparen möcht ich eine alte (P)ATA/IDE-Festplatte über 74HC595 und 74HC166 ansteuern. Dass dadurch die Geschwindigkeit um ca. Faktor 48 sinkt (24 Bit, für einen Enable-Puls 2x schieben), soll mal kein Problem sein.
Die Ansteuerung der Ausgänge in die Platte mit den 74HC595 ist ja kein Problem:
Sollt ich hier schon nen (Denk-)Fehler haben, bitte einfach berichtigen.
(Siehe Schaltplan)
SDA_IN liefert die seriellen Daten.
SDA_SCL ist das Clocksignal.
SDA_RESET setzt die Register zurück.
SDA_LOAD schiebt die empfangenen Bits an die Ausgangsstufen QA-QH durch.
SDA_EN_OUT setzt die Ausgänge auf Tristate, so dass die Platte selbst auch was senden kann. (Da fällt mir grad auf, dass IC1 nicht auf Tristate schaltbar sein darf, da der Platte ja sonst auch kein Lesebefehl erteilt werden kann. Also IC1 Pin 13 muss nach GND.)
Nun aber zu den 74HC166. Da bin ich mir jetzt nicht sicher, ob die Beschaltung so stimmt (u.a. auch die Datenweitergabe)
SDA_SCL: Ebenfalls die Clock-Leitung.
SDA_EN_IN: Hier eigentlich ohne Funktion (kann direkt auf Masse?)
SDA_SAMPLE: Liest die Eingänge A-H und speicher die Daten im Schieberegister
SDA_RESET: Ebenfalls wieder Reset.
SDA_OUT: Spuckt die gesampleten Daten bei jedem Clock-Puls aus.
Beim Rauslesen muss ich also erst samplen, dann tick ich 24 Bits raus und krieg hier erst die Daten von IC6, dann IC5 und dann IC4. Stimmt das so?
(Nicht wundern, dass die Datenleitungen bei den 74HC166 "durcheinander" sind; so gehts dann auf der PCB mit dem Routen schöner)
Lesezeichen