This page describes my Arduino Flash Programmer, which supports the 39F flash family. This product line was decided on because these flash chips are available in DIP-32 package which fits into a breadboard easily. The actual supported devices are:
- 39F040 (512Kx8)
- 39F020 (256Kx8)
- 39F010 (128Kx8)
The parts needed to build this programmer are the following:
- 4x 74HC595
- 1x 74HC165
- 1x Arduino Uno
- 1x a 40 or 32 pin socket (ZIF is a good choice here)
- 6x 100nf capacitors
- 1x 22 pin male header
- 1x 6 pin female header
- 3x 1KΩ resistors
- 3x leds (choose the colours as you wish)
You can build your programmer on a breadboard, or you can choose to make it a bit more robust and use a protoboard and some wires. I chose to make mine with some protoboard and some enamelled copper wire with a diameter of ~0.2 mm which i put through the protoboard to guide them. The circuit is quite simple but a little bit tedious to build because of the many address wires.
The Arduino sketch used to program and read the flash is long but simple and consists of four parts:
- The low level IO functions
- The low level read and write functions
- The special command functions
- The command parser
The communication parser accepts 9 commands over Serial at 115200 baud which are listed on the top of the arduino sketch below. After some time, I also wrote the Flash Programmer Client which provides file functions in order to be able to use this programmer efficiently.