Programador USB para microcontroladores AVR atmel

Con WinAVR tiene soporte directo, compilás y grabas (Es lo que yo uso cuando programo en C).

Con Sinaprog es ideal para trabajar también tiene compatibilidad 100%.

Con los demás compiladores solamente tenés que generar el .hex y grabar con Sinaprog.

Los driver's no hace falta un tutorial. Conectas el dispositivo y te va a pedir que los instales...luego elejis la carpeta donde están y los instalas.
 
Hola, comparto mi diseño de este programador, planeo hacerlo ya que parece que funciona bien y necesito uno urgente, ah moyano yo programo en bascom si trabajaste con interrupciones de adc podrias darme una mano despues?


en fin dejo aqui el archivo en proteus 7.7 sp2
 

Adjuntos

  • USBTINNYPCB.rar
    9.3 KB · Visitas: 250
Disculpá, no he tenido tiempo para verlo detenidamente....mejor probalo en protoboard...luego si hago un tiempo te veo el diseño...es que estoy con bastantes cosas para hacer.
 
ya lo voy a hacer al pcb y te cuento, yo tb ando media apurado ejej, pero cuando tengas un tiempito le hechas un vistazo. este programador parece mucho mejor que los que andan en internet, mucho mas documentado y probado por ti! asi que d1 lo armo.
 
Hola moyano, me gustaria armar tu programador, pero solo cuento con el pickit2, espero que el tuto vaya bien, ya tengo el ATTinny ;).

Saludos
 
Programando el ATtiny2313 - 20PU mediante el Pickit2:

En este apartado les voy a mostrar como se programa el microcontrolador del programador USBtinyISP, usando el PicKit2 de Microchip.
Este método de grabación sirve en caso de no disponer de un grabador dedicado a la familia AVR. Algo a tener en cuenta es que el emulador ISP con PicKit2, NO está probado con toda la familia de AVR que se programen con ISP ; solo los siguientes micros:

- ATtiny2313
- ATtiny11
- ATtiny85
- ATmega8
- ATmega328P
- ATmega644A - 20PU
- ATmega128L - 8AU.

Las herramientas necesarias para poder grabar un microcontrolador AVR usando el PicKit2 son las siguientes:

- SINAPROG: Programa de gestión de AVRdude (Para no tener que usar línea de comandos). Lo pueden descargar desde acá: https://rs812l33.rapidshare.com/#!d....rar|11056|R~A10E60583D544F8F2ADC86E2F1EAA552

- PK2AVRISP - EMULADOR: Programa que emula el protocolo STK500 para comunicarnos vía puerto serial con el Pickit2. Este programa necesita algunas librerías de Visual Studio que las pueden descargar desde aquí: http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en

El emulador lo bajan desde acá: http://pickit2.isgreat.org/download/PK2AVRISP.zip

Tanto el programa emulador como el Sinaprog, funcionan bajo XP y Windows 7 de 32 bits.

El último programa que necesitan es el Eltima Virtual serial port. Este programa es de pago, pero pueden utilizar el demo con la funcionalidad completa durante 14 días. Igual se consigue completo en google :cool:
El demo funcional durante 14 días lo pueden bajar desde aquí: http://www.eltima.com/download/vspd.exe

************************************** // *****************************

Una vez instalados los programa mencionados vamos a configurar los parámetros necesarios para poder trabajar con el Pickit2.
Lo primero que tenemos que hacer es configurar un puente virtual entre el Emulador ISP y el SINAPROG.

Lo primero que hacemos es meternos al Virtual Serial Port Driver y crear 2 puertos series virtuales. En la siguiente figura vemos como hacerlo:

1-1.jpg


Con esto el programa crea automáticamente un enlace virtual entre 2 puertos también virtuales. En la imagen vemos los COM2 y COM3 creados.

2-2.jpg


Ahora que tenemos los puertos listos procedemos a conectar nuestro PicKit2 al ATtiny2313 de la siguiente manera:

3-1.jpg


Luego conectamos el Pickit2 al puerto USB y corremos el simulador.

Dentro de la aplicación, presionamos el botón check para que el programa identifique nuestro programador como lo muestra la siguiente imagen:



Luego seleccionamos uno de los puertos serie virtuales para poder comunicarnos con el software de grabación.

5-1.jpg


Con esto ya podemos grabar nuestro microcontrolador AVR. Para ello abrimos el programa de grabación y seleccionamos el puerto COM3, así como también seleccionamos el ATtiny2313 como microcontrolador a programar.

6-1.jpg


IMPORTANTE: NO cerrar el emulador sino perdermos el sincronismo con el programador.

Luego mostraremos como configurar el microcontrolador y le cargaremos el .hex :cool:
 
PROGRAMAR MICROCONTROLADORES AVR MEDIANTE LÍNEA DE COMANDOS:

En ocaciones, nos topamos con la mala suerte de que algunas suites de programación y programas de grabación de microcontroladores atmel no soportan nuestro microcontrolador (n)

Pero usando un poco el ingenio se pueden crear "mini aplicaciones" de consola para grabar nuestro microcontrolador, sin necesidad de un programa dedicado a ello.

La forma de hacerlo será creando aplicaciones .bat

Sino saben lo que son este tipo de aplicaciones, lo pueden ver aquí: http://es.wikipedia.org/wiki/Batch

Para poder usar este método debemos tener instalado en nuestra PC, el programa AVRDUDE. A través de esta aplicación podremos comunicarnos con el hardware de programación del cuál dispongamos para grabar nuestros microcontroladores.

Se puede descargar desde su página oficial: http://www.nongnu.org/avrdude/

******************************** // ********************************

Lo primero que haremos será ir a inicio>ejecutar: CMD
CMD.jpg


Luego escribimos en la línea de comandos: AVRDUDE
En nuestra pantalla nos tendría que aparecer lo siguiente si hemos seguido los pasos correctamente:
AVRDUDE-CONSOLA.jpg


Ahora en nuestra línea de comandos escribimos lo siguiente: avrdude -c asdf, este comando nos dará una lista de todos los programadores soportados por la aplicación, además de una breve descripción de cada uno.

PROGRAMADORESSOPORTADOS.jpg


Personalmente usaré como programador el USBtinyISP, que soporta la mayoría de los microcontroladores AVR programables mediante ISP.

Para ver los microcontroladores soportados por nuestro programador escribimos lo siguiente en la línea de comandos: avrdude -c usbtiny

microssoportados-1.jpg


Como podemos apreciar , el usbtiny, soporta la mayoría de los microcontroladores AVR con ISP ;)

Ahora que ya nos hemos familiarizado con el entorno de AVRDUDE, procederemos a crear una pequeña aplicación de prueba.

En mi caso escribí un pequeño programa para hacer titilar un led cada 250 ms:
Código:
/*************************************************
 PROGRAMAS DE EJEMPLO PARA EL ATtiny2313 - 20PU.
 EJERCICIO Nº 1: LED
 PROGRAMADOR: Moyano Jonathan.
 Fecha: 2011.
 Programa: Enciende y apaga un LED conectado al 
           puerto PB0 del microcontrolador.
 Cristal:  12Mhz.
 Programador: USBtinyISP.
 ************************************************/
#include <avr/io.h>     // Definiciones de hardware.
#include <util/delay.h> // Librería para generar retardos.

// Led conectado al PIN PB0 del micro.
#define LEDPIN 0

int main(void)
{ 
	DDRB = 0x1F;  // PB0-PB4 salidas.
	PORTB = 0x00; // Ponemos todas las salidas a 0. 

	
	while(1) // Loop infinito.
	{
		PORTB |= _BV(LEDPIN); // LED prendido.
		_delay_ms(250);       // Espera 250ms.
		
		PORTB &= ~(_BV(LEDPIN)); // LED apagado.
		_delay_ms(250);       // Espera 250ms.
	}

}

El programa fue desarrollado y compilado en AVR - GCC, usando la IDE WinAVR (y)

Una vez escrito y compilado el programa, tenemos que dirigirnos a la carpeta donde se encuentran los archivos .hex que haya generado el compilador.

Archivos.jpg


Ya tenemos todos los elementos necesarios para poder grabar nuestro microcontrolador. El siguiente paso es conectar nuestro microcontrolador al programador y este último al puerto USB de la PC.

1-2.jpg


Una vez conectado todo procedemos a crear nuestro archivo .bat con el cuál grabaremos la memoria del microcontrolador.

Para poder crear el archivos abrimos una ventana de bloc de notas y escribimos lo siguiente:

avrdude -c usbtiny -p t2313 -u -U flash:w:LED.hex
pause


Una vez que escribimos el programa en el bloc de notas , lo guardamos con extensión .bat en la carpeta donde está el proyecto:

programadegrabacin.jpg


Por último hacemos clic sobre nuestro programa de grabación y nos tendría que aparecer la siguiente ventana:

programagrabado.jpg


Espero les sirva este minitutorial :D:D
 
Gracias Jonathan por este tuto!!, ya me arme mi programador, solo tengo una duda ¿Como le cargo los fuses al Attiny2313? muchas gracias por todo y Saludos!!! :apreton::D
 
Gracias Jonathan por este tuto!!, ya me arme mi programador, solo tengo una duda ¿Como le cargo los fuses al Attiny2313? muchas gracias por todo y Saludos!!! :apreton::D


Al igual que el compañero no entiendo donde configurar los fusibles, en el readme se especifica muy bien que es vital hacerlo:

HFUSE: 0XD9
LFUSE: 0XEF

Yo estoy grabando el microcontrolador con el quemador paralelo y el software "PonyProg200", con el cual he podido grabar varios programas, compararlos etc, etc. incluyendo grabar el clasico "Blink Led", sin embargo el asunto de los FUSES, no entiendo donde meter los parametros 0XD9 y 0XEF, dejo anexado un archivo pdf que contiene una captura de pantalla donde puedo configurar los fusibles del attiny. Ojala alguien me pudiera auxiliar al respecto, o en su defecto que me explique con otro software para grabar el .HEX donde coincida lo de los fusibles donde se refiere el readme.

Perdonen la ignorancia, pero simplemente me perdi.

Saludos y gracias.

miborbolla dijo:
Al igual que el compañero no entiendo donde configurar los fusibles, en el readme se especifica muy bien que es vital hacerlo:

HFUSE: 0XD9
LFUSE: 0XEF

Yo estoy grabando el microcontrolador con el quemador paralelo y el software "PonyProg200", con el cual he podido grabar varios programas, compararlos etc, etc. incluyendo grabar el clasico "Blink Led", sin embargo el asunto de los FUSES, no entiendo donde meter los parametros 0XD9 y 0XEF, dejo anexado un archivo pdf que contiene una captura de pantalla donde puedo configurar los fusibles del attiny. Ojala alguien me pudiera auxiliar al respecto, o en su defecto que me explique con otro software para grabar el .HEX donde coincida lo de los fusibles donde se refiere el readme.

Perdonen la ignorancia, pero simplemente me perdi.

Saludos y gracias.



Continuando con el intento de los fusibles utilizando la configuracion del archivo anexo, ya logre que mi computadora "encuentre" un dispositivo nuevo, sin embargo me manda un error "no se reconoce el dispositivo USB" y por supuesto no puedo instalar los respectivos drivers.

¿Alguna Ayuda que me puedan brindar?, gracias de antemano.
 

Adjuntos

  • fuses.pdf
    21.1 KB · Visitas: 97
  • fuses.GIF
    fuses.GIF
    16.5 KB · Visitas: 48
Última edición:
Les dejo una captura de pantalla del AVR fuse calculator para que te des una idea de los fuses que le tenés que programar.

CONFIGURACINDEFUSIBLES.jpg


Un saludo !


Ok, pues finalmente ya entendi el asunto de los fuses, te lo agradezco muchisimo, mientras tendre que comprar otro attiny nuevo, pues ya fastidie el que tenia, ya que entendi totalmente a la inversa el asunto de las dichosas palomitas en la pantalla, ya que de manera "natural" yo convertia de hexadecimal a binario y palomeaba el resultado en el ponyprog tal como me resultaba la conversion ejemplo:


HEXADECIMAL = BINARIO

EF = 11101111

D9 = 11011001


Sin embargo a la hora de colocar las palomitas en el Ponyprog, no sabia que la palomita puesta es igual a CERO y sin palomita era UNO.


Conclusion: en la pantalla que nos regala moyano, asi es como se deben grabar los fusibles en el attiny.

Gracias otra ves, ya que obtenga un nuevo microcontrolador espero ya poder terminar este quemador y en un futuro, me armare un grabador paralelo de alto voltaje para recuperar mi microcontrolador (mal grabado), ya que seguramente deje deshabilitado la programacion serial.

Saludos.


Nota.- Aqui esta el link del calculador de fusibles al que se refiere el compañero Moyano

http://www.engbedded.com/fusecalc
 
Última edición:
en el programador usb para avr donde estan la distribucion de pines del isp¿? osea el nombre de los pines del conector que uso para programar los micros...no los tiene indicado
 
Moyano: De plano me rindo con este programador, ya estoy 100% seguro que estoy haciendo bien lo de los fusibles, ya Grabe mi attiny con el Ponyprog2000, con el AVRDUDE (desde la linea de commandos) y con el SinaProg 1.4.5.10. ( QUE ES TAMBIEN CON AVRDUDE) Y no logro hacer que me funcione. No se si el attiny sea diferente, yo el que consigo con mi provedor es "ATTINY2313V-10PU", Mi cristal pues dice explicitamente 12 MHZ, ya compre otro por si estuviera mal etiquetado o que se yo. Sin embargo, no logro que me funcione. y como Comento, he grabado otros programas Para verificar el funcionamiento del CHIP y de los leds, y bueno todo eso esta bien. ¿Algun TIP que me puedas brindar?

¿otros compañeros del foro que lo hayan ensamblado?

Gracias por todo.

Nota.- se supone que hay una minima diferencia entre el ATTINY2313 y el ATTINY2313V, aqui dejo el link:
http://www.atmel.com/dyn/resources/prod_documents/doc8261.pdf

Pero francamente no creo yo poder entender la diferencia, y en su defecto no se si se requiera recompilar el Firmware para este integrado que yo tengo (Attiny2312v).
 
Última edición:
Atrás
Arriba