Página principal

Programador USB para AVR

USBasp

xsetaseta@gmail.com

Existen un gran numero de programadores para los microcontroladores ATMEL de 8bits, según el modo de conexión al PC ya sea por medio del puerto paralelo, serie y usb. Hasta ahora he utilizado un programador muy sencillo llamado BSD que se coloca en el puerto paralelo y que solo utiliza unos pocos componentes. Como el puerto paralelo tiende a desaparecer en la mayoría de los portátiles he buscado por internet algún programador mediante usb y he encontrado el USBasp  en http://www.fischl.de/usbasp/ ,ahora cuento mi experiencia.
Mi primer programador BSD

Esquema programador BSD

Programador SP12

Esquema programador SP12

Los dos programadores funcionan bien, pero el que mas utilizo es el BSD debido a que tiene puesto el cristal de 4Mhz, y cuando has programado los fuses para que funcione con cristal de cuarzo, si intentas reprogramarlo otra vez, te encuentras que el microcontrolador no se programa debido a que le falta la señal de reloj.
En los dos casos he colocado un LED con una resistencia de 1K en serie para detectar si tiene alimentación o no antes de insertar el microcontrolador, es muy útil.
Decidido a construirme un programador mediante usb encontre http://www.fischl.de/usbasp/  , y lo primero fué hacer un prototipo que milagrosamente funcionó a la primera.
Aquí están todos los ficheros utilizados, es una copia de la página del autor. miATp.zip

Como a mi me gusta dar mi toque personal, he modificado algunas cosas incluyendo un zócalo para insertar un ATMEGA8/88 diréctamente. También he puesto una resistencia para dar señal de reloj  al microcontrolador a programar.

Circuito ya montado

Aquí os dejo en pdf el circuito impreso.
miATp.pdf

La prueba definitiva con el buen AVRDUDE.

seta@debianSETA:~$ avrdude -c usbasp -p atmega16 -U flash:v:aamain.hex:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9403
avrdude: verifying flash memory against aamain.hex:
avrdude: load data flash data from input file aamain.hex:
avrdude: input file aamain.hex contains 12262 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.96s

avrdude: verifying ...
avrdude: 12262 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.