VisISP-52 In-System Programming Software
Introduction to VisISP-52
VisISP-52 is a Windows application that will run on all modern versions of
Windows (Win95, Win98, Win2000, WinME, and WinXP) and which will allow supported
microcontrollers to be programmed "in-system". It was developed specifically to
program the Atmel AT89S8252 and AT89S8253 installed in an
8052.com SBC but should work equally well
for any other design that uses a compatible ISP and one of the supported microcontrollers.
Installing VisISP-52
To install VisISP-52 on your computer, simply download the following installation program
and run it. This will install the application on your computer and add the appropriate
icons to your "Programs" menu. You may then launch the program normally.
Download VisISP-52 v1.0 Installation Program (3.4MB)
Note: You may need to be logged in as 'Administrator'
in Win2000, WindowsXP, and Windows NT in order to install the program.
Using VisISP-52 to Load Programs on the Microcontroller
VisISP-52's interface is very straight-forward as is pictured below. A single window
with minimal menu options provides access to the primary features of the program:
Writing new firmware to the microcontroller, reading the firmware that is currently
in the microcontroller, and erasing the microcontroller's memory.

Before proceeding, make sure you've selected the right microcontroller in the
"Microcontroller" drop-down window. At this time, VisISP-52 only supports the
Atmel AT89S8252 and AT89S8253.
To Write Firmware to the Microcontroller: In order to write firmware to the
microcontroller, first select the HEX file you wish to download by pressing the "file"
button to the right of the "File to Program" prompt. You will be allowed to select
a HEX file which will be loaded into memory. Once you've selected the file, you
may download it to the microcontroller by pressing the "Write" button. A progress
window will be displayed as the file is transferred to the microcontroller.
To Read Firmware from the Microcontroller: You may read the contents of a
microcontroller by pressing the "Read" button. This will download the program memory
from the microcontroller to the PC. When the download is complete you will be
prompted to enter a name for the HEX file that you wish to write the data to. Note
that you will not be able to download firmware if the microcontroller has a security
"lock bit" set to prohibit such downloading.
To Erase the Microcontroller: You may erase the microcontroller by pressing
the "Erase" button. The erase process is very quick but is subsequently followed by
a verification phase in which VisISP-52 will read the entire contents of the
microcontroller's memory to verify that it was, in fact, erased. You may cancel this
verification process at any time without affecting the erase process which is
completed almost immediately.
Options: The "Options" menu allows you to configure the ports (LPT port to which
the SBC hardware is connected). You may also toggle the "Quick Program Mode." This
option only applies to the AT89S8252. When the Quick Program Mode is selected, VisISP-52
will only download those bytes which are contained in the selected HEX file but will leave
all other bytes alone. This means that if the HEX file only contains 2k of data, only
2k will be written to the AT89S8252 while the other 6k of the AT89S8252 will not be
affected. If this option is not selected then the remaining 6k will be filled
with FFh data.
ISP Hardware
Since the ISP circuit of the 8052.com SBC was
originally developed to operate with the AT89S8252 and "SP89",
VisISP-52 will only work with ISP circuits that are compatible with the original SP89
parallel port pin-out. The 8052.com SBC meets this compatability requirement.
If you are going to include an ISP circuit in your own hardware and you wish it to be
compatible with VisISP-52, use the following pin-out:
| Parallel Port Pin |
Microcontroller Connection/Function |
| 2 (D0) |
SCK/P1.7. The D0 pin of the parallel port drives the SCK/P1.7
pin on the microcontroller. SCK is the SPI clock which is generated by
VisISP-52 and allows the PC to clock data into and out of the microcontroller.
|
| 3 (D1) |
RST/pin 9. The D1 pin of the parallel port drives the
RST pin of the microcontroller. This allows VisISP-52 to put the microcontroller
into reset mode. This is necessary because ISP occurs with reset driven high.
|
| 8 (D6) |
ISP Enable. The D6 pin of the parallel port should drive
a buffer IC such as the 74HC126 such that the other input lines (D0, D1, and
D7) are only connected to the microcontroller when this line is driven high
by VisISP-52. When this line is low, the other three input lines should not
be connected to their respective connections on the microcontroller. Note
that a pull-down resistor between the parallel port and the 74HC126 may be
necessary so that ISP is disabled when no parallel cable is connected to the ISP
circuit.
|
| 9 (D7) |
MOSI/P1.5. The D7 pin of the parallel port should drive
the MOSI pin of the microcontroller. This is the pin that VisISP-52 uses to
actually send data bits to the microcontroller in conjunction with the SCK
clock line.
|
| 11 (S7/Busy) |
MISO/P1.6. The S7/Busy pin of the parallel port should be
driven by the MISO pin of the microcontroller. Data sent from the microcontroller
to VisISP-52 is sent on this line. Note that a termination resistor of approximately
220 Ohms is recommended between the 74HC126 latch and the parallel port pin.
|
| 18-25 (Ground) |
Ground. As many pins between 18 and 25 of the parallel
port should be connected to ground on the microcontroller circuit. While a single
ground line may work, connecting additional ground lines may decrease
problems due to crosstalk between the data lines. This is especially true if the
parallel cable is a flat ribbon-cable.
|
The following schematic describes in detail how such a VisISP-52-compatible ISP
circuit should be designed. This is the designed that is implemented in the
8052.com SBC. Click on the schematic for a larger version.

VisISP-52 History/Background
VisISP-52 originated as a Windows application based on the design of "SP89"
ISP software that was originally developed by Steven Bolt. That software works fine
in Linux and probably works fine in Windows; however, the install process was not
particularly friendly for Windows NT and Windows XP due to additional software that
needed to be installed in order to access the parallel port which is protected in those
operating systems.
Additionally, SP89 only supports the AT89S8252 microcontroller which has now been
discontinued and replaced by the AT89S8253. Thus it is not possible to use SP89 with
the newer AT89S8253 that is shipping with the 8052.com SBC.
VisISP-52 solves both of these problems by providing a single easy-to-install application
that will work on any modern Windows operating system. It also supports both the
AT89S8252 and the newer AT89S8253.
VisISP-52 does not use any code from SP89, although the code for VisISP-52 was developed
with the benefit of looking at the SP89 source code to get a good idea of how
the AT89S8252 communication worked. The AT89S8253 code was developed from scratch
with some limited technical support from Atmel. The software also includes code
based on the parallel port code from
Logix4U.
This software is free and may be distributed without restriction. The source code is
not currently available but will probably be made available in the future. The only
the source code is not being made available at this time is because the code is not
as presentable or as easy-to-follow as it should be and will probably confuse the
curious developer rather than help him.
(C) Copyright 1997 - 2008 by Vault Information Services LLC. All Rights Reserved.
Information provided "as-is" without warranty. Please see details.
Contact us for usage and copy permission.
|