ISP Flash Microcontroller Programmer 
Ver 3.0a

Mohammad Asim Khan,


This ISP Programmer can be used either for  in-system  programming  or  as a  stand-alone spi programmer for  Atmel   ISP   programmable   devices.  The   programming   interface   is   compatible   to   STK200   ISP programmer hardware so  the users of STK200 can also use the software which can program both the 8051 and AVR series devices.


Figure 1 shows  the  circuit diagram of the in-system programmer interface,  the  power to  the  interface  is provided by the target system. The 74HCT541 ic isolate and buffer the parallel port signals. It is necessary to use the HCT type ic in order to make sure the programmer should also work with 3V type parallel port.
Figure 1:   Circuit Diagram of the ISP Programmer Interface
Figure 2  shows  the  circuit  diagram  of  the  stand-alone  spi  programmer, the  power  to  the  interface  is provided  by  the PC USB  port  which can supply a  max of 100mA  current. Get a cheap USB  cable, cut the
cable other end connector and attach a crimp shell connector  to this end,  red wire is 5V and  black is 0V.

The  printer  port  buffer interface is same  as shown in figure 1. For the u-controller a 40 pin ZIF socket can
be  used.
This  programmer  circuit  can be use to program the 89S series  devices and the AVR series devices which
are  pin  compatible  to  8051, like  90S8515.  For  other AVR  series devices the user can make an adapter
board  for 20, 28  and 40  pin devices. The  pin numbers shown in  brackets  correspond to PC parallel port

Figure 2:   Circuit Diagram of the SPI Programmer


The  file contains the main program and the i/o port driver. Place all files  in the same folder.
The main screen view of the program is shown in figure 3.

Also   make   sure   do   not   program    the    RSTDISBL    fuse   in   ATmega8,   ATtiny26  and  ATtiny2313 otherwise  further  spi  programming  is  disable  and  you  will  need  a  parallel  programmer  to  enable  the
spi  programming.  For  the  fuses setting consult the datasheet of  the respective device.

For  the  auto  hardware  detection  it  is  necessary  to short pin 2 and 12 of DB25 connector, otherwise the
software uses the default parallel port i.e. LPT1.

Following are the main features of this software,

  • Read and write the Intel Hex file
  • Read signature, lock and fuse bits
  • Clear and Fill memory buffer
  • Verify with memory buffer
  • Reload current Hex file
  • Display buffer checksum
  • Program selected lock bits & fuses
  • Auto detection of hardware


    The  memory  buffer  contains  both  the  code  data  and  the   eeprom  data  for  the   devices  which have
    eeprom  memory. The  eeprom  memory  address  in   buffer  is   started   after  the  code  memory,  so it  is
    necessary the hex file should contains  the eeprom start address after the end of code memory last address
    i.e. for 90S2313 the start address for eeprom memory is 0x800.

    The  software   does   not    provide    the     erase    command     because    this    function    is    performed
    automatically  during  device programming.  If  you are  required to erase the controller,  first  use  the  clear
    buffer command then program the controller, this will erase the controller and also set the AVR device fuses
    to default setting.


    ISP-Flash Programmer Software

    Figure 3:   Main screen of the program ISP-Pgm  Ver 3.0a

    Contribution to Asim's ISP Loader Schematics and PCB Files including PDF layouts for all layers designed by Farshid Jafari Harandi from Iran using Eagle cadsoft. updated 8-Sep-2005

    AT89ISP.rar Single side layout made by Amr Ahmed Abdel-Baset from Egypt. Single Side PCB files in Post Script and PDF Format made by Prahlad J. Purohit from India. Layout made by Mehrdad Mahboudy from Iran.

    The ISP-Flash Programmer was designed by Mohammad Asim Khan.  Revised  14.August.2004
    Any bug report or suggestion of using the ISP-Flash Programmer are welcome.