Hardware-Aufbau der 1541
Aus C64-Wiki
Zur Navigation springenZur Suche springenDieser Artikel beschreibt den Hardware-Aufbau des Diskettenlaufwerks Commodore 1541. Grundlagenwissen zum Thema Computerhardware und Schaltungstechnik wird vorausgesetzt. Eine allgemeinverständliche Erklärung zu den Fähigkeiten des Laufwerks findet sich im Überblicksartikel zur 1541.
Hinweise[Bearbeiten | Quelltext bearbeiten]
Die Chipbezeichnungen und weiteren Erklärungen beziehen sich auf die Original-1541. Der Aufbau neuerer Varianten des Laufwerks weicht davon etwas ab.
Detaillierter Schaltplan[Bearbeiten | Quelltext bearbeiten]
- Schaltplan der 1541-I auf zimmers.net - hierauf beziehen sich die Erläuterungen dieser Seite.
- UC1 Gate Array-Schaltbild (325572)
- Schaltplan der 1541-II auf zimmers.net. Hier wurde insbesondere die R/W-Elektronik zusammengefasst.
- Technisches Handbuch
Zusammenspiel[Bearbeiten | Quelltext bearbeiten]
- Die meisten Chips sind direkt an den 16bittigen Adress- und 8bittigen Datenbus der CPU MOS 6502 (UC4) angekoppelt.
- UB2 ist ein statisches RAM. Ein RAM-Refresh wie beim C64 ist damit nicht nötig.
- UB3 und UB4 beinhalten das CBM DOS-ROM.
- UC5, UC6 und UC7 steuern die Enable-Leitungen der einzelnen Chips an, übernehmen bei der 1541 also gewissermaßen die Aufgabe der PLA beim C64.
- VIA 1 (UC3, $1800) übernimmt die Ansteuerung des IEC-Bus.
- VIA 2 (UC2, $1C00) stellt das Interface zum Daten-Schieberegister in UC1 dar und übernimmt ebenfalls im Zusammenspiel mit UC1 die Ansteuerung des Stepper-Motors.
- P5 ist die Stromversorgung und Steuerung des Spindle-Motors.
- P7 ist die Richtungsansteuerung des Stepper-Motors.
- P6 ist die Zugriffs-LED und Schreibschutz-Lichtschranke.
- P8 ist die Verbindung zum Schreib-/Lesekopf.
- P2 und P3 gehen zu den IEC-Buchsen.
- P4 geht zur Power-LED.
UC1[Bearbeiten | Quelltext bearbeiten]
UC1 übernimmt mehrere Aufgaben:
- Es enthält ein Schieberegister, das die vom Schreib-/Lesekopf kommenden GCR-Bits zwischenspeichert.
- SYNC-Signale (zehn oder mehr 1-Bits) werden detektiert und an Pin PB7 der VIA 2 weitergeleitet.
- Der BYTE_READY-Pin von UC1 ist mit Pin SO des 6502 und CA1 der VIA 2 verbunden.
- Entsprechend wird das Overflow-Flag im Statusregister gesetzt, sobald ein GCR-Byte im Schieberegister von UC1 vollständig ist (siehe ROM $F4D4).
- Außerdem wird das komplette GCR-Byte in Port A der VIA 2 geladen. Bei der maximalen Bitrate hat die CPU dann etwa 26 Taktzyklen Zeit, das Byte von dort auszulesen.
- BYTE_READY wird von einem Zähler gesteuert, der immer dann weiterzählt, wenn das SYNC-Flag nicht aktiv ist, und der bei aktivem SYNC auf Null gesetzt wird.
- Es enthält einen Teil der Steppermotor-Ansteuerungslogik.
Takt[Bearbeiten | Quelltext bearbeiten]
- UD5 erzeugt den 1MHz-CPU-Takt aus einem 16MHz-Signal.
- UE6 ist ein Binärzähler, der mit 16MHz-Takt aufwärts zählt, dessen Zählerstand von der VIA UC2 im Zusammenspiel mit UC1 gesetzt werden kann und dessen Ausgang UC1 taktet.
- Dadurch können unterschiedliche Bitraten programmiert werden, mit denen das Schieberegister von UC1 gefüllt wird.
Weblinks[Bearbeiten | Quelltext bearbeiten]
- rotation.c aus VICE mit etlichen Details zur Floppy-Interna
- Drive.cpp aus dem Pi1541-Projekt mit etlichen Details zur Floppy-Interna