TommyPROM32 doc updates

This commit is contained in:
Tom Nisbet 2024-04-13 20:38:37 -04:00
parent 39f9bdf76c
commit 8972385e47
2 changed files with 23 additions and 18 deletions

View File

@ -6,49 +6,54 @@ exerpt: "TommyPROM32 Printed Circuit Board"
## TommyPROM32
TommyPROM32 was built to support 32-pin and smallerr EEPROM and Flash chips. While providing a stable platform for the SST39SF chips, the board can be easily configured for many other chips as well. It uses a set of headers that allow any of the signals to the target chip to be re-routed.
The TommyPROM32 PCB supports 32-pin and smaller EEPROM and Flash chips. The board can be easily configured for many 32, 28, or 24 pin chips or used in its default setup for SST39SF devices. The board has a set of headers that allow any of the signals to the target chip to be re-routed.
[![TommyPROM PCB](images/TommyPROM32-jumpers-500.jpg)](images/TommyPROM32-jumpers.jpg)
[![TommyPROM32 PCB](images/TommyPROM32-jumpers-500.jpg)](images/TommyPROM32-jumpers.jpg)
The default configuration, with just jumper shunts installed, is wired for the SST39SF0x0 chips.
The default configuration and labels, with just jumper shunts (jumper caps) installed, is wired for the SST39SF0x0 chips.
[![TommyPROM PCB](images/TommyPROM32-SST39SF-500.jpg)](images/TommyPROM32-SST39SF.jpg)
[![TommyPROM32 with SST39SF010](images/TommyPROM32-SST39SF-500.jpg)](images/TommyPROM32-SST39SF.jpg)
Many other chips, particularly if they follow JEDEC standards, can be supported by removing shunts and adding just a few jumper wires.
Note that some of the photos below show the initial version of the TommyPROM32 board that only contained a single switchable voltage. The version 2.0 boards added a second switchable Vpp voltage section with multiple _VPP Output_ pins. The _5V_ and _Vpp in low_ pins are now adjacent so that a wire is not needed for the common case where Vpp low is set to 5V. There are also some general-purpose 5v, GND, and interconnect pins.
If the board is only being used with 5V chips or used to read (but not program) other chips, then the Vpp switches, diodes, and other components on the lower right side of the board do not need to be installed.
Chips with fewer pins can also be supported. There are power pins in place to support 28-pin and 24-pin chips with a shunt to the correct VCC pin. The photo below shows the 28C256 with a power jumper on pin 28, the _WE_ signal moved down to pin 27, and the _A14_ signal moved from ping 27 to pin 1.
There are power pins in place to support 28-pin and 24-pin chips with a shunt to the correct _VCC_ pin. The photo below shows the 28C256 with a power jumper on pin 28, the _WE_ signal moved down to pin 27, and the _A14_ signal moved from pin 27 to pin 1.
[![TommyPROM PCB](images/TommyPROM32-28C256-500.jpg)](images/TommyPROM32-28C256.jpg)
[![TommyPROM32 with 28-pin 28C256](images/TommyPROM32-28C256-500.jpg)](images/TommyPROM32-28C256.jpg)
## Vpp Power Selection Examples
Two power inputs and switches are provided to support older flash and EEPROM chips that need higher programming voltages. Many of these chips just need a higher voltage, like 12V, applied to the VPP pin continuously during the programing and verification cycle. In normal operation, the 5V VCC signal is applied to the VPP pin. The board has VPP inputs for two voltages. Applying 12V to _VPP In High_ and 5V to _VPP In Low_ lets the VPP output be switched between these two voltages using a manual slide switch for programming.
Two power inputs and switches are provided to support older flash and EEPROM chips that need higher programming voltages. Many of these chips just need a higher voltage, like 12V, applied to the VPP pin continuously during the programing and verification cycle. In normal operation, the 5V _VCC_ signal is applied to the _VPP_ pin. The board has VPP inputs for two voltages. Applying 12V to _VPP In High_ and 5V to _VPP In Low_ lets the VPP output be switched between these two voltages using a manual slide switch for programming.
Note that some of the photos below show the initial version of the TommyPROM32 board that only contained a single switchable voltage. The version 2.0 boards added a second switchable Vpp voltage section with multiple _VPP Output_ pins. The _5V_ and _Vpp in low_ pins are now adjacent so that a wire is not needed for the common case where Vpp low is set to 5V. There are also some general-purpose 5v, GND, and interconnect pins.
### WE27C257
The photo below shows the WE27C257 set up for programming. The _VPP in Low_ signal is connected to _VCC_ and the _VPP in High_ signal is using 12V from an external power supply. The _VPP Out_ signal is connected to the chip's VPP on pin 1. The chip is in programming mode when the slide switch is set to the _High_ position and is in read mode when in the _Low_ position.
[![TommyPROM PCB](images/TommyPROM32-27C257-pgm-500.jpg)](images/TommyPROM32-27C257-pgm.jpg)
[![TommyPROM32 WE27C257 programming](images/TommyPROM32-27C257-pgm-500.jpg)](images/TommyPROM32-27C257-pgm.jpg)
To erase the WE27C257 chip, the external power supply is providing 14V and the _VPP Out_ is connected to the chip's _VPP_ and _A9_ pins.
[![TommyPROM PCB](images/TommyPROM32-27C257-erase-500.jpg)](images/TommyPROM32-27C257-erase.jpg)
Note the the top picture showed the version 1.0 board and a jumper wire was needed to connect +5V to the _Vpp in low_ pin. The newer board, shown below, has a jumper cap to make this connection, so no additional wire is needed.
[![TommyPROM32 WE27C257 erase](images/TommyPROM32-27C257-erase-500.jpg)](images/TommyPROM32-27C257-erase.jpg)
### M27C256
The M27C256 chip needs two voltages for programming. The external power supply is providing 12.75V to _VPP Out 1_ for the the chip's _VPP_ and _A9_ pins. The power supply is also providing 6.25V to _VPP Out 2_ for the chips _Vcc_. Note the the chip's Vcc is no longer connected to the system +5V. The two VPP Select switches should be in the _low_ lowition for normal read operation and in the _high_ position for programming.
[![TommyPROM PCB](images/TommyPROM32-27C256-500.jpg)](images/TommyPROM32-27C256.jpg)
The M27C256 chip needs two voltages for programming. The external power supply is providing 12.75V to _VPP Out 1_ for the the chip's _Vpp_ and _A9_ pins. The power supply is also providing 6.25V to _VPP Out 2_ for the chips _Vcc_. Note the the chip's _Vcc_ is no longer connected to the system +5V. The two _VPP Select_ switches should be in the _low_ position for normal read operation and in the _high_ position for programming.
[![TommyPROM32 M27C256 programming](images/TommyPROM32-27C256-500.jpg)](images/TommyPROM32-27C256.jpg)
## High Voltage Pulses
For chips that require a high voltage VPP pulse during programming, some external switching circuitry will be needed to allow the Arduino to control the VPP voltage. There is a header connected to the unused D13 pin that can support this. See the [Intel 8755 version of the hardware](hardware/#intel-8755a-hardware-version) for an example of voltage switching by TommyPROM.
For chips that require a high voltage _Vpp_ pulse during programming, some external switching circuitry will be needed to allow the Arduino to control the VPP voltage. There is a header connected to the unused _D13_ pin that can support this. See the [Intel 8755 version of the hardware](hardware/#intel-8755a-hardware-version) for an example of voltage switching by TommyPROM.
## Schematics and Gerbers
The [KiCad design files](https://github.com/TomNisbet/TommyPROM/tree/master/schematics)
The [TomyPROM32 KiCad design files](https://github.com/TomNisbet/TommyPROM/tree/master/schematics)
are in the project repo.
[![TommyPROM schematic](images/TommyPROM32-sch-700.png)](images/TommyPROM32-sch.png)
[![TommyPROM32 schematic](images/TommyPROM32-sch-700.png)](images/TommyPROM32-sch.png)

View File

@ -12,13 +12,13 @@ The 2316 is a 2Kx8 mask-programmable ROM made by Commodore. Intel made a versio
The 2316, 2332 and 2364 ROMs are somewhat unique because they have Chip Select signals that are configured when the data is mask-programmed. Manufacturers could order a 2316 configured with any of its three Chip Select signals as either active-high or active-low.
This causes a bit of confusion, because the datasheets state that the chips are compatible with standard EPROMs, but they should really state that the chips __can be__ compatible, depending on the configuration selected. For example, a 2316 is only compatible with a 2716 if the 2316 was manufactured with *CS1* and *CS2* configured active-low and *CS3* configured active-high. Otherwise, some signals will need to be inverted to swap out a 23 serial chip with a more standard EPROM.
This causes a bit of confusion, because the datasheets state that the chips are compatible with standard EPROMs, but they should really state that the chips __can be__ compatible, depending on the configuration selected. For example, a 2316 is only compatible with a 2716 EPROM if the 2316 was manufactured with *CS1* and *CS2* configured active-low and *CS3* configured active-high. Otherwise, some signals will need to be inverted to swap out a 23 series chip with a more standard EPROM.
Some systems will contain multiple 23xx chips with the Chip Selects configured the same and others will configure each chip differently. For example, some 8K Atari cartridges use two 2332 chips and will invert one of the Chip Selects so that either chip can be selected with a single address line to differentiate them. If the chips are removed from the cartridge, they would need different Chip Selecct wiring to read their data.
Some systems contain multiple 23xx chips with the Chip Selects configured the same and others will configure each chip differently. For example, the OSI SuperBoard contains five 2316s and they are all configured with the CS1, CS2, and CS3 lines active-high. On the other hand, some 8K Atari cartridges use two 2332 chips and will invert one of the Chip Selects so that either chip can be selected with a single address line to differentiate them. If the chips are removed from the cartridge, they would need different Chip Select values to read their data.
## Reading 23xx chips with TommyPROM
A TommyPROM programmer can be constructed with an Arduino to read 2316 ROM chips. This can be constructed on a breadboard for quick use. [TommyPROM32 printed circuit board](tommyprom32-pcb) can be constructed for a more stable solution.
A TommyPROM programmer can be built with an Arduino to read 2316 ROM chips. This can be constructed on a breadboard for quick use. The [TommyPROM32 printed circuit board](tommyprom32-pcb) version can also be used for a more permanent solution.
The TommyPROM code will scan the ROM to determine the correct Chip Select settings, so no wiring changes or inverters are needed when switching chips of the same type.