diff --git a/README.md b/README.md index be7147b..da4f701 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,18 @@ This is a simple EEPROM programmer and reader that can be assembled using an Arduino and a few additional parts. The original code was specific to the 28C256 32Kx8 EEPROM, but it -has been extended to also support Intel 8755A EPROMS and some 29C010 Flash. +has been extended to also support SST39SF040 Flash, many other EEPROMs and flash, and even +Intel 8755A EPROMS. + +See the [documentation pages](https://tomnisbet.github.io/TommyPROM/) for the full +documentation with software, schematics, and troubleshooting tips. Features include: * Simple hardware design that can be assembled on a breadboard. * ROM images transfers using XMODEM - no special host client needed. * Support for fast block EEPROM writes - a 32K EEPROM will program in just a few seconds. * Optimized code that supports the timing requirements needed to unlock the 28C series -Software Protection Algorithm. +[Software Protection Algorithm](docs/28C256-notes). * Modular software design to easily support other EEPROM and EPROM families. -![TommyPROM Nano Hardware](docs/images/TommyPROM-nano.jpg) - - -See the [documentation pages](https://tomnisbet.github.io/TommyPROM/) for the full documentation -with hardware, software, and troubleshooting tips. - -## Further Work - -* [ ] Add a new PromDevice class for 27 series EPROMS. -* [x] Additional error checking in the CmdLine code. +![TommyPROM Nano Hardware](docs/_docs/images/TommyPROM-nano.jpg) diff --git a/docs/_data/navigation.yml b/docs/_data/navigation.yml index 6e3b025..42977ba 100644 --- a/docs/_data/navigation.yml +++ b/docs/_data/navigation.yml @@ -20,6 +20,8 @@ docs: url: /docs/pcb - title: "Adding Chip Families" url: /docs/extending + - title: "8755A Hardware" + url: /docs/8755A-hardware - title: "References" children: - title: "28C256 and SDP" diff --git a/docs/_docs/00-intro.md b/docs/_docs/00-intro.md index 7438190..dd49373 100755 --- a/docs/_docs/00-intro.md +++ b/docs/_docs/00-intro.md @@ -63,10 +63,10 @@ files as well. The default code programs 28C series chips using Arduino Nano har use this version, just compile and upload it to the Arduino. **Note well** that this code has been optimized for the Aduino UNO and Nano hardware so -*that it can run quickly enough to meet 28C series chip timing requirements for SDP -*unlocking. To use different Arduino hardware, like the Micro, the board-specific code in -*PromDevice.cpp and PromAddressDriver.cpp must be changed to match the port mappings -*between the ATmega chip and the Arduino I/O pins. +that it can run quickly enough to meet 28C series chip timing requirements for SDP +unlocking. To use different Arduino hardware, like the Micro, the board-specific code in +PromDevice.cpp and PromAddressDriver.cpp must be changed to match the port mappings +between the ATmega chip and the Arduino I/O pins. Because the Arduino has limited code and RAM space available, only one PROM driver is compiled in at a time. To change drivers, uncomment the desired PROM_IS_xx line in diff --git a/docs/_docs/design-100-hardware.md b/docs/_docs/design-100-hardware.md index cfd99ad..5df84e2 100644 --- a/docs/_docs/design-100-hardware.md +++ b/docs/_docs/design-100-hardware.md @@ -1,13 +1,11 @@ --- title: "Hardware Design" permalink: /docs/hardware -exerpt: "TommyPROM Arduino EEPROM programmer software design" +exerpt: "TommyPROM Arduino EEPROM programmer hardware design" --- -## Basic Hardware Version - The hardware uses an Arduino to write data and to toggle control lines with the -appropriate timing to access the PROM. A pair of 74LS164 serial to parallel shift +appropriate timing to access the PROM. A pair of 74LS164 serial-to-parallel shift registers latch the address lines. Use of the shift registers allows the Arduino to control up to 16 address lines using only 3 output ports. This design will read and program the 28C series chips and can read most other parallel ROM chip families. @@ -100,20 +98,3 @@ down to D2..D9. Most of the ROM and shift register control lines move over to t pins. The upper shift register is controlled directly from the Arduino instead of being connected to the overflow of the lower shift register. All of the connections are in the chart in the section above. - -## Intel 8755A Hardware Version - -The Intel 8755A uses a multiplexed data and address bus, plus 3 additional address lines. -Most Arduino hardware has enough pins to support this directly, so no additional hardware -is needed for addressing. An Arduino pin is also used to drive the ALE latch pin. - -The 8755A requires the Vdd pin to be be switched between 5V and 25V during the programming -of each byte. A simple transistor circuit is used for this. No voltage regulator circuit -is present here for the programming voltage. Because this is designed as a quickly -assembled hardware design, a triple output bench supply was used to provide the 25.5V, -5.5V and 5V outputs. - -[![TommyPROM Nano Schematic](images/TommyPROM-8755A-sch.png)](images/TommyPROM-8755A-sch.png) - -Eagle-format schematics can be downloaded from the -[hardware project page](https://github.com/TomNisbet/TommyPROM/tree/master/hardware). diff --git a/docs/_docs/design-700-8755A-hardware.md b/docs/_docs/design-700-8755A-hardware.md new file mode 100644 index 0000000..f1a2884 --- /dev/null +++ b/docs/_docs/design-700-8755A-hardware.md @@ -0,0 +1,26 @@ +--- +title: "8755A Hardware Design" +permalink: /docs/8755A-hardware +exerpt: "TommyPROM Arduino programmer for the Intel 8755A" +--- + +A special version of the TommyPROM hardware was developed to support the Intel 8755A +EPROM with IO chip. This is a 2Kx8 UV EPROM with additional I/O ports. + +The Intel 8355 is a one-time programmable version of the 8755A. This design can be used +to read the 8355. + +The Intel 8755A uses a multiplexed data and address bus, plus 3 additional address lines. +Most Arduino hardware has enough pins to support this directly, so no shift register +hardware is needed for addressing. An Arduino pin is also used to drive the ALE latch pin. + +The 8755A requires the Vdd pin to be be switched between 5V and 25V during the programming +of each byte. A simple transistor circuit is used for this. No voltage regulator circuit +is present here for the programming voltage. Because this is designed as a quickly +assembled hardware design, a triple output bench supply was used to provide the 25.5V, +5.5V and 5V outputs. + +[![TommyPROM Nano Schematic](images/TommyPROM-8755A-sch.png)](images/TommyPROM-8755A-sch.png) + +Eagle-format schematics can be downloaded from the +[hardware project page](https://github.com/TomNisbet/TommyPROM/tree/master/hardware).