EXP pins: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Adds a page detailing known uses of the NES' EXP pins. This is not yet comprehensive.)
 
(→‎Extended NES I/O (ENIO): Adds ENIO EXP pin info from forum post 98696. Fixes direction of unknown pins to be unknown.)
Line 235: Line 235:


===Extended NES I/O (ENIO)===
===Extended NES I/O (ENIO)===
The [[ENIO]] CPU board can be accessed through either a cart-agnostic compatibility mode or a direct addressing mode, where the cartridge decodes the address and passes R/W and /CE to the ENIO via EXP pins. EXP5 and EXP7-9 are passed to the CPU board, though their specific functions are currently undocumented. EXP6 is used as an expansion audio input. EXP0-4 are routed to an unpopulated header for expansion use.
The [[ENIO]] CPU board can be accessed through either a cart-agnostic compatibility mode or a direct addressing mode, where the cartridge decodes the address and passes R/W and /CE to the ENIO via EXP pins. EXP5 and EXP7-9 are passed to the CPU board, handling R/W, /CE, and presumably other currently-undocumented functionality. EXP6 is used as an expansion audio input. EXP0-4 are routed to an unpopulated header for expansion use.


  Expansion Port    |      Cart      |    Expansion Port
  Expansion Port    |      Cart      |    Expansion Port
Line 241: Line 241:
                           ...
                           ...
  ENIO J4 header ?? |20 EXP4
  ENIO J4 header ?? |20 EXP4
  ENIO J4 header ?? |19 EXP3  EXP5 55| -> ENIO CPU board
  ENIO J4 header ?? |19 EXP3  EXP5 55| ?? unknown (ENIO CPU board)
  ENIO J4 header ?? |18 EXP2  EXP6 54| -> audio
  ENIO J4 header ?? |18 EXP2  EXP6 54| -> audio
  ENIO J4 header ?? |17 EXP1  EXP7 53| -> ENIO CPU board
  ENIO J4 header ?? |17 EXP1  EXP7 53| -> ENIO R/W
  ENIO J4 header ?? |16 EXP0  EXP8 52| -> ENIO CPU board
  ENIO J4 header ?? |16 EXP0  EXP8 52| -> ENIO /CE
                               EXP9 51| -> ENIO CPU board
                               EXP9 51| ?? unknown (ENIO CPU board)
                           ...
                           ...



Revision as of 11:58, 10 August 2022

The EXP pins are expansion pins present on the 72-pin NES cartridge connector and which connect to the expansion port on the bottom of the NES-001 console. These pins were not used by any officially released consumer device, but are used by various unlicensed devices and the FamicomBox hotel console.

Pin summary

EXP0 EXP1 EXP2 EXP3 EXP4 EXP5 EXP6 EXP7 EXP8 EXP9
CopyNES
Everdrive N8
Everdrive N8 Pro
Expansion Port Sound Module (EPSM)
ExROM (MMC5)
Extended NES I/O (ENIO) ~ ~ ~ ~ ~
Famicom-to-NES adapter ♪* ♪*
FamicomBox
INL expansion audio module
Muramasa NES FDS
NES-21G-CPU-72P
PowerPak
PowerPak Lite
TinyNES

✓ : This pin is used.
♪ : This pin is used for expansion audio output (cartridge) or input (expansion device or console).
* : This pin is used by some such devices.
~ : This pin is connected, but lacks a specific function.

Pin notes

EXP0

Some modern cartridges have been observed that connect EXP0 to ground, likely because of the presence of a ground pin on the Famicom's cartridge connector in the region where the EXP pins are placed on the NES'. This provides no meaningful benefit and adds risk. For example, inserting such a cartridge into the FamicomBox can short 5V to ground through this pin, causing damage to the cartridge or console.

EXP2

EXP2 is not present on the NES-101.

EXP3

EXP3 is not present on the NES-101.

EXP5

EXP5 is not present on the NES-101.

EXP6

EXP6 is not present on the NES-101. It has become the standard console input for expansion audio and is used by flash carts, modern homebrew, and modern Famicom-to-NES adapters.

EXP9

Because EXP6 is not present on the NES-101, some NES-101 users have modified cartridges to send expansion audio over EXP9, instead.

Devices

CopyNES

The CopyNES uses EXP0 to write to RAM carts, such as the PowerPak Lite.

Expansion Port Sound Module (EPSM)

The EPSM can be written through either a cart-agnostic universal access mode or a mapper-specific mode, where the cartridge decodes the address and passes chip enable and address bits via EXP pins. It also accepts expansion audio input on EXP6.

Expansion Port    |      Cart       |    Expansion Port
                   -----------------
                          ...
     YMF288 A1 <- |20 EXP4
     EPSM /CE2 <- |19 EXP3   EXP5 55|
                  |18 EXP2   EXP6 54| -> audio
     EPSM /CE1 <- |17 EXP1   EXP7 53| -> YMF288 A0
                  |16 EXP0   EXP8 52| -> EPSM CE3
                             EXP9 51|
                          ...

ExROM (MMC5)

ExROM boards, using MMC5, are configured for expansion audio output on EXP6, though the boards must also have the appropriate resistors and capacitors populated for this to function. EXP5, which is pulled low in the cart, is used as a PRG-RAM read disable.

Expansion Port    |      Cart       |    Expansion Port
                   -----------------
                          ...
                  |20 EXP4
                  |19 EXP3   EXP5 55| <- PRG-RAM /OE
                  |18 EXP2   EXP6 54| -> audio
                  |17 EXP1   EXP7 53|
                  |16 EXP0   EXP8 52|
                             EXP9 51|
                          ...

Extended NES I/O (ENIO)

The ENIO CPU board can be accessed through either a cart-agnostic compatibility mode or a direct addressing mode, where the cartridge decodes the address and passes R/W and /CE to the ENIO via EXP pins. EXP5 and EXP7-9 are passed to the CPU board, handling R/W, /CE, and presumably other currently-undocumented functionality. EXP6 is used as an expansion audio input. EXP0-4 are routed to an unpopulated header for expansion use.

Expansion Port    |      Cart       |    Expansion Port
                   -----------------
                          ...
ENIO J4 header ?? |20 EXP4
ENIO J4 header ?? |19 EXP3   EXP5 55| ?? unknown (ENIO CPU board)
ENIO J4 header ?? |18 EXP2   EXP6 54| -> audio
ENIO J4 header ?? |17 EXP1   EXP7 53| -> ENIO R/W
ENIO J4 header ?? |16 EXP0   EXP8 52| -> ENIO /CE
                             EXP9 51| ?? unknown (ENIO CPU board)
                          ...

Famicom-to-NES adapter

Some Famicom-to-NES adapters connect expansion audio to an EXP pin. If connected, modern adapters typically use EXP6, though EXP2 has been observed due to its proximity to the audio-to-RF pin on the Famicom cartridge connector.

FamicomBox

The FamicomBox uses the EXP pins primarily to indicate slot ID to the cartridge's 3198 CIC. 9 of the pins are tied to some combination of ground and 5V, which can cause damage to non-FamicomBox cartridges that use EXP pins. One additional pin provides A15, which is not used by any contemporary game. Unlike the NES-001, the FamicomBox does not route any of these pins to any external port for expansion use.

 FamicomBox    |      Cart       |    FamicomBox
                -----------------
                       ...
    CPU A15 -> |20 EXP4
/SlotIndex3 -> |19 EXP3   EXP5 55| -- GND
/SlotIndex2 -> |18 EXP2   EXP6 54| -- GND
/SlotIndex1 -> |17 EXP1   EXP7 53| -- GND
/SlotIndex0 -> |16 EXP0   EXP8 52| -- +5V
                          EXP9 51| -- +5V
                       ...

Muramasa NES FDS

Because the NES-001 doesn't easily allow a cartridge to connect with another device via an external cable, Muramasa's NES FDS connects the RAM adapter cartridge and disk drive via the EXP pins.

            Expansion Port    |      Cart       |    Expansion Port
                               -----------------
                                      ...
                serial out <- |20 EXP4
            (R/W) $4034.W2 <- |19 EXP3   EXP5 55| <- serial in
 (transfer reset) $4035.W1 <- |18 EXP2   EXP6 54| -> audio
(write protected) $4032.R2 -> |17 EXP1   EXP7 53| -> $4025.W0 (motor control)
    (disk /ready) $4032.R1 -> |16 EXP0   EXP8 52| <- $4032.R0 (disk /inserted)
                                         EXP9 51| <- battery
                                      ...

NES-21G-CPU-72P

The NES-21G-CPU-72P board is used in some Nintendo test cartridges and makes use of the EXP pins to interact with an unknown device. Writes to $6000 latch the current EXP console-to-cartridge outputs. As-wired, the cartridge does not seem compatible with a standard console because it appears that the $6000 register output is always enabled rather than only on $6000 reads.

Expansion Port    |      Cart       |    Expansion Port
                   -----------------
                          ...
     $6000.R4? -> |20 EXP4
     $6000.R3? -> |19 EXP3   EXP5 55| <- unknown (/IRQ? $6000.R7?)
     $6000.R2? -> |18 EXP2   EXP6 54| -> $6000 /read
     $6000.R1? -> |17 EXP1   EXP7 53| -> unknown
     $6000.R0? -> |16 EXP0   EXP8 52| <- $6000.R6?
                             EXP9 51| <- $6000.R5?
                          ...

NES modem

The NES modem is an unreleased official expansion device that would have allowed online access. It is highly likely this device uses the EXP pins, but no specifics are known.

PowerPak Lite

The PowerPak Lite is programmed with settings for the current game by a CopyNES via EXP0.