AVR STK serial dongle and avrdude.

Hi, All

I bought AVR STK dongle and tried with with PonyProg to program atmega16. It works but very slowly. Will something change if I use it with avrdude? If yes could somebody send me an example of command line for avrdude or uisp?

Thanks

Alex

I fought long and hard with ponyprog and could not get it to read or program my ATMega32 fuse bits, so I looked into avrdude. It’s a lot harder to figure out and use, but it works great - and is much faster. Here is an example of how to program a hex file into flash using the AVR-PG1 serial dongle sold here on sparkfun.

avrdude -p atmega32 -P com1 -c ponyser -U flash:w:test_file.hex

And here is an example of programming the fuse bits:

avrdude -p m32 -c ponyser -P com1 -U hfuse:w:0x89:m -U lfuse:w:0xef:m

There is also an avrdude-gui prog, but it did not work or support all the same options as the command line version.

Hi, thank you.

Unfortunately I could not find ‘ponyser’ type in avrdude configuration. Maybe I have obsolete version?

Regards, Alex

Here is the info from my version:

avrdude -v -c XX

avrdude: Version 5.1
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "C:\WinAVR\bin\avrdude.conf"


avrdude: Can't find programmer id "XX"

Valid programmers are:
  dasa3    = serial port banging, reset=!dtr sck=rts mosi=txd miso=cts [C:\WinAVR\bin\avrdude.conf:528]
  dasa     = serial port banging, reset=rts sck=dtr mosi=txd miso=cts [C:\WinAVR\bin\avrdude.conf:515]
  ponyser  = serial port banging, design ponyprog serial [C:\WinAVR\bin\avrdude.conf:502]
  dapa     = Direct AVR Parallel Access cable [C:\WinAVR\bin\avrdude.conf:482]
  xil      = Xilinx JTAG cable              [C:\WinAVR\bin\avrdude.conf:469]
  futurlec = Futurlec.com programming cable. [C:\WinAVR\bin\avrdude.conf:452]
  abcmini  = ABCmini Board, aka Dick Smith HOTCHIP [C:\WinAVR\bin\avrdude.conf:442]
  picoweb  = Picoweb Programming Cable, http://www.picoweb.net/ [C:\WinAVR\bin\avrdude.conf:432]
  sp12     = Steve Bolt's Programmer        [C:\WinAVR\bin\avrdude.conf:421]
  alf      = Nightshade ALF-PgmAVR, http://nightshade.homeip.net/ [C:\WinAVR\bin\avrdude.conf:405]
  bascom   = Bascom SAMPLE programming cable [C:\WinAVR\bin\avrdude.conf:395]
  dt006    = Dontronics DT006               [C:\WinAVR\bin\avrdude.conf:385]
  pony-stk200 = Pony Prog STK200               [C:\WinAVR\bin\avrdude.conf:373]
  stk200   = STK200                         [C:\WinAVR\bin\avrdude.conf:357]
  bsd      = Brian Dean's Programmer, http://www.bsdhome.com/avrdude/ [C:\WinAVR\bin\avrdude.conf:346]
  pavr     = Jason Kyle's pAVR Serial Programmer [C:\WinAVR\bin\avrdude.conf:338]
  jtag2    = Atmel JTAG ICE mkII            [C:\WinAVR\bin\avrdude.conf:331]
  jtag2fast = Atmel JTAG ICE mkII            [C:\WinAVR\bin\avrdude.conf:323]
  jtag2slow = Atmel JTAG ICE mkII            [C:\WinAVR\bin\avrdude.conf:315]
  jtagmkII = Atmel JTAG ICE mkII            [C:\WinAVR\bin\avrdude.conf:307]
  jtag1slow = Atmel JTAG ICE (mkI)           [C:\WinAVR\bin\avrdude.conf:300]
  jtag1    = Atmel JTAG ICE (mkI)           [C:\WinAVR\bin\avrdude.conf:292]
  jtagmkI  = Atmel JTAG ICE (mkI)           [C:\WinAVR\bin\avrdude.conf:284]
  avr911   = Atmel AppNote AVR911 AVROSP    [C:\WinAVR\bin\avrdude.conf:278]
  avr109   = Atmel AppNote AVR109 Boot Loader [C:\WinAVR\bin\avrdude.conf:272]
  butterfly = Atmel Butterfly Development Board [C:\WinAVR\bin\avrdude.conf:266]
  avr910   = Atmel Low Cost Serial Programmer [C:\WinAVR\bin\avrdude.conf:260]
  stk500v2 = Atmel STK500 V2                [C:\WinAVR\bin\avrdude.conf:254]
  stk500   = Atmel STK500                   [C:\WinAVR\bin\avrdude.conf:248]
  avrisp2  = Atmel AVR ISP mkII             [C:\WinAVR\bin\avrdude.conf:242]
  avrispmkII = Atmel AVR ISP mkII             [C:\WinAVR\bin\avrdude.conf:236]
  avrispv2 = Atmel AVR ISP V2               [C:\WinAVR\bin\avrdude.conf:230]
  avrisp   = Atmel AVR ISP                  [C:\WinAVR\bin\avrdude.conf:224]

I think ponyser is relatively new in avrdude, maybe only 6 months or so.

I have been using avrdude with the olimex AVR-PG1B (bought from sparkfun) on openbsd w/o problems.

It works now.

hruska:
And here is an example of programming the fuse bits:

avrdude -p m32 -c ponyser -P com1 -U hfuse:w:0x89:m -U lfuse:w:0xef:m

Being used to PonyProg (or AVR Studio), I can’t get a handle on how the fuse bits are programmed… Obviously, they’re “bits”, so they must all be lumped together into a series of configuration “bytes”. Using AVRDude, I’m guessing you set the value of the entire byte, and not the single bits (the “0x89” and “0xEF” in your example above). Can anyone tell me where I might find the documentation about hfuse and lfuse (and any other fuses) in the datasheet?

thanks!

For the ATmega32, it’s on pages 255 and 256 of the data sheet … in the “Memory Programming” chapter.