30 Avril 2007:
Je viens de découvrir ceci: programmateur USBASP

Un programmateur USB simple à réaliser pour les microcontrôleurs ATMEL AVR, basé sur un ATMEGA8.
Le logiciel de programmation associé au programmateur USBASP est « AVRDude »
J'ai testé: ça fonctionne très bien avec mes ATmega8 et ATmega32.

Ce soft fonctionne en ligne de commande: sous Linux, il faut taper dans un terminal une commande comme par exemple:
(pour plus de détails sur les paramètres, taper avrdude --help dans un terminal)

 Il existe des interfaces graphiques (GUI) qui permettent de l'utiliser confortablement,  je citerai:

Site du concepteur du programmateur USBASP:
J'utilise couramment ce programmateur
Août 2009:
Note pour Linux:
si avrdude vour retourne le message d'erreur suivant:
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted, c'est que vous n'avez pas les droits d'acces en ecriture au peripherique USB. (Lancez avrdude en "sudo", vous verrez... )

Astuce: sous Linux (gnome, comme par exemple Ubuntu) pas besoin  de programme spécial pour lancer avrdude. Il suffit de créer un script nautilus (un fichier texte auquel on donne la permission d'exécution) avec comme contenu:

#!/bin/bash

gnome-terminal --command="avrdude -p m32 -c usbasp -P ttyUSB0 -u -U flash:w:./ape2008.hex:i"

(remplacer le nom du fichier.hex {ici ape2008.hex} par le bon). le ./ qui le précède indique le chemin relatif (c.a.d que le script doit être dans le répertoire du .hex)
ttyUSB0 : voir dans  /dev si c'est le bon (ça peut être ttyUSB1 par exemple)

On peut aussi lancer la commande directement dans un terminal ouvert manuellement...

Pratique pour reprogrammer un ATmega pour lequel on ne dispose pas des sources ou du compilateur mais juste du .hex

Voici les options pour la commande avrdude. Les possibilités ne manquent pas !

Usage: avrdude [options] Options: -p Required. Specify AVR device.
-b Override RS-232 baud rate.
-B Specify JTAG/STK500v2 bit clock period (us).
-C Specify location of configuration file.
-c Specify programmer type.
-D Disable auto erase for flash memory
-i ISP Clock Delay [in microseconds]
-P Specify connection port.
-F Override invalid signature check.
-e Perform a chip erase.
-O Perform RC oscillator calibration (see AVR053). -U :r|w|v:[:format]
Memory operation specification.
Multiple -U options are allowed, each request
is performed in the order specified.
-n Do not write anything to the device.
-V Do not verify.
-u Disable safemode, default when running from a script.
-s Silent safemode operation, will not ask you if fuses should be changed back.
-t Enter terminal mode.
-E [,] List programmer exit specifications.
-x Pass to programmer.
-y Count # erase cycles in EEPROM.
-Y Initialize erase cycle # in EEPROM.
-v Verbose output. -v -v for more.
-q Quell progress output. -q -q for less.
-? Display this usage.


Enfin voici un lien vers une page qui vous décrira la fonction de chaque jumper placés sur la carte USBASP.