Author Topic: DIY retro SCSI controller board, not working...[SOLVED]  (Read 1125 times)

0 Members and 1 Guest are viewing this topic.

Offline lintweakerTopic starter

  • Contributor
  • Posts: 23
  • Country: nl
DIY retro SCSI controller board, not working...[SOLVED]
« on: July 07, 2020, 04:12:10 pm »
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 termination

What 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 off

What 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?



« Last Edit: July 10, 2020, 07:49:26 am by lintweaker »
 

Offline bson

  • Supporter
  • ****
  • Posts: 2497
  • Country: us
Re: DIY retro SCSI controller board, not working...
« Reply #1 on: July 08, 2020, 03:49:06 am »
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?
 

Offline lintweakerTopic starter

  • Contributor
  • Posts: 23
  • Country: nl
Re: DIY retro SCSI controller board, not working...
« Reply #2 on: July 08, 2020, 09:04:00 am »
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..
 

Offline macboy

  • Super Contributor
  • ***
  • Posts: 2309
  • Country: ca
Re: DIY retro SCSI controller board, not working...
« Reply #3 on: July 08, 2020, 12:31:08 pm »
Just an idea: synchronous vs asynchronous bus transfers? The bus being locked sounds like an async handshake issue.
 

Offline lintweakerTopic starter

  • Contributor
  • Posts: 23
  • Country: nl
Re: DIY retro SCSI controller board, not working...
« Reply #4 on: July 08, 2020, 01:36:18 pm »
Just an idea: synchronous vs asynchronous bus transfers? The bus being locked sounds like an async handshake issue.
The 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.
 

Offline lintweakerTopic starter

  • Contributor
  • Posts: 23
  • Country: nl
Re: DIY retro SCSI controller board, not working...
« Reply #5 on: July 10, 2020, 07:48:45 am »
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!  :)
 

Offline bson

  • Supporter
  • ****
  • Posts: 2497
  • Country: us
Re: DIY retro SCSI controller board, not working...[SOLVED]
« Reply #6 on: July 11, 2020, 08:58:52 pm »
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.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf