-
-
Notifications
You must be signed in to change notification settings - Fork 82
Transceiver Comparison
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 |
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.
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.
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
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 |
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
- Home
- Initial Setup
- Documentation
- Companion Apps
- Developer Notes