En este caso os voy a traer una guía acerca del circuito básico y programación de un ATTiny85.

El circuito básico es muy simple y sólo necesita una resistencia como componente externo, salvo que queramos variar la velocidad de reloj con un cristal externo. Para mantener esta guía simple de momento no hablaré de cómo hacerlo, pero posiblemente lo haga en un futuro.

Pinout

Lo primero que necesitamos para saber cómo conectar nuestro ATTiny85 es conocer los pines del mismo. Para ello os traigo esta imagen, la cual incluye los datos básicos sobre los pines.

También tenemos un esquema más avanzado, por el de arriba se te queda corto de datos 😛

Circuito básico

Tal y como comenté al principio, el circuito básico de un microcontrolador ATTiny85 sólo requiere de una resistencia pull-up para evitar el reseteo. Dicha resistencia no es necesaria para que funcione, pero si no la ponemos corremos el riesgo de que nuestro microcontrolador se reinicie debido al ruido eléctrico que hay en el ambiente.

Opcionalmente se le puede poner un botón para conectar el pin reset a masa y proceder a reiniciar el microcontrolador. Obviamente, dicho botón es opcional y no es necesario incluirlo en nuestro circuito.

Teniendo en cuenta esto, sólo necesitaremos los siguientes componentes:

  • ATTiny85: El cerebro maligno tras el circuito
  • 1 Resistencia de 4.7k: Pull-Up para evitar el reseteo
  • 1 Pulsador (opcional): Usado para resetear el microcontrolador

Ahí vemos que el circuito es bastante simple, y este microcontrolador puede funcionar con voltages entre 2.5v y 5.5v. Esto nos permitirá alimentarlo con dos o tres pilas sin problema, o con una batería de litio estándar de 3.7v.

Aquí os dejo el datasheet por si queréis ver más información de este microcontrolador.

Teniendo el ATMega328, ¿Para qué usarlo?

Como todo en este mundo, cada cosa tiene su uso. En el caso del ATTiny85 puede ser para casos en los que necesitemos un microcontrolador que ocupe menos y consuma igualmente poco. Si lo comparamos con el ATMega328p nos encontramos con un microcontrolador que ocupa bastante menos (hablando del paquete estándar de DIP8 vs DIP28). Además el consumo del ATTiny85 es la mitad que el del ATMega328.

Como desventajas podemos encontrar que dispone de muchos menos puertos IO, menos memoria de todos los tipos (SRAM, EEPROM y de programa).

Es cierto que en potencia se podrían equiparar, ya que ciertos modelos del ATTiny328 pueden llegar a 20Mhz con un oscilador externo. Aún así, claramente está en desventaja, pero como comento al inicio: cada cosa tiene su lugar. Puede ser que hagamos un termostato y no merezca la pena gastar un ATMega328p y usemos el ATTiny85.

Programar el ATTiny85

Existe un bootloader para este microcontrolador que nos permitirá programarlo directamente conectándolo al USB, pero teniendo en cuenta que pretendo que esta guía sea de introducción, os voy a enseñar el método estándar de programación. De todas formas necesitarías de este método para poder instalar el bootloader que indico arriba, por lo que fijo que te es útil.

Preparar nuestro Arduino

Para poder programa nuestro ATTiny85 es necesario que dispongamos de un Arduino funcional que nos permita subir el sketch. Al igual que cuando vamos a programar un ATMega328p standalone, será necesario subir el ejemplo de programador AVR. Para ello seguiremos estos pasos:

Abrimos el sketch del programador desde la lista de ejemplos.

Una vez que hayamos cargado el sketch, nos aseguramos de que la conexión con nuestro Arduino está bien configurada

Y por último pulsamos sobre el botón para programarlo con el sketch de ejemplo.

Instalar configuración de placa ATTiny85

Aquí entramos en la parte «difícil» de la programación del microcontrolador, ya que nuestro IDE no dispondrá de los datos para hacerlo. Para solucionar este problema, tendremos que instalar los datos de configuración desde una web de terceros, para lo cual seguiremos estos pasos.

Vamos al menú Archivo > Preferencias

Pulsamos sobre el botón de gestión de listados de orígenes para tarjetas

Añadimos la siguiente URL, asegurándonos de que está en una nueva línea si ya tenemos alguna:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

Una vez hecho aceptaremos todas las pantallas que hemos abierto e iremos al menú Herramientas > Placa > Gestor de tarjetas.

En la nueva ventana que se abrirá tan sólo tendremos que buscar ATTiny85 y darle al botón instalar de la única opción que nos sale.

Con esto ya tendremos la placa disponible en nuestro Arduino IDE y podremos programar nuestro ATTiny85 sin problema.

Programar ATTiny85

Pues ya tendríamos casi todo preparado y ya sólo nos queda la parte del circuito básico y programación, que consta de dos pasos:

  • Montar el circuito básico y conectar el Arduino
  • Subir nuestro Sketch

El circuito de programación no es más que el circuito básico que hemos visto al principio de este post, con la única diferencia de que conectaremos nuestro Arduino para usarlo como programador. Para ello, lo conectaremos como se muestra en la siguiente imagen.

Una vez conectado, ya podremos proceder a subir nuestro sketch. Os preguntaréis por que no muestro el paso de quemar el Bootloader como con el ATMega328p, y es que por norma nuestro ATTiny85 ya viene preparado y no es necesario salvo que queramos cambiar la velocidad de reloj.

Para subir el Sketch lo primero que tendremos que hacer es configurar el chip en nuestro IDE. Anteriormente ya instalamos la tarjeta, por lo que ya deberíamos tener disponibles las opciones en el menú Herramientas.

Configuraremos las opciones de acuerdo con cómo hayamos preparado nuestro ATTiny85, las cuales para un chip de fábrica serían las siguientes.

Cosas como el B.O.D y el LTO vendrán desactivadas, pero recomiendo activar ambas. El B.O.D se asegurará de apagar nuestro microcontrolador cuando el voltaje sea muy bajo, para así evitar que se dañe.

El LTO por su parte es opcional, y lo que hace es que en algunas circunstancias tu código sea más pequeño y se ejecute más rápido. Puedes probar a activarlo y desactivarlo y verificar por ti mismo si optimiza tu código.

Otra opción importante a verificar es el programador, ya que hay que usar el Arduino como ISP, pero el que viene con el ATTinyCore para asegurarnos de que programa el chip correctamente.

Una vez que tengamos configurado todo, ya simplemente daremos a subir, tal y como hacemos normalmente.

Hasta aquí la guía de circuito básico y programación de nuestro ATTiny85. Espero que os sirva y un saludo.

Daniel Carrasco

DevOps con varios años de experiencia, y arquitecto cloud con experiencia en Google Cloud Platform y Amazon Web Services. En sus ratos libres experimenta con Arduino y electrónica.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.