ATtiny85: Configuración de pines, diagrama de bloques y programación

Jan 07 2026
Fuente: DiGi-Electronics
Explorar: 313

El ATtiny85 es un pequeño microcontrolador de 8 bits diseñado para tareas de control sencillas donde el espacio y el consumo energético importan. Combina memoria, temporizadores, entrada analógica y comunicación serial en un paquete de 8 pines. Este artículo ofrece información detallada sobre sus especificaciones, pinado, estructura interna, configuración de alimentación y reloj, programación, circuitos y problemas comunes.

Figure 1. ATtiny85

Resumen de ATtiny85 

El ATtiny85 es un microcontrolador compacto de 8 bits diseñado para tareas de control sencillas donde el espacio, el consumo de energía y el número de componentes deben mantenerse bajos. Su factor de forma de 8 pines ayuda a reducir el tamaño del circuito, la complejidad del cableado y el coste del sistema, al tiempo que proporciona funcionalidad básica de control.

A pesar de su larga presencia en el mercado, el ATtiny85 sigue siendo ampliamente utilizado debido a su estabilidad, sólida documentación y compatibilidad con herramientas de desarrollo comunes. Opera en un amplio rango de voltaje y soporta múltiples opciones de reloj, lo que lo hace adecuado para diseños compactos y de bajo consumo que requieren un comportamiento fiable y predecible.

Especificaciones técnicas de ATtiny85 

No. de Pins8
CPUAVR RISC de 8 bits
Voltaje de funcionamiento1,8 a 5,5 V
Memoria del programa8K
Tipo de memoria del programaFlash
RAM512 bytes
EEPROM512 bytes
Número de canales ADC10-bit 4
Comparador1
PaquetesPDIP (8 pines) SOIC (8 pines) TSSOP (8 pines) QFN/MLF (20 pines)
Osciladorhasta 20 MHz
Temporizador (2)Temporizadores de 8 Bits
Alimentación mejorada al reiniciar
Temporizador de encendido
Pines de E/S6
FabricanteMicrochip
SPI
I2C
Cronómetro Watchdog
Detección de apagón (BOD)
Reiniciar
USI (Interfaz Serial Universal)
Temperatura mínima de funcionamiento-40 °C
Temperatura máxima de funcionamiento125 C

Configuración de pines ATtiny85

Figure 2. ATtiny85 Pinout Configuration

PinNombreFunciones principales
1PB5REINICIO, GPIO (si cambia el fusible)
2PB3GPIO, ADC
3PB4GPIO, ADC
4GNDCampo
5PB0GPIO, PWM, MOSI
6PB1GPIO, PWM, MISO
7PB2GPIO, ADC, SCK
8VCCFuente de alimentación

El ATtiny85 está disponible en los paquetes PDIP-8 y QFN/MLF-20. Ambos comparten el mismo circuito interno, pero la disposición de los pines es diferente. El paquete PDIP-8 expone solo pines básicos y es más fácil de usar en circuitos básicos, mientras que el paquete QFN/MLF-20 incluye pines adicionales marcados como no conectados.

La mayoría de los pines soportan múltiples funciones. Un solo pin puede actuar como entrada o salida digital, leer señales analógicas, generar salida PWM o soportar comunicación serial. Este diseño multifunción permite que el ATtiny85 se mantenga pequeño y además ofrece flexibilidad. El pin RESET también puede configurarse como pin cambiando la configuración del fusible, aunque esto elimina la capacidad de reinicio externo.

Diagrama de bloques ATtiny85

Figure 3. ATtiny85 Block Diagram

El ATtiny85 está construido alrededor de un núcleo de procesamiento AVR que ejecuta instrucciones almacenadas en memoria Flash. La SRAM se utiliza para datos temporales durante la operación, mientras que la EEPROM almacena datos no volátiles que deben conservarse cuando se corta la energía. El contador de programa, el puntero de pila y los registros gestionan el flujo de instrucciones y el procesamiento de datos.

Las funciones de temporización se gestionan mediante dos temporizadores internos de 8 bits y un temporizador watchdog. El watchdog mejora la fiabilidad reiniciando el dispositivo si la ejecución normal del programa se detiene. Un oscilador interno proporciona la señal de reloj, y el control centralizado de temporización sincroniza todos los módulos internos.

Las operaciones de entrada y salida se gestionan mediante registros de puertos conectados directamente a los pines externos. El dispositivo también integra circuitos analógicos como el ADC y el comparador. Todos los bloques internos están conectados mediante rutas de datos compartidas, permitiendo una comunicación eficiente entre memoria, lógica de procesamiento y E/S.

Configuración de encendido, reloj y fusibles ATtiny85

• El ATtiny85 incluye un oscilador RC interno, que permite operar sin componentes externos de reloj.

• Se pueden usar fuentes de reloj externas o cristales cuando se requiere mayor precisión de temporización.

• La configuración del fusible controla la fuente de reloj, el retardo de arranque, el nivel de detección de brown-out y el comportamiento del pin de RESTABLECER.

• Funcionar a velocidades de reloj más bajas reduce el consumo de energía y el ruido eléctrico.

• La detección de apagón mejora la estabilidad a bajas tensiones de alimentación, pero aumenta ligeramente el consumo de corriente.

Límites de GPIO ATtiny85 y funcionamiento seguro

• Los pines GPIO están destinados al control de señales y no deben suministrar energía a cargas externas.

• Los LEDs conectados a pines GPIO requieren resistencias limitadoras de corriente para evitar daños.

• Los motores, relés y otros dispositivos de alta corriente deben controlarse mediante transistores externos o MOSFETs.

• Se pueden habilitar resistencias internas de pull-up para simplificar las conexiones de botones y conmutadores.

• Todos los voltajes GPIO deben mantenerse dentro de los límites especificados para evitar daños permanentes.

Capacidades ADC y analógicas ATtiny85

CaracterísticaDescripción
Resolución ADC10-bit
Canales de entradaHasta 4
Opciones de referenciaVCC o referencia interna
Modo especialSueño con reducción de ruido ADC

El ATtiny85 cuenta con un convertidor analógico-digital integrado que mide los niveles de voltaje cambiantes y los convierte en valores digitales. La calidad de la medición depende de un voltaje de referencia estable, conexiones de alimentación limpias y un enrutamiento adecuado de la señal. El uso del modo de suspensión ADC Noise Reduction ayuda a reducir el ruido interno durante la conversión, lo que mejora la consistencia de la lectura y la fiabilidad general.

Comunicación Serial ATtiny85 con el USI

El ATtiny85 soporta comunicación serial a través de una Interfaz Universal Serial (USI). Esta interfaz flexible puede configurarse mediante firmware para operar en modo SPI o soportar comunicación al estilo I²C. Al usar un único bloque de hardware compartido, el dispositivo mantiene un tamaño compacto mientras permite el intercambio básico de datos.

Como el USI depende en gran medida del control por software, se requiere una gestión cuidadosa del tiempo. Es adecuado para tareas de comunicación simples y de baja velocidad, pero ofrece menos funciones de automatización que los periféricos SPI o I²C dedicados que se encuentran en microcontroladores de mayor tamaño.

Programación ATtiny85 a través del IDE de Arduino

Figure 4. ATtiny85 Programming Through the Arduino IDE

• El ATtiny85 puede programarse en el IDE de Arduino tras instalar un núcleo compatible con ATtiny.

• La programación se realiza mediante un programador USB o un Arduino configurado como ISP.

• Los ajustes de la placa en el IDE Arduino deben coincidir con la velocidad de reloj y el voltaje de funcionamiento seleccionados del ATtiny85.

• Los PIN usados en el código son diferentes de la disposición física de los pines, por lo que deben comprobarse cuidadosamente antes de cablear.

Circuito ATtiny85 mínimamente fiable

Figure 5. Minimal Reliable ATtiny85 Circuit

Este circuito utiliza solo los componentes básicos necesarios para un funcionamiento estable. Los pines VCC y GND suministran alimentación, permitiendo que la lógica interna funcione correctamente. El oscilador interno controla el tiempo, por lo que no se requieren componentes externos de reloj.

Un LED conectado a través de una resistencia de 47 Ω demuestra control de salida mientras protege tanto el LED como el pin GPIO. El pin RESET permanece accesible para reprogramar o reiniciar el dispositivo. Con muy pocos componentes externos, esta configuración proporciona una base sencilla y fiable para aplicaciones básicas.

ATtiny85 Problemas Comunes y Revisiones Rápidas

Problema¿Qué comprobar o arreglar?
Fallos en la subida del códigoRevisa el cableado del ISP y confirma la configuración de fusible RESET
Tiempo incorrectoVerifica la fuente de reloj seleccionada y la configuración del fusible
Lecturas inestables del ADCMejorar la toma de tierra y añadir condensadores de desacoplamiento adecuados
Errores de comunicaciónRevisa la configuración y los ajustes de sincronización de USI
Pines de sobrecalentamientoMenor corriente de carga y uso de componentes externos de controladores

Conclusión

El ATtiny85 reúne las funciones de control principales de forma muy compacta. Sus especificaciones, funciones de pines, bloques internos y ajustes de potencia explican cómo funciona en circuitos reales. Con un manejo adecuado de GPIO, uso de ADC, configuración serial y un circuito mínimo, el ATtiny85 puede entenderse claramente y aplicarse en diseños estables y de bajo consumo.

Preguntas frecuentes [FAQ]

¿Cuánta energía consume el ATtiny85?

El consumo de energía depende del voltaje de la fuente, la velocidad de reloj y las características activas. Velocidades de reloj más bajas y desactivar periféricos no utilizados reducen el consumo de corriente.

¿Necesita el ATtiny85 un reloj externo?

No. El ATtiny85 tiene un oscilador RC interno y puede funcionar sin componentes externos de reloj. Un reloj externo solo es necesario para una mayor precisión de tiempo.

¿Se puede usar el pin RESET como pin normal de E/S?

Sí. El pin RESET puede configurarse como GPIO usando la configuración del fusible. Esto deshabilita la programación estándar del ISP y requiere programación de alto voltaje para reprogramar el dispositivo.

¿Puede el ATtiny85 accionar motores o relés directamente?

No. Los pines GPIO ATtiny85 son solo para control de señales. Los motores y relés deben ser accionados mediante transistores externos o MOSFETs.

¿Por qué son inestables las lecturas del ADC de ATtiny85?

Las lecturas inestables del ADC suelen ser causadas por ruido de alimentación o mala conexión a tierra. Añadir condensadores de desacoplamiento adecuados y usar el modo de reducción de ruido ADC mejora la estabilidad.