Como programar un attiny con Arduino

Hola a todos, hoy vamos a aprender como programar un microcontrolador ATtiny85. Lo bonito de estos pequeños microcontroladores es el hecho de que son compatibles con el IDE de arduino y podemos programarlos utilizando cualquier placa arduino como quemadora ISP, es la segunda vez que me veo en la necesidad de hacer uso de estos microcontroladores, esta vez decidí compartirlo con los demás, porque ha sido simplificado la forma de agregarlos dentro del IDE.

TinyAVR

Son microcontroladores de la casa de chips atmel, han sido diseñados especialmente para ser pequeños, rápidos y eficientes. Desde el voltaje mínimo que requieren para operar (0.7V) hasta su bajo consumo de corriente(dependiendo del chip puede ser de 5 mA cuando están encendidos hasta 5uA en modo reposo).

Lo que necesitamos es lo siguiente

  • Hardware
    • Arduino Mega.(tambien funciona con arduino uno o cualquier placa Arduino )
    • Cables/jumpers.
    • ATtiny 85
    • protoboard
    • LED
  • Software
    • Arduino IDE 1.6.5
    • plugin de placas attiny

Agregando placas al IDE

Una de las mejoras que tiene esta versión del IDE de arduino (no es el mas reciente )es el hecho de que podemos agregar módulos externos de placas, gracias también a la comunidad mundial por desarrollar los plugins y que sea posible.

Abrimos el IDE y vamos a archivo-> preferencias.  En la parte donde dice dirección de placas adicionales, pegamos lo siguiente( si tenemos algunas placas ya agregadas ponemos una coma ” , ” para separar)

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Click en OK ahora nos vamos a Herramientas -> placa -> Administrar placa. En la barra de búsqueda ponemos ATtiny y le damos instalar la ultima versión ( al momento de este tutorial es la versión 1.0.1).

Felicidades ya agregamos las placas attiny al IDE.

Screenshot from 2016-06-02 17:56:41

Arduino como ISP(in-system programmer)

Una función interesante y muy útil en la que podemos una placa arduino como quemadora de chips AVR. Vamos a archivo->ejemplos->ArduinoISP.

 

Screenshot from 2016-06-02 18:10:57

Vamos a modificar la linea 47 y poner 53 o cualquier pin que ustedes quieran usar como reset del otro microcontrolador. Compilamos y subimos el programa a nuestro arduino mega 😀

Ahora vamos a hacer una serie de modificaciones.

  • Herramientas->placa-> Attiny
  • Herramientas->procesador->Attiny 85
  • Herramientas->reloj->1Mhz interno
  • Herramientas->puerto->(el mismo puerto del arduino mega)
  • Herramientas->programador->Arduino As ISP

Listo.

Circuito

El circuito es bastante sencillo, tenemos que conocer los pines del Attiny85 o del microcontrolador que vayamos a utilizar.

Vamos a utilizar los pines de SPI es decir MISO, MOSI, SCK y RST, de manera que los pines van conectados de las siguiente manera.

Arduino mega -> ATtiny85 -> nombre del pin

53->1->RST
52->7->SCK
51->5->MOSI
50->6->MSO
5V->8->VCC
GND->4->GND

Arduino uno(cualquier arduino basado en atmel 328p) -> ATtiny85 -> nombre del pin

10->1->RST
13->7->SCK
11->5->MOSI
12->6->MSO
5V->8->VCC
GND->4->GND

 

Cableamos

Screenshot from 2016-06-02 18:42:11

Ya casi, ya casi.

Subiendo código

Abrimos el sketch blink, Archivo->ejemplos->basicos->Blink

Cambiamos las lineas de código 20,25,27 para que quede de esta manera:

Screenshot from 2016-06-02 19:02:14

ahora el circuito quedaria de esta manera

Screenshot from 2016-06-02 19:01:08

 

Si lo hicieron todo muy bien van a darse cuenta de que el led esta parpadeando 😀
Espero que les haya gustado el tutorial

cualquier duda comentario o sugerencia por favor en los comentarios 😀

 

Troubleshooting:

Si tienen todo bien cableado y les aparece este error “avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00” solamente reinicien su Arduino mega y quedara cargado su programa aunque en el IDE les marque error.

Anuncios

2 Comments

Add yours →

  1. Fernando Fernández 18 septiembre, 2018 — 5:19 am

    Hola: Debería adquirir un Arduino para utilizarlo como programador ISP de microcontroladores Attiny 45/85 para programar uno de estos chips con el sketch de una aplicación de mi interés. Pero antes debería saber un par de cosas al respecto:

    Dado que en esta aplicación el Attiny ha de funcionar con un cristal de cuarzo externo de 4 MHz, ¿está contemplado al programar el chip con la plataforma Arduino (usando Arduino como programador ISP) la modificación de los “fuse bits” adecuados del Attiny para que éste funcione con dicho cristal de cuarzo (reloj externo)?

    Y dado que el sketch de la aplicación la tengo también ya compilada en hexadecimal, ¿se puede subir este sketch al Attiny en este formato desde la plataforma Arduino?

    Gracias por las posibles respuestas.

    Me gusta

    • Hola Fernando
      Mira hay un apartado especial en la línea del attiny dentro del cual puedes modificar la velocidad del reloj ponerlo con reloj externo de 1mhz o de 8mhz
      Si vas s utilizar el isp dedicado si el mismo arduino no te da la opción creo que si la tenes un poquito complicada con respecto a los fuse bits.

      Y si si puedes subir el hexadecimal desde arduino a tu attiny

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: