ISP Programmer


ISP Programmer is not supported any more. Please buy USB programming cables at last and start using AVR Studio, avrdude etc. The source code is now abandonware and it will stay on Sourceforge for ages.

This software supports programming of Atmel microcontrollers 89Sxx (’51), ATtiny, ATmega and 90Sxx (AVR). It can erase built-in Flash and EEPROM memories as well as read and program them. ISP Programmer also supports serial Atmel DataFlash memories. Communication with devices is made serially in system (ISP – In-System Programming) without the need to pull the chip out of the socket or desolder it.

  Full source code now available on SourceForge.

The microcontroller you want to program needs to be connected to the printer port (LPT) of the computer (directly with wires, without STROBE signal), according to this list:

  Microcontroller  LPT port   LPT port
  signal           signal     pin number

  [STROBE]  ----   STROBE     1
  RESET     ----   AUTOLF     14
  MOSI      ----   INIT       16
  SCK       ----   SLCT-IN    17
  MISO      ----   ACK        10
  GND       ----   GND        25

STROBE signal connected to pin 1 of LPT port is used to control enabling of 3-state buffers of programming serial bus (SCK,MISO,MOSI). Using it is optional. But in case of connecting LPT port directly to microcontroller pins, you should use the same logic levels (ground / 5V) as LPT port in host and verify that programming would not brake the normal operation of the peripherials connected to this microcontroller. For example programming signals should not be connected to the enable pin of the LCD.

Below you can see the example schematic of the programming cable using 3-state buffer:

Connection of the programming cable to the microcontroller pins depends on the type of MCU, see the documentation at the Atmel’s website.

With the ISP Programmer you are able to use any programming cable pinout, including AT-Prog, SI-Prog, UISP, STK200/300 and AEC ISP. You can choose any pins of the LPT port for programming signals, as well as define arbitrary RESET signal level.

WARNING: In case of programming Atmel DataFlash memories, RESET signal defined in pinout must be connected with ChipSelect (/CS) line of the chip.

Supported microcontrollers:

  • AT89S2051, AT89S4051, AT89S51, AT89LS51, AT89S52, AT89LS52, AT89S53, AT89S8252, AT89S8253
  • AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90CAN32, AT90CAN64, AT90CAN128, AT90PWM2, AT90PWM3, AT90USB646, AT90USB647, AT90USB82, AT90USB162, AT90USB1286, AT90USB1287
  • ATtiny12, ATtiny13, ATtiny15, ATtiny24, ATtiny25, ATtiny26, ATtiny44, ATtiny45, ATtiny84, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATtiny2313
  • ATmega48, ATmega48P, ATmega8, ATmega88, ATmega88P, ATmega8515, ATmega8535, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega165P, ATmega168, ATmega168P, ATmega169, ATmega32, ATmega323, ATmega324P, ATmega325, ATmega328P, ATmega329, ATmega64, ATmega128, ATmega640, ATmega644, ATmega644P, ATmega645, ATmega649, ATmega1280, ATmega1281, ATmega1284P, ATmega2560, ATmega2561, ATmega3250, ATmega3290, ATmega6450, ATmega6490

Supported serial Flash memories:

  • AT45DB011B, AT45DB011D, AT45DB021B, AT45DB021D, AT45DB041B, AT45DB041D, AT45DB081B, AT45DB081D, AT45DB161B, AT45DB161D, AT45DB321B, AT45DB321C, AT45DB321D, AT45DB642D, AT45CS1282
  • AT25DF021, AT25DF041A, AT25DF081, AT26DF081, AT25DF161, AT26DF161, AT25DF321, AT25DF641, AT25F512B, AT25FS010, AT26F004

All the settings of the ISP Programmer are held in system registry, you can also save them into the text file.

This software runs in Windows 95, 98, Me, NT 4.0, 2000, XP, 2003, Vista and Windows 7 (32-bit and 64-bit versions).

The screenshots of ISP Programmer running in Windows 7 64-bit: