FLASH 23C1000: Difference between revisions

From Tandy Tech
Jump to navigation Jump to search
 
(62 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Summary=
=Summary=
'''UNTESTED - awaiting OSHPark order'''
Adapter board to use a flash chip for the system rom in a NEC PC-8300, PC-8401, PC-8500, or anything else that has a 23C1000 mask rom.
 
Adapter board to use a flash chip for the system rom in a NEC PC-8300.


<gallery>
<gallery>
FlashROM_8300_1.png
FLASH_23C1000_01.jpg
FlashROM_8300_2.png
FLASH_23C1000_02.jpg
FlashROM_8300_3.png
FLASH_23C1000_03.jpg
FlashROM_8300_4.png
FLASH_23C1000_04.jpg
FlashROM_8300_5.png
<!-- FLASH_23C1000_05.jpg -->
FlashROM_8300_6.png
<!-- FLASH_23C1000_06.jpg -->
FlashROM_8300_7.png
FlashROM_8300_04.jpg
FlashROM_8300_8.png
FlashROM_8300_05.jpg
FlashROM_8300_9.png
FlashROM_8300_06.jpg
FlashROM_8300_10.png
FlashROM_8300_07.jpg
FlashROM_8300_11.png
FlashROM_8300_08.jpg
UPD23C1000_FLASH_shematic.png
<!-- FlashROM_8300_09.jpg -->
FlashROM_8300_10.jpg
FlashROM_8300_11.jpg
FlashROM_8300_12.jpg
FlashROM_8300_13.jpg
FlashROM_8300_14.jpg
FlashROM_8300_15.jpg
FlashROM_8300_16.jpg
</gallery>
</gallery>


=PCB=
PCB: [https://oshpark.com/shared_projects/sD1Clmi9 OSHPark] or [https://www.pcbway.com/project/shareproject/FlashROM_8300.html PCBWAY]
:https://oshpark.com/shared_projects/Bx4J3uAW
 
=BOM=
:From Mouser, using the GLS29EE010 flash eeprom chip: [[File:FlashROM 8300 GLS29EE010 TSOP BOM Mouser.pdf|thumb]]
:From Digi-Key, using the SST39SF010 flash chip: https://www.digikey.com/short/z8jfdq
 
=Source=
KiCAD schematic and pcb cad source
:https://github.com/bkw777/aDIPters
 
=Info=
Mask rom data sheet
:[[File:UPD23C1000A.pdf|thumb]]


Flash EEPROM chip GLS29EE010, PLCC32 and TSOP32 8x20mm
<!-- 28-pin version
:https://mou.sr/39tR5zu
BOM: https://www.digikey.com/short/z8jfdq
-->
BOM: https://www.digikey.com/short/z8293n


Alternate flash chip SST39SF010, PLCC32 and TSOP32 8x14mm
Source: https://github.com/bkw777/aDIPters
:https://www.digikey.com/short/z88hb8


If you think you might have a difficult tim soldering the TSOP chips in the pre-loaded BOMs above, you can substitute the PLCC version of the same parts. Any speed and any temperature range is ok.
=ROM images=
:NEC PC-8300 system rom: [[File:831000-438.bin]]
:NEC PC-8300 system rom, Y2K patched: [[File:831000-438-y2k.bin]] (See [[Model_T_Y2K]])
<!--
:NEC PC-8401 system rom: [[File:PC-8401_IC24.bin]] -->


ROM images
:NEC PC-8500 system rom: [[File:PC-8500_IC9.bin]]
:(rom dump not verified yet)


=Directions=
=Directions=


==Building==
==Build==
See [[FlexROM_100]] to see how to do the dip legs.<br>
See [[FlexROM_100]] to see how to do the dip legs.<br>
Search youtube for "drag solder" to see how to solder the TSOP legs with an ordinary soldering iron.
Search youtube for "drag solder" to see how to solder the TSOP legs with an ordinary soldering iron.


Suggest installing parts in this order:
Suggest installing parts in this order:
# Legs - The holes for the the legs are intentionally small and a fairly close fit on the legs. The legs should be installed first to avoid a problem if you accidentally get solder in some of the holes, it can be difficult to wick the holes clean enough to insert the legs after that.
# Legs - The holes for the the legs are intentionally small and a fairly close fit on the legs. The legs should be installed first to avoid the problem where if you accidentally get solder in some of the holes while soldering the other parts near by, it can be difficult to wick the holes clean enough to insert the legs after that without vacuum.
# R1 - R1 is surrounded by other parts, and especially if you are using a PLCC chip, the corner of the PLCC actually extends over top of part of of R1. So it's easiest to install R1 before anything else, definitely before the PLCC chip if using that type instead of TSOP.
# R1, R2
# TSOP or PLCC chip - Especially if you're using the 8x20mm TSOP chip, the jumper pins would be in the way and make it difficult to solder the TSOP legs.
# TSOP or PLCC chip
# Jumper pins
# Jumper pins - Flush-cut the posts on the bottom of the board after soldering.


==Programming==
You don't install R3 usually. It is for VPP on pin 1, to support EEPROM/EPROM devices that have a VPP pin. These are all old devices that aren't made any more, but you can still buy used and new-old-stock. Don't install R3 if you're using the SST39SF010A part in the BOM linked above, or any 29 or 39 series flash chip. But if you happen to already have a 28F010, 28SF010, 27SF010, 27C010 etc, you can use it instead of the 39SF010, and if so, you need to install R3. 47K the same as the others.
 
==Program==
Requirements:
Requirements:
* eprom programmer, such as TL-866
* eprom programmer, such as TL-866
* 3 short male-female dupont style jumper wires.


No matter which chip or which package type you use on the board, the board provides a pinout that matches the PDIP/PLCC version of the chip, so you can program and re-program the chip any time by just putting the board into an eprom programmer ZIF socket as if the whole board were a PDIP chip.
<!-- No matter which chip or which package type you use on the board, when the jumper is in the PRG position the board provides a pinout on the DIP legs that matches the PLCC version of the chip. -->
 
To program the chip,
* Move the jumper to PRG
* Put the board into a programmers' ZIF socket
 
  minipro -p "SST39SF010A" -w 831000-438-y2k.bin
 
==Install==
Move the jumper to RUN
 
Put the board in the 23C1000 socket, with pins 3-30 in the socket, and pins 1,2,31,32 hanging off the end of the socket.
:ROM0 in PC-8300, IC24 in PC-8401, IC9 in PC-8500
:for PC-8401, cut pin 1 a little short so that it doesn't touch R65, or use the DIP-28 version of the board (see FLASH_23C1000_DIP28 from github.com/bkw777/aDIPters)
 
For PC-8300, press Shift-CTRL-Reset to hard-reset the PC-8300 to force it to load the new rom, including re-reading the one-time power-on defaults. If the date says 2000, then you got it. If the date says 1983 or 2083, then you didn't do a full reset (assuming the y2k-patched rom image).
 
=References=
Datasheet for the 23C1000 mask rom:
:[[File:UPD23C1000A.pdf]]
:[[File:MX23C1000.pdf]]
 
NEC PC-8300, PC-8401, and PC-8500  computers use a 23C1000 mask rom for the system rom.
 
23C1000 is an unusual 128K mask rom in a DIP-28 package. A 128K device usually requires 32 pins. 23C1000 fits into a 28 pin package by using the Vpp and /OE pins for A15 and A16 instead. A mask rom is not writable so the Vpp pin is usually NC on other mask roms, and this chip has a single /CE pin instead of both /CE and /OE.
 
NEC 27C1000 / Hitachi HN27C301 are writable 32-pin devices that are almost fully pin-compatible with 23C1000. Pins 3-30 are almost the the same as pins 1-28 on the 23C1000. To use NEC 27C1000 or HN27C301 in place of 23C1000: Plug in place of a 23C1000, leaving pins 1,2,31,32 hanging off the end of the DIP-28 socket. Bodge-wire pin 2 (/OE) to either GND or pin 22 (/CE). Bodge-wire pin 32 to pin 30 (Deliver VCC from socket pin 28 to chip pin 32. Chip pin 30 is NC inside the chip, so it's ok to be connected to VCC). But these parts are no longer made and not easy to find today.
 
This adapter board allows to use a wide range of more common and even still manufactured parts in place of the 23C1000.
 
Pinout comparison between 23C1000 and some other devices:<br>
'''
 
  +-----------------------------------------+------ MX27C1000 / 27C010 / 28F010 / *(29F010)
  |    +------------------------------+---- | ----- NEC 27C1000 / Hitachi HN27C301
  |    |        +------------+------- | --- | ----- 23C1000 (NEC uPD23C1000, NEC D23C1000C, Macronix MX23C1000)
  |    |        |            |        |    |
  |    |        |            |        |    |
                |            | 
*(NC) VPP  1    |            |  32  VCC
  A16  OE/  2                    31  PGM/
            3  A15  1  28  VCC  30        NC
            4  A12  2  27  A14  29
            5  A7  3  26  A13  28
            6  A6  4  25  A8  27
            7  A5  5  24  A9  26
            8  A4  6  23  A11  25
            9  A3  7  22  A16  24        OE/
            10  A2  8  21  A10  23
            11  A1  9  20  CE/  22
            12  A0  10  19  D7  21
            13  D0  11  18  D6  20
            14  D1  12  17  D5  19
            15  D2  13  16  D4  18
            16  GND 14  15  D3  17
 
'''
 
* MX27C1000, 27C010, 28F010, pin 1 is Vpp
:29F010 (SST39SF010A, GLS29EE010, AM29F010, AM29EE010, ...) pin 1 is NC
:Otherwise same pinout between all.
 
Macronix MX27C1000 is standard jedec 27C010 pinout, not like NEC 27C1000
 
<!--
Old reference about pin-compatible parts:
:https://www.web8201.net/Files/LIBRARY_web8201/NECPC8300_System_ROM_EPROM_Replacement.html
-->
 
Compatible flash/eeprom/eprom chips that can be used on this board:


The board has jumper pins that change the connections to some of the DIP legs, and provide connection points for some signals that don't exist in the 28-pin mask rom pinout.
Without R3 installed:
:39SF010 https://www.digikey.com/short/z88hb8
:29SF010
:29EE010 https://mou.sr/39tR5zu
:29F010
:28C010


Hook-up:
With R3 installed (10k-47K):
The board has physically only 28 pins, but for the purposes of programming the chip, pretend you have a 32-pin chip, and the board is the bottom 28 of those. Insert the board in the programmer 2 positions from the top, as if the board had 4 more pins extending from the pin-1 / pin-28 end of the board. Don't close the ZIF clamp yet.
:28F010
:27SF010
:27C010


Remove the WE# jumper from the VCC and WE# pins.
Any speed and any temperature range is ok.


Move the A16 jumper from the center+A16 position to the center+OE# position.
Any TSOP32 or PLCC32(7x9) package is ok.


Plug the female end of a dupont wire onto the VCC pin on the board, and place the male end of the wire into the pin 32 position in the programmer. It's physically pin 40 of a 40-pin zif socket, but it's where pin 32 would be if you hada 32-pin chip in the programmer.
==TO READ A 23C1000 MASK ROM in a TL-866 programmer==


Connect another dupont wire from the WE# pin to the pin 31 position in the programmer.
Minipro does not recognize 23C100, nor either of the pin-compatible NEC 27C1000 or Hitachi HN27C301.<br>
It does know about several 27C010 devices.<br>
It's only a small change to convert the 23C1000 mask rom pinout to a generic 27C010 pinout.


Connect another dupont wire from the A16 pin to the pin 2 position in the programmer.
Parts: 28 female-female dupont jumper wires. 2 single row male pin headers, 18 to 20 pins each.


Now close the ZIF clamp.
1: Clamp the male pin headers in the programmer zif socket and connect all 28 chip pins to the zif socket 1-to-1 like normal, except shifted down 2 positions, so that chip pin 1 goes to to zif pin 3, chip pin 28 goes to zif pin 38, etc.


The board now provides the same pinout as the PDIP or PLCC version of the flash chip. In the programmer's software, not only select the right chip model/part number, but also make sure to select either PDIP or PLCC. Even of the chip on the board is a TSOP version, tell the programmer software that it's PDIP or PLCC. The pinout is different for TSOP, and the board is providing the PDIP/PLCC pinout regardless which chip is installed on the board.
2: At the zif socket, move the wire for chip pin 28 (VCC) from zif pin 38 (DIP-32 pin 30) to zif pin 40 (DIP-32 pin 32)


==Running==
3: At the zif socket, move the wire for chip pin 22 (A16) from zif pin 28 (DIP-32 pin 24) to zif pin 2 (DIP-32 pin 2)
To use the board in the PC-8300, remove all the dupont wires and place the two jumpers as indicated by the silkscreen on the board. One jumper joining the VCC and WE# pins, and one jumper joining the center and A16 pins on the 3-pin set.


The board is now providing a pinout that matches the NEC uPD23C1000 mask rom.
4: Tell minipro to read a generic 27C010 eprom.


Install the board in the ROM0 socket in the PC-8300. Match up the half-circle notch on the end of the board with the matching indication on the ROM0 socket.
  minipro -y -p "27C010@DIP32" -r rom.bin

Latest revision as of 19:31, 10 May 2021

Summary

Adapter board to use a flash chip for the system rom in a NEC PC-8300, PC-8401, PC-8500, or anything else that has a 23C1000 mask rom.

PCB: OSHPark or PCBWAY

BOM: https://www.digikey.com/short/z8293n

Source: https://github.com/bkw777/aDIPters

ROM images

NEC PC-8300 system rom: File:831000-438.bin
NEC PC-8300 system rom, Y2K patched: File:831000-438-y2k.bin (See Model_T_Y2K)
NEC PC-8500 system rom: File:PC-8500 IC9.bin

Directions

Build

See FlexROM_100 to see how to do the dip legs.
Search youtube for "drag solder" to see how to solder the TSOP legs with an ordinary soldering iron.

Suggest installing parts in this order:

  1. Legs - The holes for the the legs are intentionally small and a fairly close fit on the legs. The legs should be installed first to avoid the problem where if you accidentally get solder in some of the holes while soldering the other parts near by, it can be difficult to wick the holes clean enough to insert the legs after that without vacuum.
  2. R1, R2
  3. TSOP or PLCC chip
  4. Jumper pins - Flush-cut the posts on the bottom of the board after soldering.

You don't install R3 usually. It is for VPP on pin 1, to support EEPROM/EPROM devices that have a VPP pin. These are all old devices that aren't made any more, but you can still buy used and new-old-stock. Don't install R3 if you're using the SST39SF010A part in the BOM linked above, or any 29 or 39 series flash chip. But if you happen to already have a 28F010, 28SF010, 27SF010, 27C010 etc, you can use it instead of the 39SF010, and if so, you need to install R3. 47K the same as the others.

Program

Requirements:

  • eprom programmer, such as TL-866


To program the chip,

  • Move the jumper to PRG
  • Put the board into a programmers' ZIF socket
 minipro -p "SST39SF010A" -w 831000-438-y2k.bin

Install

Move the jumper to RUN

Put the board in the 23C1000 socket, with pins 3-30 in the socket, and pins 1,2,31,32 hanging off the end of the socket.

ROM0 in PC-8300, IC24 in PC-8401, IC9 in PC-8500
for PC-8401, cut pin 1 a little short so that it doesn't touch R65, or use the DIP-28 version of the board (see FLASH_23C1000_DIP28 from github.com/bkw777/aDIPters)

For PC-8300, press Shift-CTRL-Reset to hard-reset the PC-8300 to force it to load the new rom, including re-reading the one-time power-on defaults. If the date says 2000, then you got it. If the date says 1983 or 2083, then you didn't do a full reset (assuming the y2k-patched rom image).

References

Datasheet for the 23C1000 mask rom:

File:UPD23C1000A.pdf
File:MX23C1000.pdf

NEC PC-8300, PC-8401, and PC-8500 computers use a 23C1000 mask rom for the system rom.

23C1000 is an unusual 128K mask rom in a DIP-28 package. A 128K device usually requires 32 pins. 23C1000 fits into a 28 pin package by using the Vpp and /OE pins for A15 and A16 instead. A mask rom is not writable so the Vpp pin is usually NC on other mask roms, and this chip has a single /CE pin instead of both /CE and /OE.

NEC 27C1000 / Hitachi HN27C301 are writable 32-pin devices that are almost fully pin-compatible with 23C1000. Pins 3-30 are almost the the same as pins 1-28 on the 23C1000. To use NEC 27C1000 or HN27C301 in place of 23C1000: Plug in place of a 23C1000, leaving pins 1,2,31,32 hanging off the end of the DIP-28 socket. Bodge-wire pin 2 (/OE) to either GND or pin 22 (/CE). Bodge-wire pin 32 to pin 30 (Deliver VCC from socket pin 28 to chip pin 32. Chip pin 30 is NC inside the chip, so it's ok to be connected to VCC). But these parts are no longer made and not easy to find today.

This adapter board allows to use a wide range of more common and even still manufactured parts in place of the 23C1000.

Pinout comparison between 23C1000 and some other devices:

  +-----------------------------------------+------ MX27C1000 / 27C010 / 28F010 / *(29F010)
  |    +------------------------------+---- | ----- NEC 27C1000 / Hitachi HN27C301
  |    |        +------------+------- | --- | ----- 23C1000 (NEC uPD23C1000, NEC D23C1000C, Macronix MX23C1000)
  |    |        |            |        |     |
  |    |        |            |        |     |
                |            |   
*(NC) VPP  1    |            |   32  VCC
 A16  OE/  2                     31  PGM/
           3   A15  1   28  VCC  30        NC
           4   A12  2   27  A14  29
           5   A7   3   26  A13  28
           6   A6   4   25  A8   27
           7   A5   5   24  A9   26
           8   A4   6   23  A11  25
           9   A3   7   22  A16  24        OE/
           10  A2   8   21  A10  23
           11  A1   9   20  CE/  22
           12  A0  10   19  D7   21
           13  D0  11   18  D6   20
           14  D1  12   17  D5   19
           15  D2  13   16  D4   18
           16  GND 14   15  D3   17

  • MX27C1000, 27C010, 28F010, pin 1 is Vpp
29F010 (SST39SF010A, GLS29EE010, AM29F010, AM29EE010, ...) pin 1 is NC
Otherwise same pinout between all.

Macronix MX27C1000 is standard jedec 27C010 pinout, not like NEC 27C1000


Compatible flash/eeprom/eprom chips that can be used on this board:

Without R3 installed:

39SF010 https://www.digikey.com/short/z88hb8
29SF010
29EE010 https://mou.sr/39tR5zu
29F010
28C010

With R3 installed (10k-47K):

28F010
27SF010
27C010

Any speed and any temperature range is ok.

Any TSOP32 or PLCC32(7x9) package is ok.

TO READ A 23C1000 MASK ROM in a TL-866 programmer

Minipro does not recognize 23C100, nor either of the pin-compatible NEC 27C1000 or Hitachi HN27C301.
It does know about several 27C010 devices.
It's only a small change to convert the 23C1000 mask rom pinout to a generic 27C010 pinout.

Parts: 28 female-female dupont jumper wires. 2 single row male pin headers, 18 to 20 pins each.

1: Clamp the male pin headers in the programmer zif socket and connect all 28 chip pins to the zif socket 1-to-1 like normal, except shifted down 2 positions, so that chip pin 1 goes to to zif pin 3, chip pin 28 goes to zif pin 38, etc.

2: At the zif socket, move the wire for chip pin 28 (VCC) from zif pin 38 (DIP-32 pin 30) to zif pin 40 (DIP-32 pin 32)

3: At the zif socket, move the wire for chip pin 22 (A16) from zif pin 28 (DIP-32 pin 24) to zif pin 2 (DIP-32 pin 2)

4: Tell minipro to read a generic 27C010 eprom.

 minipro -y -p "27C010@DIP32" -r rom.bin