mirror of
https://github.com/akuker/RASCSI.git
synced 2024-09-11 18:56:58 +00:00
116 lines
4.8 KiB
Plaintext
116 lines
4.8 KiB
Plaintext
-------------------------------------------------- ----------------------------
|
||
|
||
SCSI Target Emulator RaSCSI for Raspberry Pi
|
||
|
||
Powered by XM6 TypeG Technology.
|
||
Copyright (C) 2016-2020 GIMONS
|
||
|
||
-------------------------------------------------- ----------------------------
|
||
|
||
□ Necessity of conversion board
|
||
SCSI divides 5V at 220Ω and 330Ω at TTL level (in the case of passive terminator)
|
||
As a result, the state where a voltage of less than 3 V is applied to each signal line becomes a steady state (signal-wise negate)
|
||
It has become.
|
||
|
||
Initiator side or target side tries to assert signal (=0V)
|
||
Then, a total current of 5000÷220×2=45mA flows from both terminators.
|
||
If you look at the data sheet of MB89352 which is the SCSI controller of X68000,
|
||
The current is Iol48mA).
|
||
|
||
The RPI GPIO cannot absorb such a large sink current. Electrically secure connection
|
||
To do this, it is necessary to make a conversion board with a general-purpose logic IC. General logic
|
||
It is an open collector such as 74LS06 or 07 that can withstand a sink current of 48 mA with IC.
|
||
Use the high power type.
|
||
|
||
The author does basic SCSI direction control with 74HC541×3,74HC126×1,74HC04×1
|
||
I tried to build a circuit to drive the bus using 74LS07 × 3 and it works without problems
|
||
I confirmed that.
|
||
|
||
If you use 74LS641-1 which is a derivative of 74LS641, you can configure the circuit simply.
|
||
Would be Unlike normal products, the sink current is compatible with 48 mA, so it is necessary to use 74LS07
|
||
there is no. But availability is not so good.
|
||
|
||
□ Circuit board of conversion board
|
||
The circuit design is put in the same folder.
|
||
|
||
・Target.png
|
||
Conversion board circuit diagram for using SCSI target mode. It is a basic function
|
||
If you want to emulate HDD or MO, you can make something equivalent to this circuit diagram.
|
||
Would be It also uses the fewest GPIO pins.
|
||
|
||
If you do not change the pin assignment, it will be included in the standard directory of RaSCSI
|
||
It is possible to use the binary.
|
||
|
||
・Fullspec.png
|
||
It is a conversion board circuit diagram that can use SCSI target mode and initiator mode.
|
||
All 74LS641-1 direction control is performed from RaSCSI, so use 3 extra GPIO pins
|
||
I will do it.
|
||
|
||
Customize pin assignments to PIN_TAD, PIN_IND, PIN_DTD respectively
|
||
Now you need to set 6,7,8 and compile. Pin assigned
|
||
See Customization.
|
||
|
||
□ How to get existing ones
|
||
Recently, you have created a conversion board for RaSCSI mainly through the Twitter area.
|
||
There are people who are. Introducing here
|
||
Is omitted. The timing is undecided, but we plan to distribute the official version for a fee.
|
||
|
||
□ Customize pin assignment
|
||
The signal control logic and pin assignment of GPIO are defined in gpiobus.h.
|
||
|
||
As a customization example, the following two conversion board definition examples are prepared in gpiobus.h.
|
||
Compiled binaries are also included in the distribution.
|
||
|
||
・Aibomu version
|
||
・GAMERnium version
|
||
|
||
□ How to customize
|
||
-This is a message when starting up RaSCSI.
|
||
CONNECT_DESC
|
||
|
||
・Select the signal control mode.
|
||
SIGNAL_CONTROL_MODE
|
||
|
||
0: SCSI logical specification
|
||
Conversion board using 74LS641-1 etc. directly connected or published on HP
|
||
Arthurt: 0V
|
||
Negative: Open collector output (disconnect from bus)
|
||
|
||
1: Negative logic specification (when using the conversion board for negative logic -> SCSI logic)
|
||
There are no conversion boards with this specification at this time
|
||
Arthurt: 0V -> (CONVERT) -> 0V
|
||
Negative: 3.3V -> (CONVERT) -> Open collector output
|
||
|
||
2: Positive logic specification (when using the conversion board for positive logic -> SCSI logic)
|
||
RaSCSI Adapter Rev.C @132sync etc.
|
||
|
||
Arthurt: 3.3V -> (CONVERT) -> 0V
|
||
Negative: 0V -> (CONVERT) -> Open collector output
|
||
|
||
・Control signal pin assignment
|
||
PIN_ACT: The pin number of the signal that indicates the status that the SCSI command is being processed.
|
||
PIN_ENB: Pin number of the signal that indicates the valid signal from start to finish.
|
||
PIN_TAD: Pin number of the signal that indicates the input/output direction of the target signal (BSY,IO,CD,MSG,REG).
|
||
PIN_IND: Pin number of the signal indicating the input/output direction of the initiator signal (SEL, ATN, RST, ACK).
|
||
PIN_DTD: Pin number of the signal that indicates the input/output direction of the data signal (DT0...DT7,DP).
|
||
|
||
・Control signal output logic
|
||
0V:FALSE Specify with 3.3V:TRUE.
|
||
|
||
ACT_ON: PIN_ACT signal logic.
|
||
ENB_ON: Logic of PIN_ENB signal.
|
||
TAD_IN:PIN_TAD This is the logic in the input direction.
|
||
IND_IN:PIN_ENB Logic in the input direction.
|
||
DTD_IN:PIN_ENB Logic in the input direction.
|
||
|
||
・ SCSI signal pin assignment
|
||
PIN_DT0 to PIN_SEL: Each is the pin number of the SCSI signal.
|
||
|
||
□ How to compile
|
||
|
||
・Executable files (rascsi, rasctl)
|
||
Fix gpiobus.h
|
||
make clean
|
||
make
|
||
|
||
[EOF] |