[net.micro.cpm] CCS Disk Controller Fix

W8SDZ@mit-mc@sri-unix.UUCP (07/17/83)

From:  Keith Petersen <W8SDZ@mit-mc>

The following is forwarded from my RCPM system.  Replies to the author,
please, not to me.
--Keith

--forwarded file--

                                 AA6PZ
                              Paul Zander
                              86 Pine Lane
                          Los Altos, CA 94022

Fellow Computer Hobbiest:

     Several  friends and I have been trying to use the popular  CCS2422 
Floppy Disk Controller board in our S-100 systems.  We encountered a few 
problems  which cost us substantial frustration until the solutions  had 
been worked out.  We had tentatively thought that we had bad EPROM's and 
bad  disc  controller  IC's before making  the  modifications  described 
below.   The IC numbers refer to the rev.  B board, the changes apply to 
the rev A board as well.

     1.  The buffer which drives the data-in bus,  U40,  has to drive  8 
lines  at the same time.   Depending on the configuration of the rest of 
the  system,  it  may have a peak current of 1/2 amp or more for  a  few 
nanoseconds.   Although this IC is close to the S-100 ground pins(50 and 
100),  this current has to flow through traces which are common to  the 
rest  of  the board.   I have actually seen this current surge  cause  a 
voltage  spike  of 2 volts.   Needless to say,  this can and does  cause 
false inputs to many of the other IC's on the board.  The solution is to 
cut the trace on the top side of the board to U40, pin 10.  Next, on the 
back  side,  connect  U40,  pin 10 by a piece of insulated wire  to  the 
ground trace near pin 100,  and continue the wire around the edge of the 
board  to the top side near pin 50.   Number 28 or 30 wire-wrap wire  is 
suitable.  The  inductance  of the wire is primarily a function  of  its 
length.  There is little to be gained by using an 18 guage wire.

     2.  Although  the  ground  traces  appear at  first  glance  to  be 
connected together, there are several places where a ground trace starts 
at  one  side of the board,  goes to several IC's and then stops in  the 
middle of the board.   Your DC ohmmeter will measure continuity, because 
the  traces  are connected by long paths around the edge of  the  board.  
More  reliable operation of the 2422 can be achieved if these  "dangling 
ends"  are  connected together.   The candidates for connection  are  as 
follows:

          U7   pin 7  to  U8   pin 20
          U20  pin 7  to  U21  pin  8
          U13  pin 10 to  U14  pin  7
          U35  pin 7  to  U44  pin  8
          U39  pin 7  to  S-100 pin 50

If your system uses the S-100 pins 20 and 70 as grounds,  the should  be 
connected in as well.

     3.  This  one  corrects  one  of the  symptoms  of  the  inadequate 
grounding  mentioned  in 1 and 2.   Historically,  it was  found  first, 
because the board would often hang up in an "Auto-wait" state when using 
the monitor EPROM.  Short spikes on SOUT or SINP propogate the the logic 
to  the clock U42A when the CPU is really accessing a memory address  of 
F733.   This  change  prevents short spikes from clocking the Auto  wait 
flip-flop but has no effect on desired operation.
     Cut  the  +5v trace going to U42 pin 2.   It is on the back of  the 
board  and you do not have to remove the IC or the socket to get to  it. 
(Hurray!)  Now connect pin 2 to U35 pin 11.   This is the logical OR  of 
SOUT and SINP.  In the case of a short spike, this point will be back in 
the logic low state before the clock signal gets to the flip-flop.

     4. Some of our boards did not work with some of the Western Digital 
IC's.   The  problem  was  most  pronounced  with  5  1/4  inch  drives.  
Eventually  we found that the problem is that the board design  requires 
the  WD1793 to operate outside of its specified range.   In  particular, 
the data sheet requires that the data inputs be held for 70 ns after the 
end  of the write pulse.   However,  the 2422 actually switches off  the 
data  bus  buffer  before  sending the write pulse to the  1793  or  the 
control latches.   It is only the PC board capacitance which causes  the 
circuit to work!  The solution is to keep U39 turned on a little longer.  
There  are several solutions,  but the most reliable is to substitute an 
unused  section  of open-collector NAND gate U5 for the section  of  U20 
which drives U39 pin's 1 and 19.   Connect U20 pin's 4 and 5 to U5 pin's 
13 and 14 respectively.   Cut the trace to U20 pin 6 and connect a  wire 
form  that trace to U5 pin 12.   Connect a 1K pullup to U5 pin  12,  and 
somewhere  along that trace connect a 80 to 100 pF capacitor to  ground.  
This will slow down the rising edge of the signal to U39 pin 1.

     After  these  changes,  the CCS2422 works quite  well.   With  some 
experimental  changes  to  the  wait-state  circuitry,   one  board  has 
successfully  done disk operations with a CPU clock speed in excess of 6 
MHz.   More  work  remains to be done before claiming  that  a  complete 
speed-up can be reliably achieved.

     The  problems  with inadequately engineered ground connections  and 
buffers  which are turned off too early are not unique to the CCS  2422.  
You  might keep them in mind when you have problems with other  circuits 
which  give  erratic  behavior.   I hope this  letter  helps  make  your 
computer experience more enjoyable.

     Permission  to  copy this letter or its contents,  in whole  or  in 
part, is granted provided that credit is given to this writer.


                                   Sincerely,

                                   Paul Zander

CC.Otken%utexas-20@sri-unix.UUCP (07/19/83)

From:  John Otken <CC.Otken@utexas-20>

Paul Zander's fix contained a few typos:

2.	S100 pin 50 to  U39 pin 10 instead of 7
4.	U20 pin 4   to  U5 pin 12  instead of 13
	U20 pin 5   to  U5 pin 13  instead of 14
	U20 pin 6   to  U5 pin 11  instead of 12
	1K pullup to U5 pin 11	   instead of 12

Before I installed his modification, my CCS 2422 barely functioned.
It seems to work MUCH better now.  However, I haven't thoroughly
tested it yet.

Also, one plated through hole did NOT conduct through the hole.
-------