home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
os2
/
gtak212b.zip
/
SOURCE.ZIP
/
OS2-ST01
/
st01fix.txt
< prev
next >
Wrap
Text File
|
1992-05-23
|
6KB
|
129 lines
Hardware-Patch for SCSI Host-Adapter Seagate ST01/2.
----------------------------------------------------
By applying this fix, it is possible to use the cheap SCSI host
adapters ST01 or ST02 as interface to the Tandberg streamer TDC 3660. I
never tried other devices, but perhaps it is now possible to use even
those disk drives, which normally don't work together with these
controllers. The controller does't get faster though.
There are at least 2 different versions of the ST0x adapters, an elder
version with 8K ROM and a newer one with 16K ROM. I don't know of
further differences. This patch refers to the 8K version.
The traces for the bus signals REQ und ACK have to be cut between the
controller chip and the SCSI connector. If termination resistors are
used, the lines must be cut between the resistors and the chip.
Hardware-Patch fuer SCSI Spar-Adapter Seagate ST01/2.
-----------------------------------------------------
Damit wird es möglich, zumindest dem Streamer Tandberg 3660 am ST01 zu
betreiben. Plattenlaufwerke habe ich nicht ausprobiert, ich halte es
jedoch fuer möglich, dass durch diesen Patch auch solche
Plattenlaufwerke am ST01 betrieben werden können, die sonst nicht damit
funktionieren. Wenn auch vielleicht nicht mit Interleave 1:1 (je
schneller die Platte desto weniger wahrscheinlich).
Das Ganze bezieht sich auf die ältere 8K-ROM-Version des ST01. Ob bei
der 16K-ROM-Version mehr geändert wurde als die ROM-Größe, ist mir
nicht bekannt.
Die Leitungen der Bus-Signale REQ und ACK müssen jeweils zwischen dem
Steuerchip und dem SCSI-Stecker aufgetrennt werden. Sind auf dem
Adapter Abschlußwiderstände drauf, dann muß zwischen den
Widerstandsnetzwerken und dem Steuerchip aufgetrennt werden.
Circuit Diagram / Schaltbild:
-----------------------------
REQ = Pin 48 am SCSI Connector
ACK = Pin 38 " "
IC's: 132 = 74LS132
38 = 7438
+5V
│
330
Ohm
│ │\
ACK ──┴────┤ \ │\
(Chip) │132├───┬──────┤ \
┌──┤ / │ │38 ├──── ACK'
│ │/ │ +5V──┤ / (Bus)
\ │ │/
\ │
\ /
\ /
/ \
/ \
/ │
/ │
│ │\ │
│\ └──┤ \ │ │\
REQ ───┤ \ │132├───┴───┤ \
(Bus) │132├───────┬──┤ / │132├──── REQ'
+5V───┤ / │ │/ ┌───┤ / (Chip)
│/ │ │ │/
└──────────┘
A Small Explanation of the Problem Solved:
------------------------------------------
The status bit REQ directly reflects the corresponding bus line. If the
target does not release the REQ line immediately after receipt of ACK,
but holds the line for some time, the REQ bit stays active even after
data transfer. The controller's software will be forced into false
transmission of the next byte.
As example, the streamer mentioned above holds the REQ bit sometimes
for up to several hundred microseconds after receipt of the first
command byte. But in block data transfer phase, the REQ bit is released
and resserted very fast. If the software checks for a held REQ line, it
might then interpret the REQ for the next byte as held REQ. Therefore
this bug is difficult to fix in software (while possible, but
device-dependant).
With this patch applied, the REQ line is released immediately after
receipt of ACK. Since the controller chip will immediately release
ACK, the bus line ACK is held until the bus line REQ is released.
Kurze Erläuterung des Problems, das hierdurch behoben wird:
-----------------------------------------------------------
Das Status-Bit REQ ist ein direktes Abbild der entsprechenden
Bus-Leitung. Wenn nun das Target die REQ-Leitung nicht unmittelbar nach
erhaltenem ACK deaktiviert, sondern noch eine gewisse Zeit stehenläßt,
dann bleibt das REQ-Bit auch nach erfolgtem Datentransfer entsprechend
lang gesetzt. Dies wird von der Software jedoch fälschlicherweise als
Anforderung fuer das nächste Byte verstanden.
Beispielsweise kann beim o.A. Streamer das REQ-Bit noch etliche hundert
Mikrosekunden nach einem Kommando-Byte aktiv bleiben. Umgekehrt
existieren jedoch Transfer-Zyklen (Block-Transfer), bei denen das
REQ-Bit bereits so schnell deaktiviert und erneut generiert wird, dass
eine Software-Abfrage auf stehengebliebenes REQ nicht zuverlässig
möglich ist.
Dieser Patch sorgt nun dafuer, dass die REQ-Leitung zum Chip des ST01
unmittelbar nach aktiviertem ACK deaktiviert wird. Da dies jedoch zur
sofortigen Deaktivierung von ACK durch den Steuerchip führt, muß
zusätzlich sichergestellt werden, dass ACK auf dem Bus erst deaktiviert
wird, wenn das Target seinerseits REQ deaktiviert hat, andersfalls wird
das Byte vom Target nicht akzeptiert.
Legal Notice (I don't write legal stuff in a foreign language, sorry):
----------------------------------------------------------------------
Ich übernehme keinerlei Gewährleistung für korrekte Funktion oder
irgendwelche daraus resultierenden Schäden oder Folgeschäden. Derartige
Aktionen sollte man sich ohnehin nur zutrauen, wenn ausreichende Praxis
in Elektronik und Löten vorhanden ist.
Andreas Kaiser
Fido: 2:241/7220.9
Subnet: ak@ananke.stgt.sub.org