AVRminiProg -- compatible with USB-interfaced programmers from Atmel

AVRminiProg is an integration of my previous-developed AVR programming tools: AVRminiISP, AVRminiJTAG and AVRminiDragon, which emulate official USB-interfaced programmers from Atmel. U can use AVRminiProg in the right same way U use Atmel programmers. Software supports Atmel’s programmer will also support AVRminiProg, and official AVRStudio is recommended.

Note:
This project is not maintained any more, 8-bit AVR is a draw back of performance.
The new project is Versaloon, using STM32 running at 72MHz, with 18MHz JTAG clock.
It can support MUCH more targets including STM32, AVR, ARM, CPLD/FPGA, PSoC, C8051F, AT89S51, LPC900, MSP430.......

License:
AVRminiProg is distributed under the terms and conditions of the GNU GPL version 2,see license.txt

Features:
1.Compatilbe with USB-interfaced programmers from Atmel
2.Configurabe with user-defined hardware, just modify app_cfg.h and Makefile
3.Speed up to 7KB/s with 16MHz oscillator ang speed optimization
4.Auto speed detect on ISP
5.Support all programming interfaces of AVR
6.Latest firmware support Linux(avr-gcc 4.1.2, avrdude 5.5/5.3.1)

Need to mention:
1.AVRminiProg cannot be updated through update command in AVRStudio.
2.Although JTAG interface can be implemented in AVRminiProg, but only JTAG programming is supported.
3.It's reported to fail on some PCs, and it's very likely that bulk transfer of AVRUSB fails on these PCs.
Try the Test version to see if this problem is solved?
http://forums.obdev.at/viewtopic.php?t=1360&sid=5f15e5d4bcf1341fa605099dd80ea6f5

Supported devices:
All devices supported by the corresponding official tool from Atmel.

Tested devices with ISP:
Mega:Mega48,Mega88,Mega168,Mega8,Mega169,Mega128,Mega8515
Tiny:Tiny13
Special:90CAN32
51:89S52

Tested devices with JTAG:
Mega:Mega16,Mega32,Mega169,Mega128
Tiny:
Special:90CAN32

Tested devices with HVPP:
Mega:Meag48,Mega88,Mega168,Mega8,Mega16,Mega32,Mega8515
Tiny:
Special:

Tested devices with HVSP:
Mega:
Tiny:Tiny13
Special:

All tests above are on AVRminiProg_Full at 12M operated by AVRStudio 4.14. If U found problems while programming chips in the list, or U found other chips not in the list which can be well supported, just mail me, I'll update AVRminiProg and the list.

AVRs need to test:
Mega2560: Test for devices larger than 128K(extended address byte MUST be used)
ATtiny24/44/84: HVSP test, extra prog_enable pins MUST be used
ATtiny2313: HVPP test, special pinout defined in AVR Dragon
ATtiny26/261/461/861: HVPP test, special pinout defined in AVR Dragon

Hardware:
AVRminiProg Guide
AVRminiProg_USBasp(compatible with USBasp):

AVRminiProgUSBasp_3d.jpg
AVRminiProg_Full(support all AVR programming interfaces)
And of course, U can define your own hardware. AVRminiProg will be quite configurable by just modifying the macros in app_cfg.h. According to the schematic, AVRminiProg need 1 ADC pin, 1 SPI port, 1 external interrupt pin, 6 GPIOs as listed below, some are optional.
Pins:
1 ADC            sample target VCC, optional(configure AD_En in app_cfg.h)
1 SPI port      for ISP and JTAG operation, MUST be SPI0
1 Out pin        control reset of target mcu for ISP operation
1 Out pin        control TMS pin for JTAG operation, needn't if configured as AVRISP mkII(no JTAG operations).
2 Out pins      control 2 LEDs, optional(define corresponding macros to empty)
1 external int   for AVRUSB D+
1 IO pin  for AVRUSB D-
1 Out pin for AVRUSB usbDeviceConnect(), optional(undefine USB_CFG_PULLUP_IOPORTNAME and USB_CFG_PULLUP_BIT)
If Bootloader is use, another input pin should be used for bootloader to check condition.

Bootloader:
U can use any bootloader for AVR, but an USB-interfaced is recommended. Some could be found at http://www.obdev.at/products/avrusb/prjprog.html. And I also modified 2 bootloaders to support the LED on AVRminiProg and also support OSC frequency selection by use the latest AVRUSB library.
1. AVRUSBBoot from http://www.fischl.de/avrusbboot/
2. BootloadHID from http://www.obdev.at/products/avrusb/bootloadhid.html

Firmware:
AVRminiProg RC2 (2008-03-10)
AVRminiProg Test (2008-04-19)

Problems found since last update:

Speed test(KB/s):
1.ISP 124K, Mega128 @ Internal 8M RC, Program only
2.ISP 124K, Mega128 @ Internal 1M RC, Program only
3.ISP 31K, 90CAN32 @ 16M OSC, Program only
4.ISP 31K, 90CAN32 @ Internal 8M div 8, Program only
5.ISP Program Fuses, Mega88 @ Internal 128K div 8
6.JTAG 124K,Mega128,Program only
7.JTAG 31K,90CAN32,Program only

 

miniISP(15M,-O2)

miniDragon(15M,-O2)

miniISP(12M,-O2)

miniDragon(12M,-O2)

1

7.896

7.483

6.104

6.196

2

4.114

4.050

3.367

3.435

3





4





5

OK

OK

OK

OK

6 N/A 13.390
N/A 12.695
7 N/A
N/A

Links:
http://www.fischl.de/avrusbboot/
http://www.obdev.at/products/avrusb/bootloadhid.html
http://www.obdev.at/avrusb/