Bitrot

From Proghq
Jump to: navigation, search

Techniques for dumping bit-rotten and/or damaged EPROMs:

Bit-rotten roms are EPROMs/EEPROMs/flash where the floating gate charges have decayed from age/light exposure below the threshold to reliably read as the 'high' state. On most EPROM based devices, a high floating gate charge indicates a 0 bit, so this means the values will read as 0xFF instead of the proper value.

There are several techniques to try to recover bit-rotten data like this:

Change temperature. Ex: People have reported success using a hair dryer or heat-gun on parts. This seems to work better than freezing parts does, maybe by 'boosting' via thermal noise the floating gate charge readout value? Lower reference voltage: Lowering the VCC/Reference voltage from 5v to below 4.97v or so lowers the 'threshold' for reading back floating gate charges, which can recover some bits which are just below the threshold. Too low of a voltage may make the chip malfunction, too high will not have any effect. To prevent potential damage to the chip by having address/control lines driven higher than VCC, the reference input 'high' (ViH) voltage for all pins should be lowered simultaneously, but this might not always be necessary. Multiple reads and binary ANDing or 'voting' of the bits: dumping a chip several dozen/hundred times and having each dump 'vote' for whether a given bit is 1 or 0, the most popular votes winning. Binary AND is simpler, but this causes problems if a bit should read as 1 and erratically reads as 0.

Combining 2 or more of these techniques is significantly more effective than using them separately, so people have had much better luck both heating and simultaneously under-volting chips than doing either one separately.


Damaged Chips:

There are more or less two classes of damage to an IC which will prevent it from reading: Damage to the leadframe and bond wires, and damage to the die itself.

Heat might help for leadframe/bond wire damage (if it cannot be directly/permanently repaired with conductive epoxy or solder, etc) as it may make the metal expand enough to make contact with the other side it was broken off of.

McMaster - Phil B experiment 2019

Took 3 bit rotted (sunlight exposure?) EPROMs and tried to recover bits. Used modified TL866 to control VDD during readout. One of the EPROMs had a largish "sweet spot" that resulted in stable readout. However, Phil was unable to confirm that the dump improved data quality. Its unclear to me (McMaster) if the data was actually not good or that it was simply hard to tell if it had been improved.

See also

EPROM: has some (limited) information on EPROM erase profiles. Might be useful for understanding sunlight damage profiles