Mask ROM pinout

From NESdev Wiki
Revision as of 22:48, 21 November 2010 by Tepples (talk | contribs) (→‎8kB / 16kB / 32kB / 64kBytes (28pin) ROMs: Use inline-block so that diagrams can drop to the next line on smaller monitors)
Jump to navigationJump to search

8kB / 16kB / 32kB / 64kBytes (28pin) ROMs

Nintendo used by default JEDEC standard compatible pinout for all their mask ROMs of 64 kByes and below. Names [in brackets] applies when the corresponding address pin is unused. On boards where an adress pin is never used (for example, A15 is never used on NROM boards as the ROM can't be greater than 32k), what is in brackets connects to the unused pin.

For some unknown reasons, unused address lines on smaller ROMs had to be put to +5V, as Nintendo made different boards for each size (as opposed to place EPROMs of different sizes into the same slot). Some boards, such as CNROM, features solder pads in order to force those pins to +5V though.

This doesn't apply to CHR ROMs - i.e. a smaller ROM can always fit a slot made with a larger ROM in mind.

   27C64/128/256/512 EPROM pinout
 
               ---_---
  [+5V] A15 - |01   28| - +5V
        A12 - |02   27| - A14 [PGM]
        A7  - |03   26| - A13 [NC]
        A6  - |04   25| - A8
        A5  - |05   24| - A9
        A4  - |06   23| - A11
        A3  - |07   22| - /OE
        A2  - |08   21| - A10
        A1  - |09   20| - /CE
        A0  - |10   19| - D7
        D0  - |11   18| - D6
        D1  - |12   17| - D5
        D2  - |13   16| - D4
        GND - |14   15| - D3
               -------
               PRG ROM pinout
 
                  ---_---
 [+5V] PRG A15 - |01   28| - +5V
       PRG A12 - |02   27| - PRG A14 [+5V]
       PRG A7  - |03   26| - PRG A13 [N/C]
       PRG A6  - |04   25| - PRG A8
       PRG A5  - |05   24| - PRG A9
       PRG A4  - |06   23| - PRG A11
       PRG A3  - |07   22| - PRG /CE
       PRG A2  - |08   21| - PRG A10
       PRG A1  - |09   20| - GND
       PRG A0  - |10   19| - PRG D7
       PRG D0  - |11   18| - PRG D6
       PRG D1  - |12   17| - PRG D5
       PRG D2  - |13   16| - PRG D4
       GND     - |14   15| - PRG D3
                  -------
               CHR ROM pinout
 
                  ---_---
       +5V     - |01   28| - +5V
       CHR A12 - |02   27| - PRG A14
       CHR A7  - |03   26| - PRG A13
       CHR A6  - |04   25| - CHR A8
       CHR A5  - |05   24| - CHR A9
       CHR A4  - |06   23| - CHR A11
       CHR A3  - |07   22| - /OE (CHR /RD)
       CHR A2  - |08   21| - CHR A10
       CHR A1  - |09   20| - /CE (CHR A13)
       CHR A0  - |10   19| - CHR D7
       CHR D0  - |11   18| - CHR D6
       CHR D1  - |12   17| - CHR D5
       CHR D2  - |13   16| - CHR D4
       GND     - |14   15| - CHR D3
                  -------

128/256/512 KBytes (28/32pin) ROMs

Nintendo used for the vast majority of their boards a different pinout which is not JEDEC compatible. The location of enable lines and higher address lines is changed (highlighted in bold). This system allows 128 KB PRG ROMs are only 28 pins, they are shuffled 2 pins down, starting from pin 3 to pin 30.

All known non-Nintendo made boards with ROMs of those sizes that aren't made of Epoxy blobs uses a 27C010/020/040 EPROM compatible pinouts. Nintendo also made boards with such compatible pinouts, but they only exists in prototypes, and therefore are extremely rare.

On boards where PRG A18 is never used, pin 2 is connected with pin 22.

        27C010/020/040/80 EPROM pinout

                ---_---
   [VPP] A19 - |01   32| - +5V
         A16 - |02   31| - A18 [PGM]
         A15 - |03   30| - A17 [NC]
         A12 - |04   29| - A14
         A7  - |05   28| - A13
         A6  - |06   27| - A8
         A5  - |07   26| - A9
         A4  - |08   25| - A11
         A3  - |09   24| - /OE
         A2  - |10   23| - A10
         A1  - |11   22| - /CE
         A0  - |12   21| - D7
         D0  - |13   20| - D6
         D1  - |14   19| - D5
         D2  - |15   18| - D4
         GND - |16   17| - D3
                -------
        Nintendo PRG ROM pinout

                 ---_---
      PRG A17 - |01   32| - +5V
[/CE] PRG A18 - |02   31| - +5V
      PRG A15 - |03   30| - +5V
      PRG A12 - |04   29| - PRG A14
      PRG A7  - |05   28| - PRG A13
      PRG A6  - |06   27| - PRG A8 
      PRG A5  - |07   26| - PRG A9
      PRG A4  - |08   25| - PRG A11
      PRG A3  - |09   24| - PRG A16
      PRG A2  - |10   23| - PRG A10
      PRG A1  - |11   22| - PRG /CE
      PRG A0  - |12   21| - PRG D7
      PRG D0  - |13   20| - PRG D6
      PRG D1  - |14   19| - PRG D5
      PRG D2  - |15   18| - PRG D4
      GND     - |16   17| - PRG D3
                 -------
         Nintendo CHR ROM pinout

                 ---_---
[+5V] CHR A17 - |01   32| - +5V
(CHR /RD) /OE - |02   31| - /CE (CHR A13)
      CHR A15 - |03   30| - +5V
      CHR A12 - |04   29| - CHR A14
      CHR A7  - |05   28| - CHR A13
      CHR A6  - |06   27| - CHR A8 
      CHR A5  - |07   26| - CHR A9
      CHR A4  - |08   25| - CHR A11
      CHR A3  - |09   24| - CHR A16
      CHR A2  - |10   23| - CHR A10
      CHR A1  - |11   22| - GND (/OE ?)
      CHR A0  - |12   21| - CHR D7
      CHR D0  - |13   20| - CHR D6
      CHR D1  - |14   19| - CHR D5
      CHR D2  - |15   18| - CHR D4
      GND     - |16   17| - CHR D3
                 -------

Variants

Here is a list of multiple variants of Nintendo's pinouts above. Only a couple of enable pins typically differs (which are shown in bold).

Nintendo MMC5 PRG/CHR ROM pinouts - 128/256/512/1024 kBytes (32pin)

Variant of Nintendo's pinouts just above for MMC5 boards which supports up to 1MB of data. Both PRG and CHR ROMs are the same pinout, and even 128 KB PRG ROMs are 32-pin so they can have a VCC pin.

      Nintendo MMC5 PRG ROM pinout

          ----_---- 
PRG A17 - |01   32| - +5V
PRG A18 - |02   31| - PRG /CE
PRG A15 - |03   30| - PRG A19 
PRG A12 - |04   29| - PRG A14 
 PRG A7 - |05   28| - PRG A13 
 PRG A6 - |06   27| - PRG A8 
 PRG A5 - |07   26| - PRG A9 
 PRG A4 - |08   25| - PRG A11 
 PRG A3 - |09   24| - PRG A16 
 PRG A2 - |10   23| - PRG A10 
 PRG A1 - |11   22| - /OE (GND)
 PRG A0 - |12   21| - PRG D7
 PRG D0 - |13   20| - PRG D6 
 PRG D1 - |14   19| - PRG D5 
 PRG D2 - |15   18| - PRG D4 
    GND - |16   17| - PRG D3 
           -------
     Nintendo MMC5 CHR ROM pinout

          ----_---- 
CHR A17 - |01   32| - +5V
CHR A18 - |02   31| - /CE (CHR A13)
CHR A15 - |03   30| - CHR A19
CHR A12 - |04   29| - CHR A14
 CHR A7 - |05   28| - CHR A13
 CHR A6 - |06   27| - CHR A8
 CHR A5 - |07   26| - CHR A9
 CHR A4 - |08   25| - CHR A11
 CHR A3 - |09   24| - CHR A16
 CHR A2 - |10   23| - CHR A10
 CHR A1 - |11   22| - /OE (CHR /RD)
 CHR A0 - |12   21| - CHR D7
 CHR D0 - |13   20| - CHR D6
 CHR D1 - |14   19| - CHR D5
 CHR D2 - |15   18| - CHR D4
    GND - |16   17| - CHR D3
           -------

Nintendo AOROM PRG ROM pinout - 128/256/KBytes (32pin)

Very slight variant of the standard PRG-ROM pinout above, where an additional active high enable line is used to prevent bus conflicts.

                 ---_---
      PRG A17 - |01   32| - +5V
      PRG /CE - |02   31| - CE (R/W)
      PRG A15 - |03   30| - +5V
      PRG A12 - |04   29| - PRG A14
      PRG A7  - |05   28| - PRG A13
      PRG A6  - |06   27| - PRG A8 
      PRG A5  - |07   26| - PRG A9
      PRG A4  - |08   25| - PRG A11
      PRG A3  - |09   24| - PRG A16
      PRG A2  - |10   23| - PRG A10
      PRG A1  - |11   22| - PRG /CE
      PRG A0  - |12   21| - PRG D7
      PRG D0  - |13   20| - PRG D6
      PRG D1  - |14   19| - PRG D5
      PRG D2  - |15   18| - PRG D4
      GND     - |16   17| - PRG D3
                 -------

Signal descriptions

A0-A12
address
D0-D7
data
/CE, /OE
The ROM will output data at adress A on pins D only if all it's CE and OE pins are active (CE active high, /CE active low).
PGM, VPP
Used only during EPROM programing / erasing process.

See here for other signals descriptions.