Sunday, August 17, 2008

Easy-Downloader V1.1 for ATMEL 89C2051/4051

Wichit Sirichote, kswichit@kmitl.ac.th

Build your own a personal writer for programming HEX code into Flash based microcontroller AT89C2051(2k) and AT89C4051(4k). Simple hardware and Easy use software in DOS and Window version. Single-side and double side PCB files included.source code with sdcc version!



Introduction
The first version of the Easy-Downloader was designed in 1997 to be used as a tool for my students on building her/his own microcontrollers circuit in the class " Designing Microprocessors System". The circuit features low-cost and easy use. The latest version V1.1 was designed to be used with 2051 and the newest 4051 chips. There is no separate functions like other programmer e.g., blank check, erase, write. Simply type say, c:\..>ez hello , the hex file "hello.hex" will then be programmed to the chip automatically. If the chip is not blank or the code is locked, it will erase first, then write and verify... that all.

Hardware
Figure 1 shows a circuit diagram of the Easy-Downloader. As shown, the circuit uses a 89C2051 with writer.hex firmware, 74LS373 8-bit latch, DS275-like, 7805, LM317 and two transistors, 2N2222A and 2N2907A. The programming voltage control circuit is the same as recommended by ATMEL application note. It can be raised from 0V, 5V and 12V by appropriated signal from P3. The 8-bit latch, 74LS373 provides some signal for selecting the programming modes. A byte to be programmed or read back is sent/received through P1. Incrementing address is done by pulsing a positive pulse to XTAL pin. The circuit may be built using simple point-to-point soldering with a general purpose PCB( fish's egg like PCB) or making PCB shown above, the file is Easy-v1.pcbProtel PCB version 2.76. The finished board should be tested without any chips; 1) +5V supply, 2) programming voltage 0V, 5V and 12V by connecting the pin that control (P3.5 and D) 2N2222A and 2N2907 to +5V and/or GND. The adapter output should be approx. 15Vdc 100mA.


Circuit Diagram of Easy-Downloader V1.1

Acrobat PCB Files

As suggested by a friend from Romania, Puiu Chiselita, to provide PCB image in Acrobat file, so I have asked my friend, Jaroon Keawkhrua. He made within an hour, thanks again for providing us, the Acrobat PCB file.




Download
TOP LAYER (80kB)easy-v2t.pdf
BOTTOM LAYER (36kB)easy-v2b.pdf
COMPONENT LAYER (51kB)easy-v2o.pdf

Two files that you should get are: writer.hex
4,871 bytes, the intel hex file firmware for 89C2051 chip ( the actual code size is 2021 bytes) and, ez.exe 20,800 bytes the uploader program run on PC, send hex file to the downloader. The original writer.c program was written in 'C'. To modify, it needs Micro C-compiler from Dunfield Development System Ontario Canada with tiny memory model.

Functional Test

Use a given programmer (or ready made Easy-Downloader) write the writer.hex into the 2051 chip. Put the programmed 2051 chip to the board. Invoke any communication software with 9600 baud, 8-data bit, no parity. Connect DB-9 to COM1, say, press enter key, the title "Easy-Downloader V1.1 for ATMEL 89C2051/4051" would be appeared on the screen. type >s2048 ( set byte counter to 2k), then without the 2051 chip in ZIF, type >r (read 2kB), on screen would show FFFFFFFFFFF... indicating corrected wiring for P1. If you put the chip having already program inside, r command will show the hex code with the number of byte set by s command. Try e command to erase the entire program!! All done. Figure 2 shows example of using Xtalk program to test the board.



Using Xtalk to test the board

Now try with "ez" the uploader program to help you more easy to write the hex file to the chip. Example of using ez is shown in Figure 3. Have fun...

Note: EZ3 can use only with old PC that runs dos, for new PC try with window version!


Example of using EZ program writes the writer.hex to 2051 chip


Example of Using EZ3



Example of Using EZ3.1


Download EZ Uploader V3.0 for Window The EZ Uploader provides a simple means of sending HEX file to the writer board. To connect the board with EZ, click available COM port, COM1, say. After the EZ recognizes the chips, then click Send Hexfile, that all. Since there is no signature byte that indicates chip number and programming voltage, thus you have to choose the appropriated memory size either 2051 or 4051 manually, i.e., 2048 or 4096 respectively.

Download EZ Uploader V3.1 for Window An upgraded version of EZ3 with RAED and SAVE AS features for reading HEX code resided in the chip and save as an Intel HEX file.

Tips

HEX file extension

Some Assembler or Compiler produce output hex file with .OBJ instead of .HEX. The EZ needs .HEX extension, just rename it...

Expensive ZIF Socket

Without expensive ZIF socket, you may use an ordinary socket instead, surely many times of pulling the chips may cause the far end leg of the 2051 chip broken. My student suggests me to insert one more socket to the 2051 chip. It works very nice. Even the programmer has ZIF, but your application board does not have. Better to insert one socket to strengthen the 2051's leg.

DC Adapter

Any DC adapters, fixed or adjustable can be used, a bridge diode corrects polarity for the regulator IC eventually. Many adapters provide higher DC output than the value labeled, to ensure, check the proper programming voltage that must be in the range of 11.5 to 12.5V.

Put the Right Position

The latest version does not include the protection circuit if putting wrong position, i.e., GND-Vcc <--> Vcc-GND.

Thus before put the chip into the programmer or your application board, back to see your thought, say I am putting the 2051 chip to the right position, then pick the chip, and place it...

89C1051

There is no problem with 89C1051 chip but ensure that the hex code size must less than 1024 bytes (000H to 3FFH). While verifying after erase it showed 0 to 2048 byte as the 2051 chip, it means twice reading, i.e., 000H-3FFH then 000H-3FFH, the same physical address. When programming, the control chip will write and verify only the size of program.

Easy 1.1 Links

* Make Your Own Single-Side PCB for Easy-Downloader V1.1

* RS232C Level ConverterA circuit for RS232C level converter, MAX232 and DS275.

* Experimenting the 2051 with C Programming


Source code for sdcc
I spent my weekend modified the source code of Easy downloader V1.1 for sdcc! Now you may study the code to see how it works with a nice tool available freely for everyone, the small device c compiler, sdcc. The compiled code is very nice and is very compact. You may noticed that the size of new firmware is only 1128 bytes!

Download the source code,
WRITER1.C , hex file, writer1.hex and the compiler,SDCC.zip

Below is a sample how to use sdcc.

C:\sdcc\app>s

C:\sdcc\app>path=c:\sdcc\bin

C:\sdcc\app>sdcc writer1.c

library file /sdcc/share/sdcc/lib/small/libsdcc.lib
library file /sdcc/share/sdcc/lib/small/libint.lib
library file /sdcc/share/sdcc/lib/small/liblong.lib
library file /sdcc/share/sdcc/lib/small/libfloat.lib

C:\sdcc\app>packihx writer1.ihx>writer1.hex
packihx: read 166 lines, wrote 75: OK.

C:\sdcc\app>



The batch file s.bat contains,

path=c:\sdcc\bin
sdcc writer1.c
packihx writer1.ihx>writer1.hex

The output machine code is hex file with *.ihx extension. We can use a tool, packihx to convert such hex file with *.ihx to *.hex easily.

The ez4.1 is suitable for programming the hex file into a 20-pin microcontrollers, 89C2051/4051. Since the hex file produced by sdcc is not sorted from low address to high address. The old version, EZ31 has bug for such hex file. So I recommened to use EZ4.1 for program loading. Click at the picture to download EZ4.1!


Contribution to Easy Programmer V1.1


PROGRAMM.PCB Layout made by Hooman Falahati, from IRAN.


Source:
http://www.kmitl.ac.th/~kswichit%20/easy1/easy.htm




0 komentar: