DIY retro SCSI controller board, not working...[SOLVED] - Page 1
Forum section: electronics / projects

author: lintweaker
author_rank: Contributor
timestamp: July 07, 2020, 04:12:10 pm
content: I hope there is still some SCSI knowledge around :-)For my retro DIY Z80 based computer (MSX compatible) I decided to build a SCSI controller based on a WD33C93A. As I already wrote the required software for it (created for MSX back in the 90's) I should be relatively easy to get it working...I sourced the PLCC version of the WD33C93A controller from China (utsource) and designed a board in Kicad. The board works partially...I've build two versions of the board:- one with active SCSI termination- one with passive SCSI terminationWhat works:- My DIY computer can happily talk to the SCSI controller- I am able to 'see' SCSI devices connected on the bus (SCSI cmd 'test unity ready' works).- For the active SCSI terminators: I can switch them on and offWhat does not work:- As soon if the controller tries to do some real work on the SCSI bus (e.g. INQUIRY). The Busy leds turns on solid. Only after turning off the SCSI device does the computer respond normally.My first thought was either termination issues or pinout mistakes. I have cross checked the pinouts a lot of times, they look okay...Any thoughts on this issues? Some obvious errors in my schematic?

author: bson
author_rank: Unknown
timestamp: July 08, 2020, 03:49:06 am
content: Is it a SCSI-2 device? The WD33C94A seems to be a SCSI-1 controller, but if I recall active termination was added in SCSI-2. SCSI-1 devices ignore SCSI-2 commands if I recall, but is it possible a SCSI-2 device won't work on a SCSI-1 bus?

author: lintweaker
author_rank: Contributor
timestamp: July 08, 2020, 09:04:00 am
content: Thanks for your reply.The devices I tested with (ZIP drive and CDROM) do work on older boards I have with the same WD33C93A controller and software.So it must be something with my design...pinout, terminators or....So far I have no leads what could be wrong..

author: macboy
author_rank: Super Contributor
timestamp: July 08, 2020, 12:31:08 pm
content: Just an idea: synchronous vs asynchronous bus transfers? The bus being locked sounds like an async handshake issue.

author: lintweaker
author_rank: Contributor
timestamp: July 08, 2020, 01:36:18 pm
content: Quote from: macboy on July 08, 2020, 12:31:08 pmThe software only supports async transfers and is the same for the working and my new non-working board. It still could be a pinout / PCB issue.As mentioned 'TEST UNIT READY' (SCSI cmd 00h) does work for all connected devices but any other cmd seem to get stuck.Is the SCSI ID send over the databus lines? If so, that should mean these work okay as I can 'see' all connected devices.

author: lintweaker
author_rank: Contributor
timestamp: July 10, 2020, 07:48:45 am
content: Figured out the issue and fixed it! As was stated by the WD33C93A datasheet all along, pin 10 /DACK really needs a pullup resistor. Not all designs I checked see to do this but it is really needed (although my design does not use DMA). After adding the pullup the system is happily booting from the SCSI ZIP drive!

author: bson
author_rank: Unknown
timestamp: July 11, 2020, 08:58:52 pm
content: Interesting that it would be required. While skimming some online datasheet I saw mention of errata related to DRQ in some steppings that if I recall could cause the controller to freeze.