Expansion port: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (→‎Extra notes: explain "xx")
(→‎NES: moving inversion statement to notes, felt having it on only 2 pins wrongly implied that only they get inverted)
Line 66: Line 66:
  ($4017 read strobe) /OE for joypad 2 <- |11  38| ?? EXP4
  ($4017 read strobe) /OE for joypad 2 <- |11  38| ?? EXP4
                           joypad 1 D1 -> |12  37| -> /OE for joypad 1 ($4016 read strobe)
                           joypad 1 D1 -> |12  37| -> /OE for joypad 1 ($4016 read strobe)
                           joypad 1 D3 xx |13  36| xx joypad 1 D4 (before inverting buffer)
                           joypad 1 D3 xx |13  36| xx joypad 1 D4
                                 /IRQ <> |14  35| xx joypad 1 D0 (likewise)
                                 /IRQ <> |14  35| xx joypad 1 D0
                           joypad 2 D2 -> |15  34| -> duplicate of pin 37
                           joypad 2 D2 -> |15  34| -> duplicate of pin 37
                           joypad 2 D3 xx |16  33| <- joypad 1 D2
                           joypad 2 D3 xx |16  33| <- joypad 1 D2
Line 82: Line 82:
===Extra notes===
===Extra notes===


* See [[Cartridge connector#Signal descriptions]] for notes about the ten EXP pins
* All joypad input lines D0-4 are logically inverted before reaching the CPU. A high signal will be read as a 0 and vice versa.
* /NMI is an output because the PPU uses a push-pull driver, not open-drain signalling
* <tt>xx</tt> in above pinout: Joypad 1 and 2 D0, D3, and D4 are available as an input if no peripheral is connected to the corresponding [[Controller port pinout|joystick port]] that uses those bits:
* <tt>xx</tt> in above pinout: Joypad 1 and 2 D0, D3, and D4 are available as an input if no peripheral is connected to the corresponding joystick port that uses those bits:
** e.g. D0 is unavailable if a [[Standard controller]] or [[Four score]] is plugged in, and
** e.g. D0 is unavailable if a [[Standard controller]] or [[Four score]] is plugged in, and
** D3 and D4 are unavailable if a [[Zapper]], [[Arkanoid controller]], or [[Power Pad]] is plugged in.
** D3 and D4 are unavailable if a [[Zapper]], [[Arkanoid controller]], or [[Power Pad]] is plugged in.
* /NMI is an output because the PPU uses a push-pull driver, not open-drain signalling.
* See [[Cartridge connector#Signal descriptions]] for notes about the ten EXP pins.
* See [[Standard controller]] and [[Controller port pinout]] for more information about controller connections.

Revision as of 22:19, 24 November 2017

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