L’USBASP est un programmateur « in circuit » pour les microcontrôleurs AVR (notamment la famille Arduino 8bits).
C’est un projet open source, qui remonte à 2005 (depuis, il a été amélioré et fonctionne sans souci).
Article de la série « Tutoriel USBASP« .
A quoi ça sert ?
A programmer un Arduino, ou directement un processeur Atmel, sans avoir besoin de convertisseur série/USB, sans besoin de bootloader.
Avec un USBASP, on peut donc :
- Programmer directement un attiny85 ou un Atmega328 sur une platine d’essai, sans avoir besoin d’un Arduino complet
- Graver un booloader sur un circuit vierge
- réparer un Arduino « Briqué » qui a perdu son booloader
- Modifier les « fusibles » d’un processeur (par exemple pour utiliser la brocche reset d’un attiny85 comme E/S)
Ce qui est sympa, c’est qu’une fois les drivers installé, c’est transparent. inutile d’indiquer un port COM pour uploader, L’IDE Arduino reconnait le programmateur.
Coté coût, on fait difficilement mieux: des clones chinois se trouvent pour moins de 2€, port compris.
Vu les services que ça rend, dommage de s’en passer.
Il y a quoi dedans ?
Coté matériel :Un microcontrôleur Atmega8, un quartz de 12Mhz, 2 leds, une interface d’adaptation aux niveaux USB (résistances+zener), un connecteur type JTAG, des jumpers si on a de la chance.
Coté logiciel, un firmware basé sur V-USB, une librairie qui émule du USB en soft.
L’installation ?
Sous Linux et Os/X, besoin de rien.
Sous Windows, on installe les drivers et ça marche.
A noter une petite manip pour les windows 8, il faut désactiver la vérification des signatures pour installer le driver, c’est pénible mais ça se fait (tuto anglais).
Ensuite dans l’IDE Arduino, on sélectionne USB ASP comme programmateur, et on upload via « télécharger avec un programmateur »
ça programme quoi ?
Une liste, pas forcément exhaustive :
Mega Series
ATmega8 ATmega8A ATmega48 ATmega48A ATmega48P
ATmega48PA ATmega88 ATmega88A ATmega88P ATmega88PA
ATmega168 ATmega168A ATmega168P ATmega168PA ATmega328
ATmega328P ATmega103 ATmega128 ATmega128P ATmega1280
ATmega1281 ATmega16 ATmega16A ATmega161 ATmega162
ATmega163 ATmega164 ATmega164A ATmega164P ATmega164PA
ATmega169 ATmega169A ATmega169P ATmega169PA ATmega2560
ATmega2561 ATmega32 ATmega32A ATmega324 ATmega324A
ATmega324P ATmega324PA ATmega329 ATmega329A ATmega329P
ATmega329PA ATmega3290 ATmega3290A ATmega3290P ATmega64
ATmega64A ATmega640 ATmega644 ATmega644A ATmega644P
ATmega644PA ATmega649 ATmega649A ATmega649P ATmega6490
ATmega6490A ATmega6490P ATmega8515 ATmega8535
Tiny Series
ATtiny12 ATtiny13 ATtiny13A ATtiny15 ATtiny25
ATtiny26 ATtiny45 ATtiny85 ATtiny2313 ATtiny2313A
Classic Series
AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535
CAN Series
AT90CAN128
PWM Series
AT90PWM2 AT90PWM3
A noter que si on veut rester sous L’IDE Arduino, il existe des définitions à ajouter pour pouvoir ajouter le support d’autres processeurs à l’IDE.
Ainsi, on peut développer et programmer, via l’IDE Arduino, des attiny45 et 85, des atmega8, atmega1280… en plus du classique atmega328.
Bon à savoir
Le connecteur du « stick » USBASP est un 2×5 broches.
Pour la plupart des Arduinos, il faut un 2×3 broches, avec juste le nécessaire.
Des adaptateurs existent, c’est plus simple que de brancher les fils un à un, au risque de se tromper.
Notez aussi le détrompeur (le petit triangle sur le plastique du connecteur) qui indique la broche N°1
Voici le brochage:
Plus…
D’autres articles sont prévus, pour éviter d’acheter le mauvais USBASP, et pour l’utiliser… autrement qu’en bête programmateur !
Le site officiel de usbasp, par Thomas Fischl.
For windows 8 and 8.1 you will need a signed version of the driver. You can get one from here http://www.protostack.com/accessories/usbasp-avr-programmer
Merci Daniel
(C’est la version signée du driver usbasp, pour win 8 et 8.1)