Inline graphics on this page: 4K

SP89 - a programmer for AT89 microcontrollers

The present version (0.7) is suitable for the following uCs And offers facilities as shown in the table:

                    chip    read/write   read/write    write
                    erase   flash        eeprom        lock
        AT89S8252   YES     YES          YES           YES
        AT89LS8252  YES     YES          YES           YES
        AT89S53     YES     YES                        YES
        AT89LS53    YES     YES                        YES
Have a look at the documentation.

The software is intended for `in circuit' programming, which means that you don't need special hardware, apart from a cable between a parallel port of your PC and the target board. That board must allow free access to MOSI, MISO, SCK and Reset. It is a good idea to terminate SCK on the target board using a 22pf capacitor and a 100 ohms resistor. A look at the schematic:

`In-circuit' programming
hardware

The programmer software is available under the GNU General Public Licence; the packages below (for Linux, XP and Dos/W3X) contain the source code, documentation and an executable.

SP89 for Dos and Windows 3X/9X DosBoxes

COMPATIBILITY
The 32-bit protected mode executable found in this version of SP89 relies on MS-DOS and BIOS for file I/O and other basic functions such as keyboard input, screen cursor position, etc. It uses "DPMI" (the DOS Protected Mode Interface) to allow DOS/BIOS calls from protected mode.
SP89 is known to run in MS-DOS, in a Windows-3.X DosBox and in a Windows-9X DosBox or DosMode. Windows NT does not provide the access to the parallel port required by SP89.

Here you have a self-extracting package containing version 0.7.2 (106K) of

SP89 for Dos/Windows-3X: A serial programmer for working with the following Atmel AT89 uCs: AT89S8252, AT89LS8252, AT89S53, AT89LS53

SP89 for Linux

The version 0.7.2 package (60K) contains an executable which depends on libc.so.6. It repairs the timing, which was broken in 0.7.1. (This only affects the Linux version.) The package containing a statically linked executable has been discontinued, because older and newer Linux kernels are no longer able to run the same binaries. But you can easily compile an executable for your own system. Entering the Source directory and typing 'make' should usually do the trick.

SP89 for Linux: A serial programmer for working with the following Atmel AT89 uCs: AT89S8252, AT89LS8252, AT89S53, AT89LS53

SP89 for Windows-XP

This version 0.7.1 package (67K) contains source, executable and documentation:
SP89 for XP: A serial programmer for working with the following Atmel AT89 uCs: AT89S8252, AT89LS8252, AT89S53, AT89LS53
But you also need:

Tomas Franzon's UserPort stuff (33K)

How about the AT89S52?

A number of people have asked about new versions supporting this uC, or even tried to make sp89 recognize it, without making other changes in the source. If the serial programming algorithms of the AT89S52 and the AT89S8252/53 were similar, adapting sp89 would indeed require only minor changes. But a quick look at the AT89S52's datasheet reveals a very different algorithm, involving a 4-byte instruction format. The AT89S53 and AT89S8252 programming command sets are based on a 3-byte format.

Sp89 was designed commercially for a company which agreed to the GPL. I'm not using it myself; the AT90, ATmega and ATTiny uC's (supported by sp12) work much better for me. So sp89 probably won't be developed to support the AT89S52, at least not in the near future.