Electronics – Tuts, tips and much more …

If we hear, we forget; if we see, we remember; if we do, we understand – Confucius

Make your own, ultra simple, universal AVR programmer !!

Posted by Omkar on October 15, 2007

Two types of AVR programmers can be built :

1)Parallel port
2)Serial port


PARALLEL PORT :
————————–

Following circuit diagram shows ultra simple AVR microcontroller (SOURCE: unkown). It requires very few components and its very simple to build on general purpose matrix PCB. You can use PonyProg2000 software to program your AVR using this programmer.

CIRCUIT DIAGRAM :


LIST OF COMPONENTS :

1)Resistors 220Ohms ,1/4W 4
2)Capacitors 27pF,disc 2
1µF , electrolytic 2
3)Crystal 4Mhz OR 8Mhz 1
4)Voltage regulator 7805 1
5)Connector D25 Male 1
6)Grid PCB 3″ x 3″
7)Connecting wires - -

approximate cost : 55 Rs

• As programmer circuit is very simple, u can use substitutes if particular component is not available at your place.
• You will not get 3”x 3” GPCB ready made, you have to cut standard sized PCB. 3” x 3” is just rough estimate

SNAPS :

Following photograph shows programmer I have made for 40Pin and 20Pin AVR µCs. MISO, MOSI, SCK, RESET, X1, X2 , VCC and GND pins of both 40pin and 20pin sockets are connected together.


CONFIGURING AND USING PONYPROG2000 :

  1. Open PonyProg2000
  2. Select menu : Setup>Interface Setup
  3. Select “parallel”, from drop down box select “Avr isp i/o”, select “LPT1″. Click OK.

  4. Now select menu Setup>Calibration. A dialog box will appear , click YES.
  5. Now PonyProg2000 is configured and ready to use.
  6. To burn your .Hex file into micro, select File>Open Program(FLASH) file.
  7. Select appropriate microcontroller from the list of devices at top-right. e.g >
  8. Connect your programmer ckt to PC, then place your micro into programmer ckt and turn on its power supply.
  9. Now click on the encircled icon :
  10. When device is programmed you will get “Program succesful” message.

SERIAL PORT :
———————-

Serial port programmer(reference: At-Prog) is shown here. Main advantage of using serial port is you can have cable length upto 2m. You can use PonyProg2000 software to program your AVR using this programmer. Serial port generates +- 12V on its pins, thus diodes and zener diode is used to clamp +12V to +5.0V(4.7V due to zener + 0.3V due to bat85) and -12V to -0.3V (due to lower Bat85). You can substitute Bat85 with 1n4148, however it is not recommended because, this diode will clamp +12V and -12V to +5.4V and -0.7V which are not desirable, as per datasheet of microcontroller. Its not that micro will burn if you use 1N4148 diodes, but why to take risk !!.

CIRCUIT DIAGRAM :

LIST OF COMPONENTS :

1)Resistors 1K,1/4W 4
2)Capacitors 27pF,disc 2
1µF , electrolytic 2
3)Crystal 4Mhz OR 8Mhz 1
4)Voltage regulator 7805 1
5)Connector D9 Female 1
6)Diode Bat85 8
7)Zener Diode 4.7V 1
8)Grid PCB 3″ x 3″
9)Connecting wires - -

approximate cost : 90 Rs

CONFIGURING AND USING PONYPROG2000 :

  1. All steps are same as described in parallel port programmer section, However during third step do the following settings :

    select “serial”, from list select “SI prog I/O”, select “COM1″( usually serial port is at COM1, if your computer have more than one serial ports multiple options will be active. Select appropriate, if you know, else do trial&error), check “Invert Reset”. Click on OK.


COMMENTS :

• Circuit diagrams shown above are generic and suitable for any AVR µC which supports ISP (almost all AVR, you can refer to www.atmel.com)
• Connect pins (e.g. MISO,MOSI, etc…) of AVR to appropriate points shown in circuit diagram.
• You can built programmer for more than one AVR devices by using different IC sockets for each device and doing appropriate connections of all above signal lines ( MISO,MOSI,SCK,RESET,X1,X2) and Vcc,Gnd of each AVR.
• Prefer using ZIF socket with IC base(refer: How to use ZIF socket in circuit without re-drilling holes on PCBs). Though It is bit costly, it proves extremely helpful.

132 Responses to “Make your own, ultra simple, universal AVR programmer !!”

  1. paschal said

    i am very greatful for the information it helps me a lot and i hope you can be able to help me someother time

  2. Sunil said

    Hello..
    I cant find BAT85 in local market…
    So can u plz suggest any option??
    Plz give name and number of part..
    Thanx in advance…!!

  3. syakira said

    can i used it with avr atmega 128?

  4. sabin shr said

    hi
    can i program at89s51 using pronyprog programmer
    can i make chage in bat85 diode using max232

  5. dd said

    i want program Mega88.. and i thought you oly need #CS,SI,GND,VCC,SCK,SO
    to program why do you have X1,X2? are those necessary?

  6. Mrunal Ahirrao said

    Sir I tried to burn .hex in PIC by using other kit but i am getting error ‘verify failed at 0000h’ sir please help… Though this question is out of this discussion but please help me!

  7. Mrunal Ahirrao said

    Thankyou sir.I am very much thankful to you for designing such circuit and sharing with us! As such kits are much costlier in market.I will be completing this kit soon!

  8. Mrunal Ahirrao said

    Sir can we use uC other than AVR like PIC on this kit?

  9. Pulkit said

    i did not find the bat45 diode….can it be replaced by any other diode??please reply…i have an urgent need for this programmer

  10. Rabin said

    It do not need crystal for AVR to program the flash.

  11. Rabin said

    It works well on Attiny 26.
    I just powered up the VCC from the computer’s supply.

  12. Shashank Patil said

    bro i am using atmega8L and want to kno abt fuse bit setting and i aslo gone throug ur article but didnt understand ?????????

    • Omkar said

      you can use fuse bit setting same as mega8. mega8 and mega8L are essentially the same. Just speed is different. ‘L’ is slower.

  13. pete said

    Hello guys,

    does anyone know how to connect the following signal lines ( MISO,MOSI,SCK,RESET,X1,X2) and Vcc,Gndto 20 pin socket for invading ATtiny2313 chip?

    Thank you in advance.

    Pete

  14. praneet said

    Can I use 16 Mhz crystal instead of the 4 Mhz mentioned above for burning the uC? Also what ZIF socket should I buy? I have seen some have 40 pin slots,20 pin(and that to in 0.3 in and 0.6 in).Please help !

    • praneet said

      Hi omi or anyone else, anyway i bought 4 mhz crystal and 40 pin zif. when i use ponyprog i get the error commn port not available -16.when i go to i/o setup and select parallel+avr isp i/o ALL my LPT are disabled although when i go to device manager it says PCI_LPT(LPT3)working properly in the properties! Now i dont know what to do..Iam trying to program atmega8 in xp.please help!

  15. Arun said

    I want to program AT89S52. but it not in the device list. Hence to program AT89S52 which option should be selected? AT89s53 or AT89s8252 because only two option is there in AT89s series.

  16. [...] and test them on your development kit . – To know, how to burn code into uC using PonyProg2000, click here. – If you don’t have development kit, simply connect 8 LEDs to PB (i.e port b). – In [...]

  17. Srijit Misra said

    Can this be made to program AT89c51/52…if so what is the pin out mapping required?Also do you know of any programmer software which supports configurable serial/parallel interface with support for AT89c51/52?
    Thanks.

  18. Srijit Misra said

    Hello Omkar..thanks for the simple but awesome ckt.
    I made the parallel port version…used 4 Mhz crystal as described in the ckt.
    Made all the other connections(MOSI,MISO,SCK,RESET,VCC,GND) as described.
    I calibrated the Pony Prog…selected AVR ISP I/O….loaded the hex file.
    I want to program AT89S52 … but not having found that I selected AT89S8252 both having similar
    SPI.

    But it gives ‘DEVICE NOT RECOGNIZED’…same with AT89S53.
    So I tried with Asim Khan’s ISP software…
    It gives the message: “No Response from uc..” and mismatch of device signature…
    Kindly help.Thanks.

    • Omkar said

      Device signatures for 89S52 and 89S8252 are different as they are two different devices. Pony prog verifies the device signature before continuing. If you want to use Asim Khan’s programmer you have to make sure that parallel port pin configuration of the ISP programmer’s circuit and that used in Asim Khan’s programmer is same. Alternative is to use “ISP programmer” developed by “Adam Dybkowski”. This software has provision to configure parallel port pins. You can change the settings in that software according to the schematic shown on the blog. It works if properly configured.

      • Srijit Misra said

        I tried with Adam Dybkowski’s Isp programmer version 1.2.0.55 and configured the same according to the schematic given above.Reset–pin9 , Mosi–pin7, Sck–pin6,Miso–pin10.
        This time it reads the device signature and recognizes the same as 89s52 but still cannot program the flash coming up with the error :

        Error at 00000000 Byte written 0C read 00
        or sometimes
        Error at 00000000 Byte written 02 read 00 :(
        What to do next???
        Plz help.Thanks.

        • Omkar said

          It means there is some issue with the programming cable or the device itself. Have u given 5V supply to the uC ? Try inverting the RESET line from software.

          • bluedazzblaze said

            Yes and many thanks,it is working :) …only problem is that it is loosing the device signature often and is requiring repeated reads of the same for a single write or verification…otherwise it is working fine.

            P.S. I tested with another device with the same result.

            Do you have a comparatively easy usb compatible programmer schematic for SPI programmable devices?

            Thanks again :)

          • Omkar said

            USB compatible programmer is “USBasp”. Some people have posted modified firmware of USBasp which enables burning 89S52 devices. See the comments on USBasp related posts on this blog.

          • Omkar said

            USB compatible programmer is “USBasp”. Some people have posted modified firmware of USBasp which enables burning 89S52 devices. See the comments on USBasp related posts on this blog.

          • Srijit Misra said

            Do you know of a programmer with software configurable serial port terminal like Adam Dybkowski’s parallel port programmer?

  19. Bishshoy Das said

    I am a newbie at these. So please help me clear a confusion. I have read in other websites that you require a MAX232 in between the Female D9 connector and the avr interface to convert the signals correctly. But the circuit for the serial connector does not have any such approach. Does the circuit compensates for that? Please clear my confusions.
    And if someone had made it working plz drop in a confirmation comment, that this works. I want to be absolutely sure coz i dont want to burn the atmega32, i have, instead of burning the code !
    bishshoy.scientific@gmail.com

    • Omkar said

      Yes, this circuit compensates for the MAX232 through the use of diodes. This circuit absolutely works on PC serial ports (not sure about laptops since USB2Serial converter will create timing problems). And if you want to be on the safe side, you can always buy low cost USBasp programmer mentioned on the products page.

  20. [...] Posts How to make simple Infrared Sensor ModulesAVR : Tutorial 2 : AVR – Input / OutputMake your own, ultra simple, universal AVR programmer !!Anode and Cathode of LED !AVRDude Tutorial : Burning hex files using USBasp and AVRdudeUSBasp [...]

  21. Nat said

    Thank you so much. I used this with ATTiny2313 worked perfectly. I didn’t need to have the crystal. In pony prog make sure you select your chip type from the drop down. Thanks again.

  22. Divyam Chhaya said

    I am getting this error “Device missing or unknown device” !!! I just have no idea what to do…Everything is connected properly…But still !!!And above that, write failed…. :(

    • Omkar said

      If you are using brand new microcontroller, you will have to put USBasp in slow clock speed mode, by closing the “slow clock” jumper on USBasp.

      • Divyam Chhaya said

        Bro, what u said,just went above my head..! :D Whats Whats USBasp..??

        • Omkar said

          Ohh … I am sorry. My mistake. Anyways, in your case check these things : Check whether u have connected crystal or not and uc is getting power supply or not. Which programmer you have made ? serial/parallel ?

          • Divyam Chhaya said

            I have made a parallel programmer.Will the computer detect the LPT port as soon as I insert the device in…?.
            Look.Il tell you.I completed the circuit, inserted in my PC’s printer port, made a hex file copied it to pony prog,, and clicked on the icon which u said, to write into the microcontroller.Then it says “Device unknown, or missing”….:O
            If this is made, I have a lot of stuff to be done.. :)

          • Omkar said

            When u use Pony Prog for the first time, you have to calibrate it. Also, you have to specify ur parallel port (LPT1) in PonyProg settings. Wire length should be less than a meter. If still it doesn’t work, then may be parallel port itself has some issues, so you should check it with another computer.

  23. Ravi Singh said

    i am having windows & as my Os and i bought a usb to serial programmer to program my atmega 16 development with no boot loader on it.as serial cant program the atmega board can i use a serial to isp and use both usb to serial and serialplease reply soon
    to isp in combination on my laptop.will it work.
    http://www.nex-robotics.com/products/usb-and-ethernet-interfacing/usb-to-rs-232-converter.html

    • Omkar said

      It is observed that Serial-to-ISP doesn’t work on laptops, when you use common USB-serial converters. You will have to get USBasp programmer or any other similar device.

  24. mahesh said

    hello sir,

    i m doing it serialy it require any baud rate setting?

  25. Sandeep Kumar said

    thanks…nice one…

  26. sha said

    elow. omi or any other.. want to know if this programmer will work for my chip AT89c2051.. pls reply. thanks a lot..

    • Omkar said

      It depends on the software. Pony Prog doesn’t support AT89C2051. Best way is you can go for AT89S52, it is compatible.

      • sha said

        thanks for that. ISP programmer i think supports at89c2051 but i can’t find any MOSI and MISO pins in AT892051. is has only RXD and TXD pins. pls help…..

  27. thanx a lot :)

  28. Basharat said

    It is really a simple and effective progreammer… wow

  29. [...] Making you own programmer serial and parallel, very good reference: http://elecrom.wordpress.com/2007/10/15/make-your-own-ultra-simple-universal-avr-programmer/ [...]

  30. nugroho said

    is it possible to combine the serial port programmer with serial communication circuit (eg. MAX232 circuit) ?

    thank’s in advance

  31. John Karavas said

    Is this programmer compatible with ATMEGA8535/16PU ?

  32. Sumon said

    But in pony prog 2000, i cant find AT89S52 uC.There are only AT89S8252 and AT89S53, so Which programmer i will use??

  33. Sumon said

    can i burn AT89S52 by this programmer???? plz reply.

  34. Sumon said

    How can i erase a micro controller program? plz..reply as soon as possible?

  35. Sumon said

    How can i erase a micro controller program? plz..reply as soon as possible.

  36. Debashis said

    I don’t have any serial/parallel port on my laptop, only has usb port,so can I use any USB to parallel port converter with the “parallel port programmer of avr”?
    will it work?
    plz reply her or plz mail me.plz it’s urgent.

    • WinCrazy said

      Yes, but make sure the parallel port side has “full 2-way bidirectional” communication abilities. Many/most cheap USB/parallel adapters do *not* have this capability. If the unit is not advertised to have this then it probably does not.

  37. SUNIL said

    helo i need to glow LED by the c or java program or any how will i do it………….

  38. PAVAN said

    hey elecrom..
    i am totally new to robotics and microcontrollers…

    well to program my atmega 16/32..wat to do??

    well i don hav parrallel and serial port..then how to burn program on to it??
    pls..reply to my id feelpavan@yahoo.co.in

  39. pranav said

    hi omi
    the cable u provide for the serial interface between pc and max232 …
    is this cable a rs232…

  40. dh@v@l said

    i want to use the atmega 8 for my projedts than which pins i have to for load program in to controller?

  41. dh@v@l said

    Is it neccesary to have a d25 female port in your computer?

    • Omi said

      Yes, absolutely !! It is printer port based programmer. If you don’t have printer port you can try serial port based programmer. If you don’t like that also, you can try USBasp.

  42. Benski said

    i built this circuit but it only would set pins either on or off. was wondering if the reset needed to be differently hooked up? (programming a AT90S1200)

    • Omi said

      >>Benski
      Connect 47K pull-up for reset and make sure that your uC supports In system programming. I didn’t understand : “i built this circuit but it only would set pins either on or off”

  43. Rony said

    i will like to know if i can use this to program at89s51, i need a working one badly. thank you

  44. Omi said

    >>Mize
    Reset line should be pulled high on target board using 47K resistor. No other things are required. When you finish the programming and want to run your program, be sure to remove ISP cable from target board, or your uC might be kept in RESET condition, by pony prog.

  45. Mize said

    I was wondering about the reset line, and if you can setup some kind of switch, and if so will that work since it’s directly from the programmer. As well, do you have an recommendations for target boards, or sites that have good designs for target boards that can utilize your ISP. Thanks again.

  46. Aldrin said

    Hi …can u pls tell me wht OCR2=49 means…
    actually m trying to get an interrupt of 160Khz using 16Mhz clock
    so m using da clock without prescaling it by setting TCCR2=0×09
    den if I set OCR2=49 will u pls help me out in knowing what will happen…?

  47. Aldrin said

    Thanks a lot…

  48. Omi said

    >>Aldrin
    AVR, I will recommend you two books :
    - Programming and Customizing AVR – Dhanajay Gadre
    - AVR microcontroller primer programming and interfacing
    - and of course … exact and to the point information is available in datasheet of the respective controller

    #asm, #endasm is used to insert inline assembly code into your program. It is specific to CodeVisionAVR compiler only.

    Say for example, in some application you need the delay of exact 500ns. Operating freq of uC is 16MHz. Now to generate this delay you can use 4 NOP instructions in ur programm. 1 NOP takes one clock cycles and so 4 NOPs will produce desired delay. It should be written as follows :

    #asm
    nop
    nop
    nop
    nop
    #endasm

    If you want to include only one single instruction in then you can do it with :

    #asm(“nop”)

  49. Aldrin said

    hey … can u pls explain to me also why #asm and #endasm is used..

  50. Aldrin said

    Hi …I dunno if u remember me…hw u doin..?…can u pls tell me a gud book on internal Architecture and programming of Atmel32 if u knw

  51. Omi said

    >>Mize

    Whatever you have mentioned is correct you can use capacitors from 20pf to 30pf. However after going thorugh few microcontroller datasheets and some application notes here is what I follow :

    As a thumb rule : for crystals between 1MHz to 4MHz use 33pf capacitor as a load for crystals having freq more than 4MHz upto 8MHz use 27pf and for crystals having freq more than 8MHz use 22pf.

  52. Mize said

    I have been very interested in building this myself but am a little confused when I go to choose a crystal. There are many that specify a load of 20-30pF and some that say series. I was wondering if you could tell me which one I need to build the serial ISP. Thanks, and great site, really has peaked my interest with AVR.

  53. Omi said

    >>Siddi
    Are you sure you have already set mega16 to internal 8MHz oscillator ? Whenever you buy brand new IC from a shop, it is by default set to internal 1MHz oscillator. If you would have set the fuse bits to use external crystal then, uC will not function until you connect crystal to it.

    ATmega doensn’t need anything special for programming. Everything is handled by the ponyprog. If your setup is not working, then there can be problem with uC or problem with parallel port converter. I have already mentioned that is it not guaranteed that such converter will work for uC programming.

  54. Siddi said

    I just connected the following signals between controller and the parallel port

    1. MISO
    2. Vcc
    3. SCK
    4. MOSI
    5 RESET
    6. GND.
    (all signals are directly connected, no pull-ups or pull-downs)

    I just have 7805 with capacitors and am using the default internal 8MHz oscillator)

    Parallel port is under bi-directional mode (I tried also all other possibilities).
    I used all default values at PonyProg:
    Interface setup: Parallel: Avr ISP I/O
    I get Probe test:OK
    Calibration test: OK

    But when I tried to program the atmega16 I always get this errror:
    DEVICE MISSING OR UNKNOWN DEVICE (-24).
    It doesn’t even erase, neither writes program in it. I always shows the same error like above

    Does atmega16 need some special initialization command tho make the isp programing possible or am I missing something here?

    Can anyone help me please?

  55. Omi said

    >>Siddi
    Fuse bits:
    - For fuse bits setting refer to another post regarding the fuse bits on this blog.

    Programming:
    - No. Same header files won’t work for AVR studio. Examples shows are for CodeVisionAVR. You can download evaluation version from : http://www.hpinfotech.ro/html/cvavr.htm

    Laptop parallel port:
    - I’m not very sure, but as I got feedback from others, it is not guaranteed. Such converter generally do not work.

  56. Siddi said

    I am a newbie to electronics and have now spent days collecting information and downloading software’s from internet. Can someone please tell me how to change the fuse bit settings wen i use and external clock?

    I have understood the programming as explained in the “Avr tutorial 2″. Does the same header files and the same programming terminology get compiled if i work in AVR Studio 4…?

    I work on my laptop, so is it ok if i use a USB to parallel converter too burn the programs in the uC through my laptop…?

    Please reply as soon as possible

  57. [...] Make your own, ultra simple, universal AVR programmer !! [...]

  58. yashin said

    Sir,
    I have done this hardware using the parallel port .I have few problems please help me.
    1 :Will the ponyfrog works on vista.
    2 :Can I use this software for AT89s52 and AT89s 2051 because these are not in the device list.
    3 :What is the message mean communication port missing(-16). Is this mean my hardware is faulty.

  59. Omi said

    >>Kister
    Yes. You have to make sure that when you are programming the uC, its VCC&AVCC pin gets +5V. Otherwise it won’t get programmed. I don’t know how it worked,in your case, with PIC without powering it up with +5V supply. Whenever you program any chip, you must give appropriate supply to chip.

  60. Kister Jimenez said

    Ah! ok. Thanks.
    Do I really need to plug my circuit on when I program it?
    Because when I use my sercon2 for ISP of PIC I didn’t have to supply any external power source and it worked.

  61. Omi said

    >>Kister
    Yes it is taken from sercon2 mini. I have given the reference too. Only thing I added is I made it more complete by adding crystal and supply connections. Sercon2 Mini assumes that all things required for uC to run(like correct supply and crystal) are already in place. I have specifically shown them in this diagram to avoid confusion. If you have those things already in circuit (i.e. if you are doing In System Programming) then of course you can omit them.

    To make sure that your programmer works, keep wire length less than a meter. And construct the programmer on the grid PCB. Don’t solder any components hanging in air.

  62. Kister Jimenez said

    Oh, I found this link which has the same hardware except for the X1,X2, and VCC part.

    Can I use it to program an AVR in circuit with 20MHz xtal?
    Can I use your serial version without the crystal and VCC?
    What’s the consequences?

  63. Kister Jimenez said

    How can I check if the serial version programmer is working? Is there a tool in the ponyprog that detects the connected programmer?

  64. Omi said

    >>Shyam
    Yes you can get 8MHz from internal RC oscillator of mega8. However the problem is, this frequency is highly unpredictable and dependent on supply voltage and temperature. 8MHz is nominal freq. It can deviate by as much as 10%. So this option will be of no use if you want accurate timing in your program. Also you cannot use UART with this RC oscillator. Since actual operating freq. is very difficult to find out and it keeps on changing.

  65. Shyam said

    Thanks…Omi

    btw my last question is that without using an external crystal can i get a frequency of 8Mhz from RC oscillator(internal) by changing the fuse bits ??

    In case i face any prob i will get back to you with my prob…thanks for helping.

  66. Omi said

    >>Shaym
    NO !!!
    You are saying u want to use 16MHz crystal, this implied that fuse bits settings has to be changed from internal oscillator to external crystal. Once you do that, ur uC will run only if crystal is connected. In order to burn the program into uC, uC must get the clock. Therefore you will have to connect crystal. It is better that you follow the circuit exactly as given, and connect 4MHz crystal. Whereas in your system(or on breadboard) you connect 16MHz crystal.

  67. Shyam said

    If I do not connect any crystal in the burner circuit then also it would be fine ?

  68. Omi said

    >>Shyam
    If your program is written considering 16MHz crystal, then you should use 16MHz crystal while running the program on uC and apply fuse bit settings accordingly. You have to configure fuse bits for external crystal more than 8MHz. It doesn’t matter which crystal you use for burning the program into uC. So you can safely connect 4MHz on ur burner circuit.

  69. Shyam said

    I am in totally confused state with those fuse settings.

    I am using a 16MHz crystal for the main program on my MC.So while burning the MC would i require a 16Mhz crystal in the programmer circuit or a 4Mhz crystal or none at all.What fuse settings should i follow ?

    Please reply soon if possible with the fuse settings.

  70. Omi said

    >>Shyam

    >>I am new to programming of MCs.I would burn Atmega8 through that parallel programmer.
    >>I want to ask that in the circuit you have used a 4Mhz crystal,so for that do i need
    >>to change the fuse settings ?

    When you buy ATmega8 from shop, its fuse bits are configured to use internal 1MHz RC oscillator. So while burning the code you don’t need any crystal as such. And you can use the uC without connecting any crystal.

    However, if you decide to change the fuse bit settings from internal RC oscillator to external Crystal then you will have to connect the crystal. Means, Suppose :
    You Want to change the fuse bits settings so that uC uses external crystal Then —
    - You need not connect crystal first while setting the fuse bits for external crystal configuration. Because, whenever fuse bits are re-written, new settings are applied after uC is resetted.
    - So for changing the fuse bits settings, you don’t need crystal. But once you execute the command for changing the fusebits from pony prog, then, from that time onwards your uC will not work, until you connect the the crystal
    - Thus best way is keep crystal connected in the programmer circuit. It will be simply ignored by the uC when internal RC oscillator is selected.

    >>Second query is that after burning for the first time how to burn the MC for
    >>the second time and how many times it can be programmed(at max)?

    You can simply execute the programming sequence mentioned above. There is no difference between burning the uC for 1st time and for 2nd time(and so on …). uC’s internal flash memory gets wear out after reprogramming it for certain number of times. For ATmega8, you can safely reprogram it upto 10,000 times. This is mentioned in the datasheet of every AVR on the very first page. It is written as : “Endurance : 10,000 write/erase cycles”

  71. Shyam said

    I am new to programming of MCs.I would burn Atmega8 through that parallel programmer.I want to ask that in the circuit you have used a 4Mhz crystal,so for that do i need to change the fuse settings ?

    Second query is that after burning for the first time how to burn the MC for the second time and how many times it can be programmed(at max)?

  72. Omi said

    >>Mantu
    I have posted the diagrams on this blog post. You can download them from this page itself. and The PonyProg 2000 you can easily download from the net.

  73. mantu said

    i need AVR burner so u kindly send the ciruit diagram of the burner and the program to the following email address:
    maddy_mantu@yahoo.com
    rashmi_bista@hotmail.com

  74. Omi said

    >>Jan
    If your uC is brand new, it will get programmed without crystal. This is possible only in certain AVRs which have internal RC oscillator. Once you change the fuse bits to enable external crystal, then you will have to use crystal from there onwards.

  75. Jan said

    Is necessary use crystal or can I use internal oscilator?

  76. Binu said

    Nice stuffs, keep doing :)

  77. Omi said

    >>Er
    Yes it can program any AVR which supports SPI programing.

  78. er said

    Can it program a Atmega8? Need a cheap programmer.

  79. Omi said

    >>Sayed
    you should use the serial cable only. USB to serial cables doesn’t work for this purpose.

  80. Sayed said

    thx for the circuit . i’ve done serial one but i’ve question . i connect all circuit and connect D9 female from here can i get serial\USB cable and connect this cable to PC and download program or serail\serial cable?? . thx and excuise me for stupid question bcz im new in electronics :D .

  81. arun said

    hey guys can dis programmer be used for ATMEL ATTINY84 microprocessor …….
    buddies reply soon guys……..

  82. Omi said

    >>Krishna
    This programmer can burn all AVRs, 89s52, I2C EEPROMs using PonyProg2000 software.

  83. krishna said

    can we burn all the microcontroller using this programmed? . I have interested in this project. please let me know

  84. anshul said

    >>Omi

    thanx Omi…

  85. Omi said

    >>Anshul,
    Yes … It can program any AVR which supports ISP ( almost all AVRs support ISPs). It can also be used to program 89s52, and EEPROMs using ponyprog2000.

  86. anshul said

    Is these programmer can be used to program ATmega16 controller…

  87. [...] http://elecrom.wordpress.com/2007/10/15/make-your-own-ultra-simple-universal-avr-programmer/ [...]

  88. elecrom said

    @ARUN
    Yes you can use this circuit to burn uC again. For fuse bits setting refer another post on fuse bits on this blog. There you will find settings for “ATmega16/32 – external xtal upto 16MHz, full oscillator swing, slow rising power (65ms), JTAG disabled” Use these settings.

    Better use 16Mhz xtal for your mega32.

  89. Arun said

    Hey thats a great circuit……….

    I want to know 1 thing…………..I hav burnt a code in to microcontroller

    -> now i want to write another program & burn in to the same microcontroller……………so will this circuit work or do we need something else to fuse the bits.

    and also Hey I am using ATmega32 so which crystal should I use

  90. [...] Make your own, ultra simple, universal AVR programmer !! [...]

  91. [...] To program(or burn !) our code into uC. We need to use programmer hardware and programmer software. We will use simple parallel port programmer hardware and PONYPROG200 programmer software. To know how to build simple AVR programmer hardware and how to use PONYPROG2000 see Ultra simple AVR programmer. [...]

  92. [...] and test them on your development kit .- To know, how to burn code into uC using PonyProg2000, click here.- If you don’t have development kit, simply connect 8 LEDs to PB (i.e port b).- In [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 46 other followers