zws.com logo

products:

EPROMr Frequently Asked Questions

FAQ Index (Updated: 23-Nov-1998)

IMPORTANT: This FAQ does not detail troubleshooting procedures for mis-constructed EPROMr hardware. It is assumed that the hobbyist has sufficient skill to follow the assembly instructions accurately. Incorrect construction can result in almost any conceivable problem.


Question: Can I buy this project as a kit? Can I buy it fully assembled?

Answer:

At this time, there is nothing for sale on zws.com; we provide software and hardware engineering services only, not manufacturing. However, the V2.0 and V3.0 EPROMr may be available in kit form from one or more third parties, and zws.com will feature ordering links as soon as the products are available.

Jump back to index


Question: Why are smaller (2732, 2716, 2708) devices not supported?

Reason:

The 2732 and smaller EPROMs use significantly older technology than more modern, higher-density chips. As a result, they require a Vpp (program pulse) voltage of 21V or 25V. The EPROMr 2.0 circuit, as illustrated, supplies a non-programmable fixed 12.5V program pulse which makes it compatible with the vast majority of modern EPROMs.

In order to lower project cost and complexity, the regulation and switching circuits required to support multiple programming voltages and 24-pin devices have been consciously omitted from the EPROMr design.

The 2708 also requires a negative power supply rail. The construction of a suitable power supply is trivial, but it is not documented nor supported as part of the EPROMr project at this time, since one of the aims of the project was to be powerable from a simple off-the-shelf DC plugpack.

Possible Workarounds:

Refer to the item "Enhancement: Adding support for 2716 and 2732 devices" for a detailed description of a possible modification to the EPROMr design.

Jump back to index


Question: Can this unit read and write EEPROM/FLASH chips?

Answer:

The V2.0 EPROMr will read 8-bit EEPROM and FLASH chips with JEDEC pinouts. When reading these devices, configure the EPROMr and software for the equivalent EPROM device. For example, to read a 28F020 chip, specify the chip type 27020 and set the DIP switches appropriately.

EEPROM write algorithms are very different from EPROM; there is additional circuitry required as well as considerably more advanced control software. Write support for these devices is not available in the V2.0 EPROMr. You must build the EPROMr 3.0.

Jump back to index


Question: Can I substitute 4020/4024/other chips for the 4040?

Answer:

The circuit design specifies 4040 ICs. No other type is supported. If you use different ICs, you will need to modify the control software. We cannot provide assistance with this.

Jump back to index


Problem: Cannot burn 2764 chips at all

Applicable Hardware:

All EPROMr versions.

Reason:

Some older 2764 devices require a Vpp (program pulse) voltage of 21V or 25V. The EPROMr 2.0 circuit, as illustrated, supplies a non-programmable fixed 12.5V program pulse.

Possible Workarounds:

  1. (Recommended) Source and use only 2764 devices which can be programmed with Vpp=12.5V.
  2. Increase the EPROMr's Vpp voltage to the required value (21V or 25V, depending on chip vintage and manufacturer). You can achieve this by increasing the DC supply voltage to approximately 30V and adjusting VR1. WARNING: An EPROMr unit which has been modified in this way cannot be used to burn 12.5V chips. Using a modified EPROMr to burn devices specified for Vpp=12.5V will destroy the EPROMs being burned.

Jump back to index


Problem: Cannot reliably burn certain brands of EPROM, particularly old Texas Instruments 27128 chips (circa 1989)

Applicable Hardware:

Parallel EPROMr only. This issue does not affect the serial EPROMr.

Reason:

The EPROMr 2.0 design includes 33k pulldown resistors on the EPROM data bus (which is connected directly to the host PC's parallel port). These are necessary on a few PCs in order to work around peculiar oddities of certain parallel port designs. On PCs which do not require this pulldown workaround, it may not be possible to burn certain brands/batches of EPROMs reliably, since the PC's parallel output buffers will not be able to pull the data lines up far enough.

Fix:

Change the pulldown resistors into pullup resistors by connecting their common leads to +5V instead of ground, or eliminate them altogether.

Jump back to index


Problem: All bytes read back are $FF (255 decimal)

Applicable Hardware:

Parallel EPROMr only. This issue does not affect the serial EPROMr.

Reason:

The EPROMr 2.0 hardware requires a parallel port that is compatible with the PS/2 specification for bidirectional operation. Most modern systems should be compatible, but the factory-shipped settings may disable this functionality.

Fix:

Check your system's CMOS settings for an option which may be labeled "Parallel Port Mode", "Parallel Port Type", or similar. Acceptable settings are "EPP", "EPP+ECP", "EPP1.7", "EPP1.9", "ECP", "Enhanced", "Bi-Direct","Bidir", or similar. Settings "SPP", "Standard", and "Normal" are not compatible with the EPROMr V2.0 hardware.

Exception:

Certain notebook systems, including the Toshiba Portegé T3400 series and others based on the same logic board, and the NEC Versa S, have fundamentally incompatible parallel port hardware. Even in "Bi-Direct" mode, these systems will not work reliably with the parallel EPROMr. You must use the EPROMr 3.x on these systems.

Jump back to index


Problem: Reading the same chip twice yields different results.

Applicable Hardware:

All EPROMr versions.

Reason:

There are several possible causes for this problem, including:

  1. Excessively long cable between PC and EPROMr (parallel version only).
  2. Electrical noise on data bus.
  3. Host timing error and/or incorrectly specified counter ICs.
  4. Damaged or incorrectly specified counter ICs.
  5. Intermittent connection due to poor construction.

Fix:

Suggested fixes for the causes listed above are:

  1. Use a parallel cable no longer than 1.5m.
  2. Try the read operation with no chip in the device socket and your hand resting on the pins of the socket. If the file read back is not all $FF bytes (255 decimal), you have a noise problem. Keep your hands well clear of the EPROMr while reading or burning. Verify that the pullup resistors on the data bus are wired correctly and are not open circuit. Installing the project in a grounded metal box may help with this problem.
  3. Your machine may be under-timing the width of the clock pulses so that it falls outside the minimum active time for the particular counter IC variant you have chosen (metal-gate CMOS or 74HC series). This is characterized by "streaks" of the same byte in a chip dump, as the counter stays at the same address for several (a semi-random number) of byte read operations due to a too-short clock pulse. If you are using the parallel EPROMr, try in this order: turning off your PC's "turbo" function, disabling level 2 cache systems, and using the alternate timing switch for the EPROMr control software. If all these methods fail (or if you are using the serial EPROMr), and you are using CD4040 parts, try using the specified 74HC4040 parts instead.
  4. Replace the counter ICs with known-good parts of the specified type (74HC4040).
  5. Verify all connections with a continuity tester and resolder any which are suspect.

Also refer to this troubleshooting note.

Jump back to index


Problem: Erratic results reading and/or burning chips on Pentium(r)-class PCs.

Applicable Hardware:

Parallel EPROMr only. This issue does not affect the serial EPROMr.

Reason:

The EPROMr R2.x uses the host's CMOS real-time clock for timing. On certain systems, mostly fast Pentiums, this timing method fails and the counter ICs are clocked too quickly.

Fix:

You must download the latest software archive, which contains control software version 2.0.2. This version has a new switch '-h' which is designed to combat the Pentium timing problem. This switch will not work properly inside Windows or OS/2. It will also make the read/burn process considerably slower, so you should avoid using this switch if it is not necessary for your PC.

The EPROMr 3.x has internal hardware timing and does not suffer from this problem.

Jump back to index


Problem: Burn operations are always partially unsuccessful the first time around.

Applicable Hardware:

Parallel EPROMr only. This issue does not affect the serial EPROMr.

Reason:

The EPROMr R2.0 design does not permit fast burn/verify, burn/verify operation. Some chips (especially older devices) require longer Vpp pulse widths than the EPROMr default. Running the same burn operation multiple times should show a rapidly shrinking number of errors; after three or four burns at the most, you should have a perfectly burned chip.

For example, 1989-vintage SGS-Thompson 27512s may yield similar results to this:

First pass 1700 errors
Second pass 6 errors
Third pass 0 errors

Fix:

You must run the burn operation again until it verifies successfully. Because of this design artifact in the R2.0 parallel EPROMr, it is STRONGLY RECOMMENDED that you do NOT disable auto-verify-after-burn mode.

The EPROMr 3.x supports the RAPID burn algorithm (among others) and does not suffer from this problem.

Jump back to index


Enhancement: Adding support for 2716 and 2732 devices.

Applicable Hardware:

Parallel EPROMr version 2.x only. This procedure is not documented for the serial EPROMr.

Abstract & Caveats:

The only major modification required to support 2716 and 2732 devices is the provision of a 21V or 25V program pulse (Vpp) voltage. Some minor changes are also required to bring the correct signals to the device pins, and the control software needs some small modifications.

Parts Required:

1 x LM317T (IC1b)
1 x 24-pin wire-wrap IC socket OR 1 x 24-pin regular IC socket
1 x DPDT toggle switch (SW1)
1 x SPDT toggle switch (SW2)
1 x BC547 transistor (Q1b)
1 x BC557 transistor (Q2b)
1 x 240R 1% metal-film resistor (R1b)
1 x 33K 5% resistor (R10b)
1 x 82K 5% resistor (R11b)
1 x 10K trimpot (VR1b)

Details:

This is a special case of the EPROMr generic mode, documented more generally in this FAQ under the heading "Enhancement: General process for reading and/or burning any 8-bit device of up to 2^24 octets (16Mbyte/128Mbit).

There are two processes which need to be carried out in order to support 2716 and 2732 devices. The first of these is to add support for the higher programming voltage required by these older devices. The second is to route the correct signals to the pins of a 24-pin socket to accept the 2716/2732 device.

Refer to the EPROMr 2.0 PSU schematic diagram. You must build a second regulator section which duplicates the circuit comprised of IC1, R1 and VR1. We will designate the parts in this new regulator section IC1b, R1b, and VR1b. The output of this stage, we will designate Vppb.

Now, refer to the EPROMr 2.0 logic board diagram. Vppb should be fed to a switching circuit comprised of Q1b, Q2b, R10b and R11b. This circuit duplicates the illustrated circuit comprised of Q1, Q2, R10 and R11. The switch line (the free end of R10b) is connected to pin 16 of the D25 connector. The switched output (the collector of Q2b) is the program pulse line for the 2716/2732 device - read below for more information on where to connect this.

Before proceeding to the second stage of this modification, you must adjust the new regulator. The DC input voltage to the EPROMr needs to be increased to approximately 30V. Once you have connected a suitable DC supply, use VR1 to recalibrate the output of Q2 to ensure it is still 12.5V, and use VR1b to calibrate the output of Q2b to ensure it is 21V or 25V (according to the specifications of the EPROMs you are using).

The second stage of the modification is to provide the correct address, power and control signals to a socket into which the 24-pin 2716 or 2732 can be inserted. There are two methods by which the second stage of the modification can be achieved. The first is to wire a separate 24-pin socket onto the EPROMr board to accept these old devices; the second is to use a 24-pin wire-wrap socket.

If you are using the latter technique, take your wire-wrap socket and clip short pins 24, 21 and 20.

Pin 24 is the Vcc pin on a 2716 or 2732, and the clipped socket leg should be led direct to a convenient +5V take-off on the EPROMr mainboard.

Clipped-off pins 20 and 21 should be connected as follows:

2716/2732 switch wiring diagram

The following matrix illustrates the switch settings (when the switches are viewed from behind, and oriented as shown above):

Device

Mode

SW1

SW2

2716 Read/verify/blank check Up Down
Write Up Up
2732 Any Down Don't care

IMPORTANT: The settings above assume you are using toggle switches. If you are using slide switches, all entries in the above table should be inverted (down <-> up)

All pins not mentioned are identical to the lower 24 pins on the 27512. Insert the wire-wrap socket into the device socket on the EPROMr, set the EPROMr 2.0 DIP switches for a 27512 chip, and you are ready to read and burn 2716/2732 devices.

An alternative to the above procedure is to wire an ordinary 24-pin socket in parallel with the low 24 pins of the 32-pin socket on the EPROMr, with the additional circuitry and altered connections as described above; this has the advantage of allowing you simply to plug 24-pin devices into the 24-pin socket, and 28/32-pin devices into the 32-pin socket, without needing to reconnect or disconnect any wires. It also allows you to use a ZIF socket if you wish.

The command line for burning 2716 devices is:

eprom -tgeneric -v2048 -w filename

To read 2716 devices:

eprom -tgeneric -v2048 filename

To burn 2732 devices:

eprom -tgeneric -v4096 -w filename

To read 2732 devices:

eprom -tgeneric -v4096 filename

REMEMBER TO SET SW1 AND SW2 APPROPRIATELY!

Notes:

  • 2732A and 2732B (half-2732, quality control return) chips are not supported. Depending on how the manufacturer implemented these devices, you may be able to write them as 2732s (ignore verify errors).
  • This modification is not officially supported on any version of the EPROMr hardware.

Jump back to index


Enhancement: General process for reading and/or burning any 8-bit device of up to 2^24 octets (16MByte/128MBit).

Applicable Hardware:

All EPROMr versions up to and including serial version 2.1.

Abstract:

Control software V2.0.1 supports a new "generic" mode. In this mode, all chip type switching is assumed to be performed by user-supplied external hardware (e.g. DIP switches). The 24 output lines from the two counters are thus all available for addressing functions. The general procedure for constructing a reader for any device is then to connect the outputs of the counters to the address inputs of the device to be read, the parallel port data bus lines to the device's data lines, and (if required) the switched Vpp line to the device's Vpp pin. Any required chip select or mode control lines must be tied to the required state with external wires or switches.

For more information on how to use generic mode, refer to the documentation for the EPROMr control software.

This generic mode allows easy construction of readers for video game console cartridges and other such devices.

WARNING: Ensure you have the right to examine and/or modify the copyrighted contents of such devices.

Note:

Please mail any unusual or hard-to-find chip pinouts to Lewin A.R.W. Edwards. They may be added as officially supported devices in future revisions of the hardware and/or software.

Jump back to index


zws.com and all original content herein is © Copyright 2002 by Lewin A.R.W. Edwards. "zws.com" is a trademark protected under U.S. and international law. Infringement or attempted dilution of the intellectual property rights held by Lewin A.R.W. Edwards will be prosecuted to the fullest possible extent.