-------------------------------------------------- ----------------------------

 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]