Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

ATtiny84: Datasheet, Pinout, Programación y Guía de Inicio Rápido con Arduino

El ATtiny84 (Microchip/Atmel) es un microcontrolador AVR 8-bit ultra-compacto (14 pines) de la familia tinyAVR, diseñado para aplicaciones donde el espacio, coste y consumo son críticos. Basado en arquitectura AVR RISC (1 MIPS/MHz), integra 8 KB Flash, 512 B SRAM, 512 B EEPROM, ADC 10-bit 8 canales, 12 I/O, y tecnología picoPower para consumo mínimo. Ideal para nodos sensor, wearables, controladores LED, reemplazo de lógica glue, y proyectos Arduino miniaturizados. Cubrimos pinout detallado, características, programación vía Arduino as ISP y alternativas.

Configuración de Pines (SOIC-14 / DIP-14)

El ATtiny84 tiene 14 pines: VCC, GND, RESET, y 12 I/O multifunción (Port A: PA0-PA7, Port B: PB0-PB3). Cada pin tiene múltiples funciones alternativas (ADC, PWM, SPI, I2C/USI, Clock, Interrupciones).

PinNombre PrincipalFunciones Alternativas Clave
1VCCAlimentación 1.8-5.5 V
2PB0PCINT8, XTAL1, CLKI (Clock externo entrada)
3PB1PCINT9, XTAL2 (Cristal)
4PB3PCINT11, RESET (dW debug, programación ISP). Pull-up 10 kΩ obligatorio.
5PB2PCINT10, CKOUT (Clock salida sistema), OC0A (PWM Timer0 A), INT0 (Interrupción externa)
6PA7PCINT7, ADC7, OC0B (PWM Timer0 B), ICP1 (Timer1 Input Capture)
7PA6PCINT6, ADC6, OC1A (PWM Timer1 A), SDA (USI I2C), MOSI (USI SPI), DO (USI Data Out)
8PA5PCINT5, ADC5, OC1B (PWM Timer1 B), MISO (USI SPI), DI (USI Data In)
9PA4PCINT4, ADC4, USCK (USI Clock), SCL (USI I2C), T1 (Timer1 Clock externo)
9PA3PCINT3, ADC3, T0 (Timer0 Clock externo)
11GNDTierra
12PA2PCINT2, ADC2, AIN1 (Comparador analógico entrada -)
13PA1PCINT1, ADC1, AIN0 (Comparador analógico entrada +)
14PA0PCINT0, ADC0, AREF (Referencia ADC externa)

Notas críticas:

Características y Especificaciones

Alternativas y Chips Relacionados

ChipPinesFlashSRAMI/OADCPWMCommsNota
ATtiny84148 KB512 B128 ch4USI (SPI/I2C)Referencia
ATtiny84A148 KB512 B128 ch4USIProceso mejorado, menor consumo
ATtiny44/24144/2 KB256/128 B128 ch4USIMenor memoria, mismo pinout
ATtiny841148 KB512 B128 ch4USI + UART¡UART hardware real!
ATtiny8828/328 KB512 B24/2810 ch6SPI+I2C+UARTMás I/O, encapsulado mayor
ATtiny1616/1617 (0/1-series)14/20/2416 KB2 KB12/18/228-12 ch5-6SPI+I2C+UARTNueva arquitectura (AVR-Dx), UPDI, DAC, OpAmp, 32 MHz, < $0.50. Recomendado para nuevos diseños.
ATmega328P28/3232 KB2 KB236 ch6SPI+I2C+UARTSi necesita más memoria/periféricos

Programación del ATtiny84 con Arduino como ISP (Guía Paso a Paso)

Hardware Requerido

Configuración Arduino IDE (1.8.x / 2.x)

  1. Instalar soporte de placas ATtiny: Archivo → Preferencias → URLs Gestor de Tarjetas Adicionales añada: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json (clásico) o mejor SpenceKonde/ATTinyCore (moderno, completo): https://raw.githubusercontent.com/SpenceKonde/ATTinyCore/master/package_attyinycore_index.json
  2. Herramientas → Placa → Gestor de Tarjetas → Buscar "ATtiny" → Instalar ATTinyCore (por Spence Konde).
  3. Seleccionar: Placa: "ATtiny24/44/84 (No bootloader)" → Chip: "ATtiny84" → Clock: "8 MHz (Internal)" (o 1 MHz por defecto) → Programmer: "Arduino as ISP".

Conexiones (Arduino ISP → ATtiny84)

Arduino PinATtiny84 PinFunción
10 (SS)4 (PB3/RESET)Reset programación
11 (MOSI)7 (PA6/MOSI/DO)MOSI
12 (MISO)8 (PA5/MISO/DI)MISO
13 (SCK)9 (PA4/SCK/USCK)SCK
5V / 3.3V1 (VCC)Alimentación
GND11 (GND)Tierra

Importante: Conecte 10 µF (polaridad: + a RESET, - a GND) en Arduino programador después subir sketch "ArduinoISP" y antes** de "Burn Bootloader" / subir sketch.

Pasos de Programación

  1. Suba sketch Ejemplos → 11.ArduinoISP → ArduinoISP al Arduino programador.
  2. Conecte condensador 10 µF RESET-GND en Arduino programador.
  3. Cablee ATtiny84 según tabla anterior.
  4. Herramientas → Quemar Bootloader (configura fuses: clock 8 MHz interno, BOD 2.7 V, SPIEN on, RSTDISBL off). No sube bootloader (no hay), solo configura fuses.
  5. Escriba su sketch (ej. Blink en Pin 0 / PA0): pinMode(0, OUTPUT); digitalWrite(0, HIGH); delay(500); digitalWrite(0, LOW); delay(500);
  6. Programador → Subir usando programador (Ctrl+Shift+U).
  7. Verifique LED parpadea en Pin 14 (PA0).

Código Blink Mínimo para ATtiny84 (Pin PA0 = Arduino Pin 0)

void setup() {
  pinMode(0, OUTPUT); // PA0 = Pin 14
}
void loop() {
  digitalWrite(0, HIGH);
  delay(500);
  digitalWrite(0, LOW);
  delay(500);
}

Consejos Avanzados y Trucos

  • Clock 1 MHz vs 8 MHz: Por defecto fuse CKDIV8=0 → 8 MHz / 8 = 1 MHz. Para 8 MHz: quite CKDIV8 (Burn Bootloader con Clock 8 MHz) o use clock_prescale_set(clock_div_1); en setup (requiere <avr/power.h>).
  • Sleep modes: Use set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_cpu(); para µA. Despierte por Watchdog, Pin Change Interrupt (PCINT en cualquier pin), o INT0 (PB2).
  • PCINT (Pin Change Interrupt): 12 pines = 3 vectores (PCINT0: PA0-PA7, PCINT1: PB0-PB3). Librería EnableInterrupt o PinChangeInterrupt simplifica.
  • I2C Slave: Use librería TinyWireS (ATtinyCore la incluye). Pines: PA6=SDA, PA4=SCL.
  • UART Software: SoftwareSerial funciona en cualquier par pines (ej. PB0/PB1). Para UART hardware real → ATtiny841 / 0/1-series.
  • Depuración: Sin UART hardware, use LED parpadeo, o SoftwareSerial a USB-Serial para printf debugging. DebugWIRE (Pin RESET) requiere Atmel-ICE / AVR Dragon.

Conclusión

El ATtiny84 es el "pequeño gigante" de los AVR tiny: 14 pines, 12 I/O, ADC 8ch, 4 PWM, USI, 8 KB Flash, consumo picoPower, encapsulado DIP/SOIC manejable. Perfecto para nodos sensor batería, wearables, controladores LED direccionables, reemplazo de lógica 74xx, y proyectos Arduino que no caben en ATtiny85 (6 I/O). Para nuevos diseños, evalúe la serie 0/1 (ATtiny1616/1617/3217...): misma huella (QFN-14/20/24), 16-32 KB Flash, 2 KB SRAM, UART/SPI/I2C hardware, DAC, OpAmp, 32 MHz, UPDI (1 pin prog), y menor coste. Pero el ATtiny84 sigue siendo rey en ecosistema Arduino maduro, librerías probadas, y disponibilidad DIP para protoboard. Domine sus fuses, sleep modes, y USI para proyectos ultra-bajo-consumio y ultra-compactos.

Tecnología Industrial

  1. Técnicas de Acoplamiento de Entrada y Salida para Amplificadores: Métodos Capacitivos, Directos y con Transformador
  2. Manufactura 2024: Desafíos, Oportunidades y el Camino a Seguir
  3. Día de la Manufactura: Evolución, impacto y exhibición de la industria
  4. Madera transparente e innovaciones neutras en carbono: el futuro de los materiales sostenibles
  5. Microfusión explicada: historia, proceso y técnicas modernas
  6. Arduino Explicado: Qué Es y Cómo Programarlo
  7. Mantenimiento Basado en Condición: Cómo Funciona y sus Beneficios
  8. Fabricación Inteligente: Definición, Beneficios e Implementación
  9. Sensor Ultrasónico HC-SR04: Funcionamiento y Aplicaciones Clave
  10. Sensor Láser de Distancia VL53L0X: Pinout, Circuito, Especificaciones y Aplicaciones Prácticas
  11. Dominando Entrada y Salida en programación C