Skip to content

Transceiver Comparison

Tony Kuker edited this page Dec 4, 2022 · 36 revisions

The original PiSCSI uses the SN74LS641 bus transceiver. However, with each device needed 4 of these @ $3.30 each, the amounts to a significant percentage of the cost. The following contains some notes regarding what other SCSI emulators have used.

Suitable for PiSCSI? Product Chip and Datasheet Cost ($) Qty needed Notes
PiSCSI Original Version SN74LS641-1 $3.66 US 4 VCC is 5v
✅❓ Potential Candidate SN74ALS245A-1 $1.42 US 4 VCC 5v, -1 unit will sink 48mA
✅❓ Potential Candidate SN74F245DW $1.11 US 4 Low state current can sink 48mA
✅❓ Potential Candidate SN74ABT245B $1.00 - $1.30 US 4
AIBOM RaSCSI Transceiver SN75LBC968 $10.98 US 2
Scuznet SN74LVTH126DR 0.64 4 -
Scsi2SD - According to LC-SCSI SN74LVT245B, Data Sheet 0.90 4 VCC is 3.3v
Scsi2SD V5.1 (2018d) SN74LVT125 SOIC-14, TSSOP-14, Data Sheet 0.87 ? "3.3V ABT Quadruple Bus Buffer with 3-state outputs"
Unsuitable 74AHC245 0.22 4 VCC is 5v. Datasheet reads input clamping current -20mA
Unsuitable SN74LS245DW 1.34 4 Can only sink 24mA, SCSI protocol requires 48mA
Unsuitable SN7406DRG4 1.34 4 Can only sink 40mA. Will require new layout and increase in chip count as it has less i/o than above.
Unsuitable 74HCT245D $0.69 US 4 VCC is 5v. Datasheet reads input clamping current -20mA

Note: as of 2020-08-04 the SN74LS641-1 is the transceiver suggested when building the PiSCSI.

Some additional parts

Part Chip and Datasheet Cost ($) Qty needed Notes
Linear Regulator (for active terminator) LM1117SX 1.51 1 800mA LDO

Discussion

Raspberry Pi

The following descriptions are sourced from the RPi's official documentation, but may vary between different versions of the RPi (0, 1, 2, 3, 4, etc).

The documentation on the Raspberry Pi's GPIO pins is here.

Each of the three banks has its own VDD input pin. On Raspberry Pi, all GPIO banks are supplied from 3.3V. Connection of a GPIO to a voltage higher than 3.3V will likely destroy the GPIO block within the SoC.

While the drive current of the GPIO pins are configurable up to 16mA, the 3.3v supply that powers them cannot reach the maximum current for all pins.

The Raspberry Pi 3V3 supply was designed with a maximum current of ~3mA per GPIO pin. If you load each pin with 16mA, the total current is 272mA. The 3V3 supply will collapse under that level of load.

Simultaneously, at 3.3v the pins are rated to sink at least 18mA and still meet spec.

SCSI-2 Bus

The SCSI protocol suggests drivers capable of sinking 48mA. (1) You can see in this example of a SCSI interface circuit.

This reference on SCSI terminators also states

... (i)t is the terminator’s job to source as much current as possible during deassertion. This role is restricted by the SCSI specification, however, which limits each terminator to supplying a maximum of 24mA to prevent the line current from exceeding the 48mA current sink limit of the open-collector drivers. (pg 8)

There is also a discussion of the role of passive and active SCSI termination in this reference (see pg 10).

See section 5.4 of the SCSI-2 standard

5.4.1 Single-ended alternative
All signals not defined as RESERVED, GROUND, or TERMPWR shall be terminated at both ends of 
the cable. The implementor may choose one of the following two methods to terminate each end
(see figures 9 and 10):

a) The termination of each signal shall consist of 220 ohms (+/-5%) to the TERMPWR line and 
   330 ohms (+/-5%) to ground. Using resistors with +/-1% tolerance improves noise margins.
b) The termination of each signal shall meet these requirements:
    1) The terminators shall each supply a characteristic impedance between 100 ohms and 
       132 ohms.
    2) The terminators shall be powered by the TERMPWR line and may receive additional power
       from other sources but shall not require such additional power for proper operation 
       (see 5.4.3).
    3) The current available to any signal line driver shall not exceed 48 mA when the driver
       asserts the line and pulls it to 0.5 V d.c. Only 44.8 mA of this current shall be 
       available from the two terminators.
    4) The voltage on all released signal lines shall be at least 2.5 V d.c. when the 
       TERMPWR line is within specified values (see 5.4.3).
    5) These conditions shall be met with any legal configuration of targets and initiators
       as long as at least one device is supplying TERMPWR. 


5.4.1.1 Output characteristics
All signals shall use open-collector or three-state drivers. Each signal driven by an SCSI
device shall have the following output characteristics when measured at the SCSI device's 
connector:
    VOL (low-level output voltage)  = 0.0 to 0.5 V d.c. at 48 mA sinking (signal assertion)
    VOH (high-level output voltage) = 2.5 to 5.25 V d.c. (signal negation) 

5.4.1.2 Input characteristics
SCSI devices with power on shall meet the following electrical characteristics on each 
signal (including both receivers and passive drivers):
    VIL (low-level input voltage)   = 0.0 V d.c. to 0.8 V d.c. (signal true)
    VIH (high-level input voltage)  = 2.0 V d.c. to 5.25 V d.c. (signal false)
    IIL (low-level input current)   = -0.4 mA to 0.0 mA at VI = 0.5 V d.c.
    IIH (high-level input current)  = 0.0 mA to 0.1 mA at VI = 2.7 V d.c.
    Minimum input hysteresis        = 0.2 V d.c.
    Maximum input capacitance       = 25 pF (measured at the device connector
                                      closest to the stub, if any, within the
                                      device) 

It is recommended that SCSI devices with power off also meet the above IIL and IIH 
electrical characteristics on each signal.
To achieve maximum noise immunity and to assure proper operation with complex cable 
configurations, it is recommended that the nominal switching threshold be approximately 1.4 V. 

PiSCSI

From the v1.6 schematic, the following signals need to be bidirectional:

DP, D0, D1, D2, D3, D4, D5, D6, D7

Similarly, the following signals are from the RPi to the SCSI bus:

BSY, MSG, C_D, REQ, I_O

For SCSI-2, it seems that the drivers should be open-collector/open-drain drivers (ie: they can pull the bus down to ground, and the termination on the bus will pull back high.)

Finally, these are the signals to the RPi from the SCSI bus:

ATN, ACK, RST, SEL

They should probably be Schmitt-trigger inputs on the SCSI bus side. See the "Single-Ended SCSI" section of this document; specifically page 8 of the PDF.

2.85v Typical SCSI Open-Circuit Voltage
2.5v SCSI Minimum Output Voltage for Deasserted Signal
2v SCSI Minimum Input Voltage for Deasserted Signal
...
0.8v Maximum Input Voltage for Asserted Signal
0.5v SCSI Maximum Output Voltage for Asserted Signal
0.2v Typical Driver-Asserted Signal

From the 2.x schematic, all signals are bidirectional, switched on three different signals.

Switched by PI-DTD:

DP, D0, D1, D2, D3, D4, D5, D6, D7

Switched by PI-TAD:

BSY, MSG, C_D, REQ, I_O

Switched by PI-IND:

ATN, ACK, RST, SEL

Detailed discusison/comparison

74xx series logic parts

Wikipedia list of 74xx logic parts

Part number Units Description Input Output Pins Datasheet
74x125 4 quad bus buffer, negative enable three-state 14 SN74LS125A
74x126 4 quad bus buffer, positive enable three-state 14 SN74LS126A
74x245 8 octal bus transceiver, non-inverting outputs Schmitt trigger three-state 20 SN74LS245
74x641 1 octal bus transceiver, non-inverting outputs open-collector 20 SN74LS641

Logic Families

Texas Instruments Logic guide

LS, LVTH, LVT, AHCT, F, AHC, ALS, F, ABT, HCT,

Families Voltage Process Bus-Hold Series Damping Resistors IOFF F (Partial Power Down) Schmitt Triggers Overvoltagetolerant Inputs Power-off Output Disable Power-up 3-State
ABT 5 Bi-CMOS X X X X
AHC 3.3, 5 CMOS X X
AHCT/HCT 5 CMOS X X
ALS 5 Bi-Polar
F 5 Bi-Polar X
LS 5 Bi-Polar
LVT/LVTH * 3.3 Bi-CMOS X X X X X
  • LVT/LVTH: The original LVT devices had the bus-hold feature. The LVTH replacements for these devices not only have bus hold, but also have the High-Impedance State During Power Up and Power Down feature

What about NTS0104?

Notes

(1) Comment by saybur

Clone this wiki locally