Expansion port

From Nesdev wiki
Jump to: navigation, search

Both the NES and Famicom have expansion ports that allow peripheral devices to be connected to the system.

See also: Input devices

Famicom

The Famicom has a 15-pin (male) port on the front edge of the console.

Because its two default controllers were not removable like the NES, peripheral devices had to be attached through this expansion port, rather than through a controller port as on the NES.

This was commonly used for third party controllers, usually as a substitute for the built-in controllers, but sometimes also as a 3rd and 4th player.

Pinout

( Female DA-15 on peripheral )

             /\
            |   \
        GND | 01  \
            |   09 | /OE for joypad 2
      SOUND | 02   |
            |   10 | Out 2 ($4016.2)
        IRQ | 03   |
            |   11 | Out 1 ($4016.1)
Joypad 2 D4 | 04   |
            |   12 | Out 0 ($4016.0, Strobe)
Joypad 2 D3 | 05   |
            |   13 | Joypad 1 D1
Joypad 2 D2 | 06   |
            |   14 | /OE for Joypad 1
Joypad 2 D1 | 07   |
            |   15 | +5V
Joypad 2 D0 | 08  /
            |   /
             \/

Signal descriptions

Digital inputs to the Famicom
Joypad 1 D1, Joypad 2 D1…D4
Digital outputs from the Famicom
Out 0, 1, 2; /OE for both joypads
Open-collector bidirectional
IRQ
Analog outputs
SOUND (before expansion audio is mixed in)
Depends on context
Joypad 2 D0 (In the original famicom, permanently connected to player 2 controller, so an output. On the AV famicom, the player 2 controller could be removed, and allow for this to be an input)


NES

The NES has a 48-pin card edge socket located on the underside of the NES, beneath a plastic tab which must be cut or broken to expose the connector. The width of the connector is exceptionally thick and does not correspond to standard PCB thickness.

Because the NES had controller ports on the front that allowed different devices to be plugged in, the expansion port was a kind of "back up plan" for Nintendo that was never used commercially.

Pinout

                                        +-------\
                                 +5V -- |01   48| -- +5V
                                 Gnd -- |02   47| -- Gnd
                            Audio in -> |03   46| -- NC
                                /NMI <- |04   45| -> out 2 ($4016 write data, bit 2)
                                 A15 <- |05   44| -> out 1 ($4016 write data, bit 1)
                                EXP9 ?? |06   43| -> out 0 ($4016 write data, bit 0, strobe on sticks)
                                EXP8 ?? |07   42| ?? EXP0
                                EXP7 ?? |08   41| ?? EXP1
                                EXP6 ?? |09   40| ?? EXP2
                                EXP5 ?? |10   39| ?? EXP3
($4017 read strobe) /OE for joypad 2 <- |11   38| ?? EXP4
                         joypad 1 D1 -> |12   37| -> /OE for joypad 1 ($4016 read strobe)
                         joypad 1 D3 xx |13   36| xx joypad 1 D4
                                /IRQ <> |14   35| xx joypad 1 D0
                         joypad 2 D2 -> |15   34| -> duplicate of pin 37
                         joypad 2 D3 xx |16   33| <- joypad 1 D2
                 duplicate of pin 11 <- |17   32| <> CPU D0
                         joypad 2 D4 xx |18   31| <> CPU D1
                         joypad 2 D0 xx |19   30| <> CPU D2
                         joypad 2 D1 -> |20   29| <> CPU D3
                           Video out <- |21   28| <> CPU D4
                           Audio out <- |22   27| <> CPU D5
       unregulated power adapter vdd -- |23   26| <> CPU D6
                     4.00MHz CIC CLK <- |24   25| <> CPU D7
                                        +-------/

Extra notes