mirror of
https://github.com/TomNisbet/TommyPROM.git
synced 2024-12-22 09:29:38 +00:00
Add W27C512
This commit is contained in:
parent
7d5ab86275
commit
195f94f9a0
@ -93,6 +93,7 @@ bool PromDevice27::burnByte(byte value, uint32_t address)
|
||||
|
||||
|
||||
// Burn a byte to the chip and verify that it was written.
|
||||
//
|
||||
// This uses a dedicated WE or PGM chip that operates on TTL levels and is active LOW.
|
||||
// Overwrite burning is supported.
|
||||
bool PromDevice27::burnByteWE(byte value, uint32_t address)
|
||||
@ -140,10 +141,16 @@ bool PromDevice27::burnByteWE(byte value, uint32_t address)
|
||||
|
||||
|
||||
// Burn a byte to the chip and verify that it was written.
|
||||
//
|
||||
// This uses an active LOW program pulse on the CE line and a verify operation with CE
|
||||
// HIGH. Overwrite is not supported, but could be added is a chip is found that needs it.
|
||||
// Chips that use this mode require a programming voltage on the PGM pin and possibly on
|
||||
// other pins as well.
|
||||
// Chips that use this mode require a programming voltage on the PGM or VPP pin and
|
||||
// possibly on other pins as well The above applies to the W27C257 EEPROM. The W27C512
|
||||
// is a bit more difficult because it does not have a dedicated VPP or PGM pin. Instead,
|
||||
// the programming voltage is applied to OE to put the chip in programming mode and OE is
|
||||
// then switched LOW for the verify operation. Because the voltage switch would require
|
||||
// additional hardware, this code does not support verify-after-write for the W27C512 chip
|
||||
// and will instead just do a single write cycle.
|
||||
//
|
||||
// VCC may also have a non-standard voltage in program mode. Be sure to separate the
|
||||
// PROM's VCC line from system VCC if a non-standard voltage is used.
|
||||
|
@ -49,7 +49,8 @@ PromDevice28C prom(32 * 1024L, 64, 10, true);
|
||||
//PromDevice27 prom(32 * 1024L, E27C_PGM_WE, 1000L, 25, 3); // 27C256 with SEEQ intelligent programming
|
||||
//PromDevice27 prom(2 * 1024L, E27C_PGM_WE, 50000L, 1, 0); // 2716 with single 50ms write
|
||||
//PromDevice27 prom(512 * 1024L, E27C_PGM_WE, 100L, 11, 0); // 27C040 with Atmel rapid programming
|
||||
//PromDevice27 prom(32 * 1024L, E27C_PGM_CE, 100L, 25, 0); // 27C257/27E257 with 100uS program pulse on CE
|
||||
//PromDevice27 prom(32 * 1024L, E27C_PGM_CE, 100L, 25, 0); // W27C257/W27E257 with 100uS program pulse on CE
|
||||
//PromDevice27 prom(64 * 1024L, E27C_PGM_CE, 100L, 1, 0, false); // W27C512 with single 100uS program pulse on CE, no verify
|
||||
PromDevice27 prom(256 * 1024L, E27C_PGM_WE, 20L, 1, 0, false); // SST27SF020 with single 20us write, no verify
|
||||
|
||||
#elif defined(PROM_IS_SST39SF)
|
||||
|
@ -163,7 +163,7 @@ The 8755 build of TommyPROM also has a circuit to control the 25V programming pu
|
||||
|SST39SF040|Microchip |Flash |SST39SF|All SST39SF0x0 supported|
|
||||
|SST28SF040|SST |Flash |SST39SF|All SST28SF0x0 supported|
|
||||
|SST27SF020|SST |Flash |27 |12V continuous for pgm/erase|
|
||||
|WE27C257 |Winbond |EEPROM |27 |Continual 12V or 14V for program/erase|
|
||||
|W27C257 |Winbond |EEPROM |27 |Continual 12V or 14V for program/erase|
|
||||
|AT29C010 |Atmel |Flash |28C |Only with 128 byte or less sector size|
|
||||
|8755A |Intel |EPROM |8755A |Requires 25V pulses to program|
|
||||
|
||||
@ -208,21 +208,27 @@ the newer 28C EEPROMs, these chips do not automatically erase before writing to
|
||||
location. Instead, the entire chip is erased by applying 12V to _VPP_ and _A9_ and then
|
||||
pulsing _WE_.
|
||||
|
||||
#### 27C257
|
||||
#### W27C257 and W27C512
|
||||
|
||||
The Winbond WE27C257 and WE27E257 appear to be identical 32Kx8 EEPROMs. The 27C version
|
||||
has been tested.
|
||||
The Winbond W27C257 and W27E257 appear to be identical 32Kx8 EEPROMs. The 27C version
|
||||
has been tested. The Winbond W27C512 is a 64Kx8 EEPROM with no dedicated _VPP_ pin.
|
||||
|
||||
These EEPROMs have a _VPP_ pin that needs a constant 12V during programming. Unlike the
|
||||
The 257 EEPROMs have a _VPP_ pin that needs a constant 12V during programming. Unlike the
|
||||
newer 28C EEPROMs, these chips do not automatically erase before writing to a location.
|
||||
Instead, the entire chip is erased by applying 14V to _VPP_ and _A9_ and then pulsing
|
||||
_CE_.
|
||||
|
||||
Unlike the 257 chips, the W27C512 does not have a dedicated pin for the programming
|
||||
voltage and instead uses the OE pin to place the chip in programming mode. The verify
|
||||
operation requires that the OE pin be switched to _LOW_ and there is no hardware support
|
||||
for this, so the current code supports the 512 chip by doing a single write cycle with no
|
||||
verify.
|
||||
|
||||
Because the chips use a constant high voltage for programming instead of a pulse, an
|
||||
external power supply and two diodes can be used to supply either 5V or 12V to the
|
||||
pins for programming and erasing.
|
||||
|
||||
Note that the WE27x257 chip are almost a drop-in replacement for the 28C256. The _WE_,
|
||||
Note that the W27x257 chip are almost a drop-in replacement for the 28C256. The _WE_,
|
||||
_VPP_, and _A14_ pins are the only differences. For reading, the _VPP_ pin should be
|
||||
connected to 5V.
|
||||
|
||||
@ -241,3 +247,4 @@ for chips with the 256 byte buffer.
|
||||
|Model |Manufacturer |Type |Module |Notes|
|
||||
|:--- |:--- |:--- |:--- |:--- |
|
||||
|M27C4001 |ST Micro |EEPROM | |VCC=6.5V, VPP=12.75V to pgm|
|
||||
|W27C512 |Winbond |EEPROM |27 |Continual 12V or 14V for program/erase,VPP on OE|
|
||||
|
Loading…
Reference in New Issue
Block a user