top of page
Buscar
  • Foto del escritorMiguel Angel López

ATtiny85 y Arduino IDE paso a paso.

Una de las familias de microcontroladores que más ha tenido auge durante los últimos años ha sido la serie ATtiny85 diseñado y fabricado por la empresa Microchip Technology, este pequeño microcontrolador se ha ganado su fama gracias a su gran versatilidad que presenta a la hora de su implementación, ya que gracias a su pequeño tamaño es una exelente opción para proyectos de microelectrónica, weareables y proyectos de bajo consumo.


La serie ATtiny85 la gran mayoría de las veces está indicada con la siguiente serie de número 85/45/25, es decir, este microcontrolador cuenta con 3 variantes al momento de adquirirlo, pero no es de preocuparse, ya que el primer digito únicamente indica el tamaño de la memoria flash, es decir, el espacio que cuenta para que nosotros como programadores disponemos de escribir nuestro código, la serie 85 cuenta con 8kbytes de memoria flash, la serie 45 cuenta con 4kbytes y por último la serie 25 cuenta con 2kbytes.

Figura 1. ATtiny25 con 2kbytes de memoria flash en empaquetado QFN20.


Como lo mencionamos anteriormente, la única diferencia entre estos microcontroladores es el tamaño de su memoria flash, pero al momento de programarlos usaremos el mismo procedimiento para los 3 diferentes casos, así que no importa el modelo de ATtiny que adquieras, siendo 85/45/25 podrás programarlo de igual manera con el siguiente método.


Agregando el ATtiny85 a nuestro Arduino IDE


Para poder programar nuestro ATtiny85 mediante nuestro Arduino IDE primero será necesario agregar nuestro modelo de microcontrolador mediante el repositorio del usuario SpenceKonde llamado ATTinyCore, podríamos clonar como tal el repositorio a nuestra carpeta de tarjetas que se encuentra ubicada en la misma carpeta donde se instaló nuestro Arduino IDE en el sistema operativo, o bien, existe una opción más sencilla que es usando la herramienta llamada 'Gestor de Tarjetas', para acceder a esta herramienta seguiremos la siguiente ruta: Herramientas>Placa: ...>Gestor de Tarjetas...


Figura 2. Ubicación de la ruta del 'Gestor de tarjetas' del Arduino IDE.


Una vez que nuestro gestor de tarjetas se encuentre abierto escribiremos en el buscador 'ATTinyCore', a continuación el gestor automaticamente buscará el repositorio del usuario SpenceKonde, lo único que necesitaremos hacer es dar click en 'Instalar' y enseguida se agregará el repositorio a nuestra carpeta donde se aloja nuestro Arduino IDE, es recomendable que después de finalizar la instalación se cierre la ventana del Arduino IDE y enseguida se vuelva a iniciar el Arduino IDE, esto con la finalidad de que el programa actualice los cambios que acabamos de realizar.


Figura 3. Búsqueda de 'ATTinyCore' de SpenceKonde, usualmente es el primer resultado de la búsqueda.



Materiales necesarios


  • Microcontrolador ATtiny85/45/25 en empaquetado DIP

  • Fiuino UNO o tarjeta UNO

  • Bootloader Plus (opcional)

  • Protoboard

  • Jumpers o cable 22 AWG

  • Resistencias de 10Kohms a 1/2 watt

  • Leds rojos difusos de 5mm


Figura 4. Materiales necesarios.


Manos a la obra!


Para poder cargar nuestros códigos de nuestro Arduino IDE a nuestro microcontrolador ATtiny es necesario recordar la configuración ISP (In-circuit Serial Programmer), esta configuración fue mencionada en el tutorial ¿Cómo instalar el Arduino Bootloader?, sabiendo esto, necesitamos cargar el programa 'ArduinoISP' por RandallBohn, el scketch se encuentra en la ruta de nuestro Arduino IDE:


Archivo > Ejemplos > 11.ArduinoISP > ArduinoISP


Una vez cargado el scketch 'ArduinoISP' cambiamos la configuración del programador del Arduino IDE como en el tutorial anterior siguiendo la ruta:


Herramientas > Programador > Arduino as ISP


Es de suma importancia verificar que el scketch 'ArduinoISP' se encuentre cargado en nuestra placa UNO antes de realizar cualquier conexión, una vez verificado el paso anterior vamos a realizar las siguientes conexiones:

Figura 5. Diagrama de conexión ISP entre una tarjeta UNO y el ATtiny.


Este circuito es necesario tenerlo a la mano cada vez que se requiere cargar un nuevo programa al microcontrolador, por lo tanto, al realizar algún cambió en el scketch es necesario sacar el microcontrolador ATtiny del circuito en el que se encuentra funcionando y cablear de nuevo los pines necesarios para el programador ISP.


Una excelente alternativa para ahorrar tiempo es usando el Bootloader Plus de Áster Electrónica, esta herramienta nos permite usar una tarjeta UNO, en este caso un Fiuino UNO como programador ISP, tal y como lo vimos en el tutorial para cargar el Bootloader a microcontroladores ATmega328P, con esta herramienta podemos quitar o poner nuestro microcontrolador ATtiny sin necesidad de estar cableando cada vez que queramos cambiar el código.

Figura 6. Bootloader Plus


Enseguida cargaremos el siguiente scketch de ejemplo a nuestro microcontrolador ATtiny85, lo puedes descargar desde nuestro repositorio oficial en el siguiente enlace.

Recuerda que debemos seleccionar la tarjeta que tenemos previamente instalada, en este caso seleccionamos la opción llamada 'ATtiny25/45/85 (No bootloader)' ubicada en la siguiente ruta Herramientas>Placa: ...>ATTinyCore>ATtiny25/45/85 (No bootloader)


Figura 7. Selección del microcontrolador ATtiny85.



Seleccionamos la opción Chip: "ATtiny85", para indicarle a nuestro IDE que se trabajará con este microcontrolador, de esta manera nuestro compilador sabrá con cuánta memoria ROM contamos para poder escribir nuestro programa.

Recordemos cambiar el programador por "Arduino as ISP" para que funcione nuestro circuito para cargar el programa, o en su defecto el Bootloader Plus.


A subir nuestro código!

Una vez seguidos y verificados los pasos anteriores sólo queda colocar nuestro microcontrolador ATtiny85 en nuestro circuito para programarlo o en la muescas indicadas en el Bootloader Plus, en el caso de estar usando el Bootloader Plus, recuerda colocar el switch en la opción indicada como 'ATtiny' para poder trabajar correctamente con este tipo de microcontroladores.



Figura 8. Colocación y carga de programa usando el Bootloader Plus.


El Bootloader Plus indicará a través de los leds cuando el programa se esté cargando y haya concluido de subir el scketch, también el Arduino IDE indicará cuando el programa se encuentre cargado en el microcontrolador, una vez realizada la carga del programa con éxito vamos a quitar el microcontrolador ATtiny85 del Bootloader Plus y colocarlo en nuestro circuito de prueba, para este circuito tenemos el siguiente diagrama indicado por la Figura 9.


Figura 9. Circuito de prueba para microcontrolador ATtiny85.


El circuito de la Figura 9 puede ser alimentado desde 3volts hasta un máximo de 5volts, esto esta delimitado por los voltajes que es capáz de manejar el microcontrolador ATtiny85, por otro lado, la corriente de los leds está limitada por las resistencias de 1kohms colocadas antes de cada led, es importante consultar la hoja de datos del fabricante para corroborar los parámetros máximos de operación de nuestro microcontrolador.



Figura 10. Colocación del microcontrolador ATtiny85 en el circuito de prueba.


Una vez programado y colocado el microcontrolador ATtiny85 en el circuito en el cuál funcionará, este comenzará a ejecutar el código programado, para este ejemplo y como se muestra en la Figura 10 se está alimentando el circuito con dos baterías AA de 1.5V conectadas en serie, recordemos que en esta configuración los voltajes de las baterías se suman, por lo tanto, la alimentación de nuestro circuito es de 3 volts.


Recapitulando


A estas alturas del tutorial tal vez pueda llegar a ser confuso el órden y los pasos, es por eso que a continuación hacemos un breve resumen de los pasos que tienes que seguir para poder programar los microcontroladores de la línea ATtiny con el Arduino IDE.


  1. Instalar mediante el Gestor de Tarjetas la familia de tarjetas basadas en el microcontrolador ATtiny llamada ATTinyCore.

  2. Cargar a nuestra tarjeta UNO el scketch de ejemplo llamado 'ArduinoISP' por RandallBohn.

  3. Construir nuestro circuito programador indicado en la Figura 5 ó conectar nuestro Bootloader Plus a nuestra tarjeta UNO.

  4. En las herramientas de nuestro Arduino IDE seleccionar las placas de la familia ATTinyCore y escoger la opción 'ATtiny25/45/85 (No bootloader)' y seleccionar el Chip: ATtiny85 o el modelo de microcontrolador que vayas a programar.

  5. También en el submenú 'Herramientas' seleccionar la opción de Programador : 'Arduino as ISP'.

  6. Copiar y pegar el código de ejemplo del siguiente enlace en tu Arduino IDE.

  7. Seleccionar el switch en la opción 'ATtiny' en el Bootloader Plus, colocar el microcontrolador y subir el scketch.

  8. Armar el circuito de la Figura 9 y una vez progrogramado tu microcontrolador, colocarlo en este circuito para su funcionamiento.


Configuración de registros


Para los más entendidos en la materia de microcontroladores, se entiende como "registro" a la unidad mínima de almacenamiento digital dentro de un microcontrolador, en estas "celdas" de memoria se guardan las configuraciones del chip sobre cómo va a funcionar, si sus puertos funcionarán como entrada o como salida, para un programador experimentado estos registros se pueden manipular a las necesidades del desarrollador mediante el enmascaramiento de bits para no afectar los bits aledaños del registro que tal vez sean parte de la configuración de otros parámetros del sistema, estos registros se pueden consultar a detalle en la hoja de datos del microcontrolador.


Para nuestra fortuna, Arduino facilita demasiado la configuración de estos parámetros en estos microcontroladores, haciendo de su uso algo fácil, rápido y sobre todo entendible al lenguaje humano, es decir, en vez de lidiar con direcciones hexadecimales de memoria podemos configurar estos registros accediendo al submenú de 'Herramientas'.


Figura 11. Registros configurables mediante el submenú 'Herramientas' en el Arduino IDE.


Como podemos apreciar en la Figura 11, podemos cambiar la fuente de reloj de nuestro microcontrolador, ya sea interno o externo, para esto, podríamos agregar un cristal oscilador en los pines indicados por el fabricante para tener un mejor manejo en los tiempos de nuestro programa, por otro lador podemos cambiar la distribución de la memoria EEPROM y la fuente de reloj de los timers, entre otras opciones.



Potencial de la serie ATtiny


La serie ATtiny suele ser uno de los microcontroladores más infravalorados entre los entusiastas en electrónica, el uso de esta familia de microcontroladores implica tener un manejo eficiente en los recursos informáticos de este dispositivo, uno de los proyetos más interesantes que hemos realizado con este microcontrolador es el ATtiny Arcade que es capáz de correr juegos de 8 bits con una interfaz de entrada de 3 botones, una pantalla OLED de 0.96 pulgadas y una bocina.



Figura 12. ATtiny Arcade de Áster Electrónica.




Conclusiones

En muchas ocasiones como desarrolladores a nivel profesional ó como entusiastas en la electrónica en de suma utilidad tener en cuenta la existencia de multiples modelos de microcontroladores así como sus características principales y sus limitantes, de esta manera, Arduino no solamente es una plataforma enfocada a los microcontroladores ATmega328 sino que nos ofrece una amplia variedad de modelos de microcontrolador que son compatibles con el Arduino IDE.

Por otro lado, el microcontrolador ATtiny es para nosotros, la mejor opción para realizar proyectos que requieran un mínimo de programación así como la necesidad de usar un mínimo de entradas o salidas, el precio de este microcontrolador es sin duda su principal atractivo para el público en general.


Enlaces de interés

588 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page