Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

A USB AVR/ ATmega/ AT-89-S-51 Programmer + ISP/ ICSP Capability

As my previous post, this time also I haven’t done anything new for the experienced members but newbies might find this post very useful. I’ve made a USB AVR programmer to program ATmega and AT-89-S-51 series microcontrollers. This is based on the schematics available on the Fischl’s website, but I’ve done some changes after experimenting and have mentioned the changes between the Fischl’s diagram and the modified one.
Now, lets get down to the business, this is the schematic available on Fischl’s website,
View attachment 52982
The very next diagram is the modified version, which I’ve constructed. I’ve left the pins +5V and GND (from the 6pin output)on the diagram with tags only and these are to be connected to their respective places. And the output connector pins have been tagged as they are to be connected with the target chip’s respective pins.
The changes done:
On Fischl’s website the code is provided for ATmega8 and ATmega48 but I’ve used ATmega8L successfully with the same code as for ATmega8 and it makes it really cheaper and it also works great. Though datasheet says that ATmega8L’s limit is 8MHz crystal but in this programmer it’s working at 12MHz and working really well.
As other changes, the self programming jumper between pin 1 and pin 16 is completely removed, the 10 pin ISP output socket is modified to become a 6pin socket (because I basically needed 6 pin output), the slow SCK mode jumper from the pin 25 is also completely removed, the pins 20, 22 are disconnected, the 100n capacitor at pin7 is also removed.
I don’t recommend:
The programmer will continue to work if you remove the 4.7uF capacitor and the 3.6V Zener diodes but I’ll not suggest these changes as these might leave your programmer prone to any surges or fluctuations (from power’s end or device’s end) , even when we are feeding the programmer from the very steady USB port’s power, then too. (I would really like some experienced member to comment or share knowledge on this paragraph because my knowledge is very limited in this context.)
I recommond/ Revision on 16-04-2011: To keep the slow sck pin (pin 25) to ground jumper-connection. Because if the microcontroller's low fuse bits are at internal oscillator by default, the target will not be detected. Thanks to Saikatdas1 for suggesting this. I've uploaded the revised modified schematics and board pdf files.
View attachment 55352
Now some photographs of the real construction,
View attachment 52979
View attachment 52980
Following are the board files in pdf format, designed by me,
View attachment 55358
View attachment 55359
(The size of the board is 28mmX60mm. Print the board as full, 100% or no scale or according to the similar option available with your printer.)
And this is the code which you have to burn on the ATmega8L chip. This code is taken from the Fischl's website, and is availabe there too, this is the link
https://www.fischl.de/usbasp/
HEX File: View attachment 52985

...and to be able to program AT-89-S with this programmer you can download the HEX file from the following link:

This hex file has to be written on the chip. You can use following serial programmer to burn the hex file on the chip for the first time, it's very easy to make and would take only 20mins, even I used this for the first time, :)
https://electronics-diy.com/avr_programmer.php

I suggest you to visit this website for more designs which can be used with the same code available on Fischl's. You can use ATmega48, ATmega8 too.
So, happy burning... :)

Comments

umerhuzaifa;bt402 said:
very nice work..
can we use ATMEGA16 and others AVR mcu..?
...well to make the programmer you can use only ATmega8L / ATmega8 / ATmega48 only because the HEX files are provided only for these micro controllers...
...but if your questions was about programming ATmega16 and others then, yes this programmer can programm almost all the avr series...goodluck...
 
removing the 2 jumpers(self programmer, slow) was ok....

but 2 problems...
1. you should place 100nF cap. as i think it's for removing any fluctuations in supply(+5 V)......
and placing it...also wont cost much :p

2. look at this
blog410450-attachment52979d1296560978-programmer-top-jpg

i can find only 5 resistors ??

as the schematic u showed
blog410450-attachment52981d1296561242-fischl-modified-jpg

have 6 resistors !!

so either u missed one on circuit...(i think)
NO OFFENSE, just letting u know, what i noticed.... ;-)


rest nice work dude.... :-D
 
sorry dude....
for problem no.2 !!

i got it.... u placed that under the Controller.....

he he foolish me... :p
 
nikhilsigma;bt488 said:
sorry dude....
for problem no.2 !!

i got it.... u placed that under the Controller.....

he he foolish me... :p

...smart guy, as I told you...you got it before I could correct you...
...now to your first query, 100nF cap (I think you meant 100uF, well than too read on) would be too small for this purpose so the 4.7uF cap has been used, but as you increase this value say for an example 10uF, sometimes the programmer goes erractical...
 
If we dont use that slow sck option,as u removed it in ur circuit contrary to fischal's ,how we shall be able to program avrs for the first time as normally usbasps emit signals at high speed and avr comes with a default setting to use internallow speed oscillatr?I m raising ths point as I have suffered this problem.without slower clock the to be prograamed chip was not detected atall.
let me know if this prb has been taken care of in the firmwire
 
Saikatdas1;bt599 said:
If we dont use that slow sck option,as u removed it in ur circuit contrary to fischal's ,how we shall be able to program avrs for the first time as normally usbasps emit signals at high speed and avr comes with a default setting to use internallow speed oscillatr?I m raising ths point as I have suffered this problem.without slower clock the to be prograamed chip was not detected atall.
let me know if this prb has been taken care of in the firmwire

...hi saikat, you are right this is a problem with the microcontrollers where the lower fuse bits have been configured such...so it's a good idea to keep the slow sck connection jumper...or when ever such problem arises just touch (jump) a wire from pin 25 to ground... :)) ...thanks for your concern i'll update this in the board and schematics as well...
 

Part and Inventory Search

Blog entry information

Author
avinash.kashyap
Read time
3 min read
Views
3,042
Comments
8
Last update

More entries from avinash.kashyap

Share this entry

Back
Top