LASER MAGNETIC STORAGE MEMO INTERNATIONAL _________________________________________________________________________ Optical Storage Division 5 December 1988 To: SCSI Standards Committee X3T9.2 From: Paul Boulay (719) 593-4323 Subject: Single-Ended Termination Alternatives Preface for Revision 1: This is a rewrite of 88-144R0. In the month since that revision I've realized that my calculations were too simplistic to do justice to the C. Mollard, Bull Systems proposal (88- 142R0.) The problem was that I considered each end of the cable in isolation. Actually, current flows in the signal lines from a locally powered terminator to one at the end of the cable. (As much as 3.5 mA per line.) This alleviates the difference in setpoint at the ends of the cable noted in revision 0 of this. The Austin WG meeting asked that I draft a set of requirements for a terminator for a single-ended SCSI Bus. This revision answers that action item. I've looked at the proposal for an alternative terminator from C. Mollard of BULL systems. (X3T9.2/88-142R0) I see some problems with the design as stated. The BULL systems scheme is: +-(Jumper)-+ | | 1N5818 | 1N4005 | + 5V ---------->|---+-------+---+----|<----+------ TermPwr | | Cap R 180 Ohm | R Gnd | +---------- Typical Signal Line Note: Add the jumper to supply | TermPwr to the bus, remove R 390 Ohm otherwise. R | Gnd First the advantages: It lowers the characteristic impedance to about 123 ohms. This is somewhat closer to the typical impedance of available cables. Use of the 180/390 terminator has the potential of raising the setpoint (or, the negated signal level) of an open-collector driven signal. Now the problems: The worst problem with the BULL systems proposal is that requires the bus drivers to sink too much current. Either a slightly over voltage +5V supply or slightly lower than nominal resistance in the 180 ohm resistors requires that the driver sink in excess of 48 mA. The practical implications of this are that the SCSI bus driver chips will run hotter than they should and that the low voltage asserted onto the bus will be higher than the standard calls for. An additional issue related to excess driver current -- when the driver succeeds in sinking the current available and all lines are driven the total termination current requirement is .83 A. (vs. .73 w/ 220/330.) I'll certainly grant that all lines driven is impossible in practice, however, I can build a possible case for 15 of 18. With the selection of diodes as indicated, the setpoint in the BULL systems scheme varies widely (2.16V to 3.34V -- remote power w/ +5V@-5% to local power w/ +5v@+5%. The too high driver sink requirement occurs with this second case). The low end of this range doesn't allow devices to meet the minimum signal negation voltage spec on an open-collector signal. This low voltage results from starting with +4.75V, less two diode forward drops one of which is a plain 1N4005. (I suspect that this situation does not occur in Bull's systems -- the minimum setpoint with term. power supplied at one end of the cable is 2.46 V.) An aside about diode specifications ( @ 25 degrees C.): Type I(fwd) V(rev) V(fwd) V(fwd) V(fwd) V(fwd) max. work. typ. max. typ. max. Silicon rept. rept. I=.1A I=.1A I=1A I=1A 1N4001 1 A. 50 V .75 V .90 V* .93 V 1.1 V 1N4005 1 A. 600 V .75 V .90 V* .93 V 1.1 V Schottky 1N5818 1 A. 20 V .28 V .33 V .42 V .55 V 1N5821 3 A. 30 V .23 V .28 V* .34 V .38 V *Note: Some V(fwd max @ .1A) valves are calculated. "Budgetary" prices @ 1000 pieces -- 1N4001 = $0.06; 1N5818 = $0.25; 1N5821 = $0.35. My alternative that addresses these problems: 1N5818 or 1N5821 (a) + 5V ----------(Fuse)------->|--------+------ TermPwr | 1N5818 (b) | +-------+---|<----+ | | Cap R 180 Ohm | R Gnd | +---------- Typical Signal Line Note: Add the fuse to supply | TermPwr to the bus, remove R 390 Ohm otherwise. Devices that opt R to never supply TermPwr may | omit diode (a) and provision Gnd for the fuse. By rearranging things and adding the second schottky diode (b) this alleviates most of the problems cited above. I hasten to add that it retains only one of the advantages, but it doesn't make things worse. The characteristic termination impedance of 123 ohms is retained. The setpoint remains above 2.5 V for all reasonable cases with a 1N5821 as diode (a). (With a 1N5818 the worst case is 2.49 V.) Given a Schottky diode supplying TermPwr and a 220/330 ohm divider, this brings up the setpoint by 0.07 V. Compared to a silicon diode, the gain is .43 V. With this improved scheme, the driver current sink requirements are about 50 mA worst case. The maximum TermPwr current requirement is about 0.80 A. (with term. power supply at 5.25 V, the 88-142 proposal dirver current is 50.95 mA, under the same circumstances this revised version results in 48.42 mA.) All this brings me to the conclusion that with clever design we can improve the situation a little. However, the constraints don't give us much latitude. I wonder if the small gains we can achieve are worth it. Perhaps we can change the words in the standard to define the requirements for a prospective termination circuit rather than calling out 220/330 specifically. The 220/330 values could go in an implementors note. Maybe this scheme could go in an appendix. ----------------------------------------------------------------------- This is a summary of the requirements imposed on the termination scheme by the standard and by other considerations as noted. Characteristic impedance not more than 132 ohms. Within the other constraints, a termination impedance as low as 100 ohms would allow a better match to typical cables. The standard suggests that cables of 90 to 110 ohms impedance are appropriate. Devices that supply TERMPWR must provide means to prevent flow of current from the TERMPWR line back into the device. The usual practice is to supply TERMPWR from the +5 V logic supply through a diode. SCSI devices may not sink more than 1 mA from the TERMPWR line. Devices that supply TERMPWR are required to supply a maximum of 800 mA. The voltage limits on the TERMPWR line are 4.25 to 5.25 V. This is specified as the voltage at the device supplying TERMPWR. The voltage at the terminator will be somewhat lower due to the IR drop in the TERMPWR line. IMPLEMENTORS NOTE: Unless the source for the TERMPWR is greater than 5 V, a Schottky diode (such as a 1N5818 or 1N5821) is required to meet the TERMPWR supply voltage limit. The standard (and various regulatory agencies) require some form of current limiting in devices that supply TERMPWR. The standard recommends 1 A. Systems with multiple initiators must be sure that no more than 5 A of TERMPWR current is available to a ground fault. IMPLEMENTORS NOTE: In systems that have only one TERMPWR supply, a low resistance positive temperature co-efficient (PTC) thermistor might be considered to provide current limiting. This device self heats when excessive current is passed; above a critical temperature the resistance increases dramatically. (PTC thermistors are manufactured by Keystone Carbon Co. A 1 ohm device is stocked.) The voltage drop across this device would make it difficult to meet the minimum TERMPWR source voltage of 4.25V from a 5 V supply. .pm 3 The signal negation voltage should be at least 2.5 V. This is the minimum required value for output from a device. The minimum signal false value is 2.0 V. This would imply that the nominal termination setpoint (V thevenin) should be at least 2.5 V. The available current on any signal line should be no more than 48 mA. This includes the current from the terminator as well as the input load of -0.4 mA sourced by as many as 8 devices. The requirement imposed on drivers is to be able to sink at least 48 mA and pull a line down to 0.5 V. Left unspecified is the maximum current when pulling the line to a lower voltage. IMPLEMENTORS NOTE: The 220/330 termination specified in the standard violates this if the termination supply voltage is greater than 5 v. (5.25 V is permitted) and the driver pulls signals down to less than 0.25 V. Summary of termination requirements: Characteristic impedance of 132 ohms or less. Current available to drivers less than or equal to 48 mA when the TERMPWR line is at 5.25 V. and the driver pulls the line to 0.5 V. [or lower ???] The 48 mA must also account for 3.2 mA sourced by the inputs of 8 devices. Negated signal level (setpoint) of 2.5 V or more when TERMPWR is sourced at 4.25 V. The current available to the terminator is 800 mA. IMPLEMENTORS NOTE: These requirements are met with the 220/330 terminator - with an impedance of 132 ohms. They can also be met with a 212/303 ohm terminator - with an impedance of 125 ohms, however these are nonstandard values. It may be possible to use non-linear elements or active termination schemes to achieve lower impedance while meeting all the criteria above. ***************************************************************************** Basic Program to calculate terminator parameters: 10 REM Second revision -- Allows for current flow in the signal leads 20 REM 3 Dec 88 prb also provdes separate specification of the 30 REM terminator on each end. 100 DIM VRAIL(20),NDRVN(20),IOPEN(20),IDRIVE(20),IDR2(20),ISUP(20),ISINK(20) 105 DIM VTERM1(20),VTERM2(20),VTERMP(20),VHIGH(20),IXFER(20) 110 DIM C$(80) 120 PRINT 125 PRINT "Addendum to X3T9.2/88-144R1 - 5 December 1988" 130 PRINT "Single Ended SCSI Bus Termination Calculation" 140 PRINT "Paul Boulay, Laser Magnetic Storage, (719) 595-4323" 150 PRINT 160 INPUT "", TEST 170 IF TEST = 9999 THEN GOTO 9999 180 GOSUB 300 190 GOSUB 500 200 GOSUB 600 210 GOSUB 1200 220 GOTO 160 300 REM Input Subroutine 310 LINE INPUT "", C$ 320 INPUT "", VD1L, VD1H, VD2L, VD2H, VD3L, VD3H, VT 325 INPUT "", RFUSE, RW1, RW2, RW3, RW4, R1, R3, R2, R4, ILOAD 330 ILOAD = ILOAD / 1000 340 RETURN 500 REM Case Seeding Subroutine -- fills in ND and Vrail 501 REM values for Vrail 4.75, 5.00, 5.25 V 502 REM Values for Ndriven 1, 9, 18 510 FOR K = 0 TO 2 520 FOR L = 1 TO 3 523 VRAIL (K*3+L) = 4.75 + .25 * K 530 IF L = 1 THEN NDRVN (K*3+L) = 1 532 IF L = 2 THEN NDRVN (K*3+L) = 17 534 IF L = 3 THEN NDRVN (K*3+L) = 18 540 NEXT L 545 NEXT K 550 RETURN 600 REM Subcase Iterator 610 FOR K = 1 TO 9 710 GOSUB 800 730 NEXT K 740 RETURN 800 REM Calculation subroutine 810 VSUPPLY = VRAIL(K) 840 ND = NDRVN(K) 860 GOSUB 2000 890 ISUP(K) = ITOT 900 VTERM1(K) = VTS 905 VMIN=VRIGHT+VD3 : IF ( VLEFT+VD2 < VRIGHT+VD3 ) THEN VMIN = VLEFT+VD2 910 VTERMP(K) = VMIN 915 VMIN = VR : IF ( VL < VR ) THEN VMIN = VL 920 VHIGH(K) = VMIN 950 ISINK(K) = IDRIVER + ILOAD 960 IXFER(K) = IBRIDGE 980 RETURN 1070 REM loop that calculates the bridge circuit at the open lines 1075 REM vars in: VSL, VSR, VT, R1, R2, R3, R4, R5, R6 1077 REM vars out: VTHL, VTHR, RTHL, RTHR, IR1, IR2, IR5, 1078 REM VL, VR, IDL, IDR, IDBOTH 1080 VTHL = VSL * R3 / (R1 + R3) 1085 VTHR = VSR * R4 / (R2 + R4) 1090 RTHL = R1 * R3 / (R1 + R3) + R5 1095 RTHR = R2 * R4 / (R2 + R4) + R6 1100 IR5 = (VTHL - VTHR) / (RTHL + RTHR) 1105 IR1 = VSL / (R1 + R3) + IR5 1115 VL = (IR1 - IR5) * R3 1120 FOR N = 1 TO 4 1122 R3PLUS = R3 1123 IF (IR5 = 0) THEN GOTO 1135 1125 R5EQ = VL / IR5 1130 R3PLUS = R3 * R5EQ / (R3 + R5EQ) 1135 VL = VSL * R3PLUS / (R1 + R3PLUS) 1140 VR = VL - IR5 * (R5 + R6) 1145 IR1 = (VSL - VL) / R1 1150 IR2 = (VSR - VR) / R2 1155 NEXT N 1160 REM Now calculate the driven circuit numbers 1165 IDL = (VTHL - VT) / RTHL 1170 IDR = (VTHR - VT) / RTHR 1175 IDBOTH = IDL + IDR 1180 RETURN 1200 REM Case Print Subroutine 1210 PRINT 1220 PRINT "Case : ";C$ 1230 PRINT "V d1 @.1A ";VD1L;", @1A ";VD1H 1240 PRINT "V d2 @.1A ";VD2L;", @1A ";VD2H 1245 PRINT "V d3 @.1A ";VD3L;", @1A ";VD3H 1250 PRINT "V driver ";VT 1260 PRINT "R fuse ";RFUSE 1263 PRINT "R term pwr ";RW1;" , ";RW2 1266 PRINT "R sig line ";RW3;" , ";RW4 1270 PRINT "Term Left ";R1;" / ";R3 1280 PRINT "Term Right ";R2;" / ";R4 1290 PRINT "Load Current - per signal - from All Device Inputs ";ILOAD*1000 1310 PRINT "Characteristic Impediance = "; RTHL;" (left) ";RTHR;" (right)" 1320 PRINT 1330 PRINT "Lines Driven "; 1340 FOR K=1 TO 9 1350 PRINT USING " ## ";NDRVN(K); 1360 NEXT K 1370 PRINT 1380 PRINT "V Term Pwr Supply "; 1390 FOR K=1 TO 9 1400 PRINT USING "#.### ";VRAIL(K); 1410 NEXT K 1420 PRINT " V" 1430 PRINT "I Term Power "; 1440 FOR K=1 TO 9 1450 PRINT USING "###.# ";ISUP(K)*1000 ; 1460 NEXT K 1470 PRINT " m A" 1480 PRINT "V Term Pwr @ Srce. "; 1490 FOR K=1 TO 9 1500 PRINT USING "#.### ";VTERM1(K); 1510 NEXT K 1520 PRINT " V" 1530 PRINT "V Term Pwr @ Term. "; 1540 FOR K=1 TO 9 1550 PRINT USING "#.### ";VTERMP(K); 1560 NEXT K 1570 PRINT " V" 1580 PRINT "V Lines Released "; 1590 FOR K=1 TO 9 1600 PRINT USING "#.### ";VHIGH(K); 1610 NEXT K 1620 PRINT " V" 1630 PRINT "I Drivers "; 1640 FOR K=1 TO 9 1650 PRINT USING "##.## ";ISINK(K)*1000; 1660 NEXT K 1670 PRINT " m A" 1680 PRINT "I Bridge "; 1690 FOR K=1 TO 9 1700 PRINT USING "##.## ";IXFER(K)*1000; 1710 NEXT K 1720 PRINT " m A" 1730 PRINT 1740 PRINT 1750 RETURN 1760 END 2000 REM Calculate SINGLE CASE 2005 REM vars in: (VDLx & VDHx (D1,D2,D3)), VSUPPLY, RW1, RW2, RW3, RW4 2006 REM ND, R1, R2, R3, R4, RFUSE, VT 2008 REM vars out: ITOT, IDRIVER, IBRIDGE, VLSIG, VRSIG, VTS, VLEFT, VRIGHT 2020 ITOT = .8 : ILEFT = .4 : IRIGHT = .4 2100 FOR I = 1 TO 5 2110 REM 2111 VD1 = VD1L + ( (VD1H - VD1L) * (ITOT - .1) / .9) 2112 VD2 = VD2L + ( (VD2H - VD2L) * (ILEFT - .1) / .9) 2113 VD3 = VD3L + ( (VD3H - VD3L) * (IRIGHT - .1) / .9) 2150 VTS = VSUPPLY - VD1 - ITOT * RFUSE 2162 VRW1 = ILEFT * RW1 2170 VRW2 = IRIGHT * RW2 2180 VLEFT = VTS - VRW1 - VD2 2190 VRIGHT = VTS - VRW2 - VD3 2200 REM set up to call single circuit calc routine 2210 VSL = VLEFT : VSR = VRIGHT 2220 R5 = RW3 : R6 = RW4 2230 GOSUB 1070 2240 ILDRV = IDL : IRDRV = IDR 2250 ILOPEN = IR1 : IROPEN = IR2 2260 IDRIVER = IDBOTH 2265 IBRIDGE = IR5 2270 VLSIG = VL : VRSIG = VR 2290 ILEFT = ND * ILDRV + (18 - ND) * ILOPEN 2300 IRIGHT = ND * IRDRV + (18 - ND) * IROPEN 2330 REM 2340 ITOT = ILEFT + IRIGHT 2360 REM 2420 NEXT I 2450 RETURN 9999 END