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.