sábado, 28 de julio de 2012

Programar ATtiny85 / ATtiny4313 con un arduino

Los ATtiny son microcontroladores AVR (basado en RISC) de 8-bits, fabricados por Atmel. Entre sus características se encuentran:
  • capacidad flash de 512B a 16kB.
  • SRAM de 32 a 512 bytes.
  • reloj integrado, hasta 20Mhz con reloj externo.
  • de 6 a 28 pines.
  • bajo consumo, opera entre 1 y 5.5 volt.
  • capacidad I2C/SPI
Si bien son algo limitados en cuanto a capacidad de programa y cantidad de pines, son suficiente para algunas aplicaciones básicas en que un aparato como un Arduino es excesivo.

En este caso veremos cómo cargar programas al ATtiny85 y ATtiny4313 empleando un Arduino como ISP.



Preparar el IDE

  1. Bajamos los "cores" para los ATtiny desde arduino-tiny.
  2. Creamos la carpeta hardware dentro de la carpeta de sketchbook, luego copiamos dentro de ella el contenido del archivo descargado en el paso anterior.
  3. Abrimos el IDE Arduino y en Tools -> Board veremos las ATtiny

Preparar el Arduino como ISP

  1. Conectamos el Arduino al computador.
  2. Abrimos el IDE de Arduino.
  3. Abrimos el sketch Arduino ISP (File -> Examples -> ArduinoISP)
  4. Seleccionamos la placa arduino que corresponda (Tools -> Board -> XXX).
  5. Buscamos en el código la función heartbeat(), reemplazamos la instrucción delay(40) por delay(20).
  6. Cargamos el sketch al Arduino (File -> Upload).

Preparar conexiones para cargar programa

  1. Una vez tenemos el Arduino como ISP, conectamos los cables de esta forma:
    Pin ArduinoPin ATtiny85Pin ATtiny4313
    137 (SCL/SCK)19 (SCL/SCK)
    126 (MISO)18 (MISO)
    115 (MOSI)17 (MOSI)
    101 (RESET)1 (RESET)
    5V8 (VCC)20 (VCC)
    Gnd4 (GND)10 (GND)
    ATtiny85, conexiones para programar

    ATtiny4313, conexiones para programar
  2. Abrimos el IDE Arduino 
  3. Abrimos el sketch de parpadeo de led (File -> Examples -> Basics -> Blink). Se debe dejar tal cual para ATtini4313, pero hay que cambiar el número de PIN de 13 a 0 para ATtiny85
  4. Cambiamos la placa para seleccionar la adecuada a nuestro ATtiny (Tools -> Board -> ATtinyXXXXX)
  5. Cambiamos el programador (Tools -> Programmer -> Arduino as ISP)
  6. Subimos el programa al ATtiny (File -> Upload). Es normal que aparezcan alguno mensajes.

Uso del ATtiny en forma normal

Una vez que hemos cargado el programa al ATtiny podemos probarlo haciendo la circuitería adecuada. En este caso, haremos parpadear un led. El Arduino sólo funciona como fuente de poder:

ATtiny85 funcionando, arduino solo como fuente de poder





ATtiny4313 funcionando, arduino solo como fuente de poder


4 comentarios:

Joaquin Aldunate Infante dijo...

esta buenísimo; pero ¿de donde se pueden conseguir estos? no los logro encontrar

Eduardo Villagrán Morales dijo...

Los encuentras en ebay http://r.ebay.com/Ltl0zc

Joaquin Aldunate Infante dijo...

Gracias

xako0h dijo...

puedo declarar INPUTS en la attiny?
Pd: tu blog esta genial