VUSBTINY

=Sobre el programador=

El programador "Uniandes - USBTinyISP" se encuentra basado en el proyecto hospedado en. El diseño del proyecto USBTinyISP es completamente libre por lo que la versión "Uniandes - USBTinyISP" está adaptada a los materiales que se pueden conseguir localmente. Se ha buscado un diseño optimizado en costos por lo que los materiales están por los $12.000= pesos colombianos (Sin contar con la fabricación de la tarjeta).

Nota: El desarrollo de este proyecto es sin animo de lucro y es una adaptación al código y materiales del proyecto original USBTinyISP. Si se siente motivado a realizar cambios o mejoras, sea libre de publicarlos cambios en esta wiki.

=Dispositivos Soportados=

32UC3A0512 ATXMEGA128A4 ATXMEGA64A4 ATXMEGA32A4 ATXMEGA16A4 ATXMEGA256A3B ATXMEGA256A3 ATXMEGA192A3 ATXMEGA128A3 ATXMEGA64A3 ATXMEGA256A1 ATXMEGA192A1 ATXMEGA128A1REVD ATXMEGA128A1 ATXMEGA64A1 ATMEGA6450 ATMEGA3250 ATMEGA645 ATMEGA325 AT90USB82 AT90USB162 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646 ATmega32U4 ATMEGA128RFA1 ATMEGA2561 ATMEGA2560 ATMEGA1281 ATMEGA1280 ATMEGA640 AT90PWM3B AT90PWM2B AT90PWM3 AT90PWM2 ATtiny2313 ATMEGA328P ATMEGA168 ATTINY861 ATTINY461 ATTINY261 ATMEGA8535 ATMEGA8515 ATMEGA161 ATMEGA6490 ATMEGA649 ATMEGA3290P ATMEGA3290 ATMEGA329P ATMEGA329 ATMEGA169 ATMEGA163 ATMEGA162 ATMEGA1284P ATMEGA644P ATMEGA644 ATMEGA324P ATMEGA164P AT90CAN128 ATMEGA128 ATMEGA103 AT90S8535 AT90S8515 AT90S4434 AT90S4433 AT90S2343 AT90S2333 AT90S2313 AT90S4414 AT90S1200 ATtiny9 ATtiny5 ATtiny4 ATtiny84 ATtiny44 ATtiny24 ATtiny85 ATtiny45 ATtiny25 attiny88 ATMEGA88 ATMEGA48 ATTINY26 ATMEGA8 ATMEGA32 ATMEGA16 AT90CAN32 AT90CAN64 ATMEGA64 ATtiny15 ATtiny13 ATtiny12 ATtiny11

=Software= Tanto para Linux como para Windows existen versiones del software necesario para utilizar el programador. Para utilizarlo solo basta conectarlo y ejecutar a través de lineas de comandos el programa avrdude, el cual ha de estar previamente instalado. Para obtener mayor información acerca de avrdude se puede visitar la pagina principal del proyecto.

Nota:Para Windows se recomienda la instalacion de WinAVR para facilidades de uso del Avrdude

AVRDUDE
AVRDUDE - AVR Downloader Uploader Es una aplicación por linea de comandos que permite descargar y cargar programas en la memoria de los microcontroladores con núcleo AVR8. Esta pequeña aplicación puede utilizar diferentes interfaces de hardware para realizar la programación de la memoria de los microcontroladores. Dentro de estas múltiples interfaces está la versión t2313, que hace referencia a un programador basado en Atiny2313.

Linux
A continuación se listan los paquetes necesarios para la instalación de las herramientas de desarrollo para AVR con Ubuntu. Si necesita ayuda con la instalación de paquetes consulte:

Ejecute en el shell: sudo apt-get install ddd avrdude avr-libc gdb-avr gdb gcc-avr simulavr

Nota: En algunas distros de Linux es posible que deba crear las siguientes reglas para el manejador de dispositivos de configuración. Para realizar esto agregue al siguiente archivo /etc/udev/rules.d/10-usbtinyisp.rules los reglas así:

Editar/crear el archivo: sudo nano /etc/udev/rules.d/10-usbtinyisp.rules

Adicionar las reglas en el archivo: SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="adm", MODE="0666" 

Por último debe reiniciar el servicio del udev o reiniciar el equipo: sudo /etc/init.d/udev restart

Windows
Nota: Para utilizar el programador en Windows se deben instalar los siguientes controladores: controladores para Windows



Tomado de AVRDUDE

=Hardware=

El programador consta de:
 * 1) Un puerto USB con conector tipo A
 * 2) Un conector ISP descrito en la figura.



Nota: En la siguiente imagen puede observar el esquemático (click en la imagen para ampliar):



Archivos de fabricación
-->>>>>  Los archivos de diseño en KiCAD son:  

Nota: Para visualizar los archivos de fabricación puede usar el paquete gerbv de ubuntu

Consideraciones de tensión

 * 1) Para programar un microcontrolador externo, la tarjeta puede proveer la energía necesaria por medio de la interfaz USB, pero por razones de costos la interfaz  USB no cuenta con protección o aislamiento DC-DC y es responsabilidad del usuario, tomar precauciones en el momento de conectar el programador a una tarjeta de pruebas.
 * 2) Este programador solo programa a una tensión de 5 voltios.

=Ejemplos de funcionamiento= Aca puede encontrar los archivos de programación. El archivo vusbtiny.hex permite programar un microcontrolador para que cumpla la función de programador.

Programación del dispositivo
Para programar el dispositivo como programador ejecute:

sudo avrdude -c usbtiny -p t45 -U flash:w:vusbtiny.hex

sudo avrdude -c usbtiny -p t45 -V -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m

Nota: En este caso se usa el pin de reset del microcontrolador como IO, por tal motivo no es posible volverlo a progamar. Para uso en Windows omita la sentencia "sudo"

Acerca de los FUSIBLES
Los FUSES son secciones en la memoria del microcontrolador que configuran comportamientos específicos del mismo, como por ejemplo la configuración de la fuente del oscilador. A continuación se puede ver un ejemplo para programarlos -U l/h/efuses:

sudo avrdude -c usbtiny -p t2313 -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

En el siguiente link se podrá encontrar una Calculadora FUSES AVR8

Programación de distintos dispositivos
A continuación se realiza una breve explicación por partes del comando que se ejecuta para efectuar la programación. Ejemplo:

sudo avrdude -c usbtiny -p t2313 -U flash:w:main.hex -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Explicacion:

sudo avrdude se le indica a la consola que por medio de permisos de super-usuario se llamara a avrdude para que programe un dispositivo

-c usbtiny indica que programador se usará, en este caso usbtiny

-p t2313 se indica que micro-controlador se programará, en este caso es un attiny2313 con que hace relacion a "t2313", para otros casos (Ej. m16 para atmega16) puede consultar el manual de avrdude

-U flash:w:main.hex indica cual archivo programara, en este caso es "main.hex". Este archivo resulta de la compilación del proyecto que este realizando.

-U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m indica que fusibles programará (Vease en la seccion anterior "Acerca de los FUSES")

Nota: si usted lo desea, puede programar por separado los fusibles y el archivo de programación. No es necesario programar los fusibles cada ves que usted cargue un programa, estos siempre permanecerán como usted los haya programado la ultima vez.

=Elementos a tener en cuenta=

sudo avrdude -c usbtiny -p t2313 -e by ,
 * 1) Recuerde que para programar cualquier micro por medio del puerto SPI, este debe contar con una resistencia de pull-up en el pin de Reset. (Depende del microcontrolador)
 * 2) En el siguiente enlace puede encontrar un ejemplo explicado de un proyecto base para programa en lenguaje c. Ejemplo
 * 3) Si desea borrar cualquier programa de su microcontrolador, puede tomar como ejemplo la siguiente linea: