mirror of
https://github.com/akuker/RASCSI.git
synced 2024-12-02 04:49:24 +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]
|