Thursday, 20 October 2011

USBasp PCB


USBasp PCB



Hi in this post i would like to share one of my reference about usb programmer
PCB for amazing AVR programmer with software USB implementation. For detailed description, firmware package and license information look at Thomas Fischl's USBasp webpage.
Note: I have some problems with long USB cable connection: device doesn't work so well if it's connected to front-side USB socket of my PC - I have to connect it to back panel. Probably cable length is critical - I recommend use 1,8m or shorter USB cable.


Latest hardware version - files modified 17.04.2008 - added 2 3V6 Zener diodes for better compatibility with some motherboards
Approximate speed (ATmega32@Really short manual in Polish
electrical scheme
routing scheme (mirrored bottom side)
assembly scheme (four 0805 capacitors with mirrored partname are located at bottom side)
additional .eps routing file4.9152MHz, file size = 8366B): FLASH programming 3.15kB/s, FLASH reading 4.85kB/s.
2006.03.17: avrdude-gui (754kB zip) with added usbasp option (sourcecode v0.2.0 and binary, dev-c++ 4.9.9.2-wx-beta-6.8). Thomas Fischl's patched avrdude included.
2006.04.06 WinAVR project template available.
2006.05.24 Added info about wrong signature reading and device programming error with low microcontroller operating frequency (i.e. RC 1MHz, just like default for ATmega8) - use jumper 3 in this case.


2006.12.21 Some modifications to avrdude-gui, avrdude-gui_v0.2.1.zip (652kB):
  • corrected command line for writing fuses (0xAB:m format),
  • "-F Verify the device signature" description changed to "Override signature check"
  • changed component displaying output from wxlistctrl to memo: auto-scrolled, no long line cut, mouse text selection,
  • removed "terminal mode" checkbox,
  • slightly compacted UI,
  • format comboboxes: changed to read-only
  • changed some fonts to courier new (useful i.e. with avrdude verbose output),
  • changed output for readed fuses values from "con" to "[fusename].dat"; I don't think con output has any effect.
2006.01.03 I had problems with usbasp.2006-09-16.tar.gz + avrdude 5.2, but latest usbasp.2006-12-29.tar.gz with avrdude 5.3.1 seems to work fine. Here is avrdude 5.3.1 compiled for win32 (Cygwin).
Notice: I undefined HAVE_LIBHID macro, so there could be problem with AVR-Doper programmer if you'd like to use this.
Notice 2: cygusb0.dll required by avrdude binary made with cygwin = libusb0.dll or libusb.dll, just rename it and place in avrdude or (better) system directory.
2007.06.22 Added Avrdude 5.4 win32/cygwin (zip 569kB), compiled with default options. If you'd like to build this release on your own, upgrade libusb library package to 0.1.12.1 (avrdude bug #19889).
2007.12.15 Added Avrdude 5.5 win32/cygwin (zip 558kB) and cygusb0.dll.
2009.03.18 Added Avrdude 5.6 win32/cygwin (zip 528kB). Notice: if avrdude shows message about not finding device with VID = 0x16C0, PID = 0x05DC but you can see usbasp under device manager and it's VID/PID pair is the same as required by avrdude, update libusb driver to 0.1.12.1 version. You can find both this and older driver version inside usbasp.2009-02-28.tar.gz archive.
2009.05.10 Added file avrdude_5_6_r815.7z (7-zip 316kB) - avrdude 5.6 z with patch fromRevision 815.
Using usbasp 2009-02-28 firmware this avrdude version allows to select SPI frequency during programming by -B spi_delay option. SPI frequencies have discrete values, avrdude selects SPI period to value near to requested spi_delay microseconds.
With small modification in default avr-gcc makefile this version allows fast programming of "fresh" MCUs that have default RC 1MHz clock without touching SCK jumper. If you are loading firmware to more than a few AVR boards in a row than you will definitely this usefull:
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
# added:
AVRDUDE_SCK_FLAGS = -B 5
...
# Program the device.  
program: $(TARGET).hex $(TARGET).eep
 # Set LFUSE, HFUSE to switch to fast MCU clock,
 # i.e. crystal (low SPI frequency is used)
 $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_SCK_FLAGS) \
 $(AVRDUDE_WRITE_HFUSE) $(AVRDUDE_WRITE_LFUSE)
 # Program MCU using fast SPI clock
 $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_LOCK)
    
2009.08.17 Added Avrdude 5.8 win32/cygwin (zip 250kB, debug symbols stripped - smaller executable, giveio and .conf included in archive, cygusb0.dll 0.1.12.1 required).
2010.04.11 Added Avrdude 5.10 win32/cygwin (zip 263kB, debug symbols stripped - smaller executable, giveio and .conf included in archive, cygusb0.dll 0.1.12.1 required).
* New devices supported:
      - AVR32A0512 (JTAGMKII only)
      - ATmega32U4
      - ATtiny4
      - ATtiny5
      - ATtiny9
      - ATtiny10
  * New programmers supported:
      - BusPirate
      - Arduino
      - JTAGICEmkII and AVR Dragon in PDI mode (ATxmega devices)
      - STK600 and AVRISP mkII in TPI mode (ATtiny4/5/9/10)  
  * Bugfixes
      - see ChangeLog and ChangeLog-2009 for details          
    
2011.03.23 Added step-by-step compilation description for avrdude / MinGW+MSYS
USBasp1.jpg USBasp2.jpg

0 comments:

Post a comment

Note: only a member of this blog may post a comment.

adhitz

Twitter