AT89S8252 Firmware Uploader Interface

Last updated: July 6th, 2002

Introduction:

The purpose of this little project was to be able to use some of the freeware In System Programming software that is available to burn firmware into the  Atmel AT89S8252. Most parallel ports do not have enough drive to directly drive this process. With the interface described below, burning software into the AT89S8252 becomes reliable over as long as a 25' parallel port cable (this is the longest cable I had on hand to try). Also, I might mention that this article describes the hardware end of the the interface only. Check the AT89S8252 Development Software and Utilities page for software to run on your PC to burn firmware into your Atmel AT89S8252 microcontroller project using this uploader interface.

There are basically 2 ways to get firmware into a microcontroller. The first way and the oldest way is using a Device Burner such as an EMP-21 from Needham's Electronics which is the way I've done it for years. I own an EMP-20, and it has by far been one of the best Device Burners that I have ever owned, but for the hobbyist, $400+ for a device burner is a little extreme, and this has been one reason that the average hobbyist was reluctant to experiment with microcontrollers.

One advance in microcontrollers that has come about in the last few years is the ability to burn firmware into the microcontroller with 2 to 4 pins on the device that form a serial programming interface. Since the interface is used with the RESET line held HIGH (reset state) on the Atmel AT89S8252 during programming, these pins can also be used as general I/O for normal microcontroller operation, enabling In System Programming. This has the distinct advantage of being inexpensive to implement (~ $5 to $10 for the circuit below) and also not having to pull the microcontroller out of the circuit to burn new firmware into it. This can save a lot of time when you are in the software development cycle of a project and revisions of software can come every minute or so, Hi!

Circuit Description:

The circuit is very basic, and the schematic is very straight forward. The function of the circuit is to clean up the signals between the PC and the microcontroller project. It's basically a Wave Shaping/Buffer circuit. The 74HC14 Schmitt Trigger is the wave shaping part of the circuit. Basically it takes the waveforms that have become a bit rounded due to running through the parallel port cable, and squares them up again.  The 74HC126 is a Quad Tri-State Buffer. It's function is to connect the PC parallel port's signals (that have been cleaned up with the 74HC14) to the microcontroller's programming interface when programming is active and disconnects it for normal microcontroller operation when the programming cycle is over. For convenience, I included a reset push button on the interface for resetting the microcontroller on the fly. The interface can remain connected to the microcontroller project during normal operation. Power for the interface is pulled from the microcontroller circuit, not from the parallel port. The author feels that pulling power from a parallel port is in violation of the parallel port standards and is a bad practice. 

 

Click Here to Download a Zip file of the Schematics and PCB Layout Example

 

73's Trev

K6ESE Home