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:Have a look at the documentation.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
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:
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
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) ofSP89 for Dos/Windows-3X: A serial programmer for working with the following Atmel AT89 uCs: AT89S8252, AT89LS8252, AT89S53, AT89LS53
SP89 for LinuxThe 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-XPThis 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, AT89LS53But 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.