I have a project where I need to get an Arduino Mega to emulate a SCSI 1 device.
I do not need any storage on the device at all, just to act as a proxy between SCSI and SPI.
I know that the SCSI that I am dealing with is slow only about 50K/sec transfer rate at peak and has no parity to calculate
Can someone please point me in the right direction with documentation as I need to know the timing information on the handshake lines.
The hardware that I am trying to emulate is a SCSI Laserdisc player that just receives simple information about where to start and end playing (Frame numbers) and hands simple data back.
I am going to be using a Raspberry PI for the Video side of this project but the PI cant interface to the number of pins on the SCSI so need something in the middle.
As for the circuit diagram I will be using a clone of an eight bit SCSI interface that I have that only needs minimal control lines and deals with all of the termination of the SCSI bus.
For the code side of things I know it wont be simple but I do have the original 6502 assembler available for the host SCSI controller and the original Laserdisc player uses a Z80 internally to decode the SCSI bus and handle comms so may be able to pull the code for that too.
means the pins are in use on the SCSI
all odd pins are ground
The original computer that I am attempting to connect to is a Acorn BBC Master AIV from 1986 and is part of the BBC Domesday Project. http://www.bbc.co.uk/news/technology-1334819
The online version is only about 80% of one disc and I have 5 discs available to me.
There are only about 15-20 of these complete systems working worldwide and I am looking to emulate the Laserdisc player.
The problem that I have is not so much of the electrical connection but the low level protocol and order of the handshaking on the SCSI bus and more related to the software side of things the arduino.
A copy of the original schematic for the SCSI controller is attached but pin 14 on IC8D should be attached to 0V and not 5V.
The original driver ROM for the SCSI was only 16K and had mouse driver as well as an entire filesystem written within it so storage on the arduino should not be a problem.
You should probably look into SCSI specification: T10 Working Drafts (If you need older specs, please let me know.)
I was thinking, how complicated would be the reverse: Use Arduino as a translator between USB Mass Storage SCSI layer and parallel SCSI host. Such devices were available commercially in past, but now they are all hard to get, and those compatible with most devices are even harder to get.
Although I really want to get further with this project I have not really had the time recently.
I have a 74series based SCSI card made from discrete logic IC's that deals with all of the buffering, termination and electrical characteristics of the SCSI bus and all i need to do now is implement the protocol.
I do know that the DB25 SCSI pin layout is a 1:1 relation to the IDC50 as I have made cables between them (Long time ago) The majority of the IDC pins are either N/C or earth
After speaking to my brother who does far more of this than i do, he has said that I may need to write in either assembler or C++ without using the arduino library for the speed aspect of the protocol and responding to an IRQ on the SCSI bus in time.
If needed then I should be able to supply a schematic of the SCSI board that I have but will have to dig it out of storage and scan it. Not quite this one....
That is the original schematic but there is an error on it. From memory i think that IC8 pin14 should be tied to 0V and not the 5V.
There is also a small amount of circuit there for replacing the CPU/RAM/Video clock on the BBC Micro that would not be needed.