Tabla de contenido:

Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP: 9 pasos (con imágenes)
Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP: 9 pasos (con imágenes)

Video: Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP: 9 pasos (con imágenes)

Video: Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP: 9 pasos (con imágenes)
Video: Como subir programa a un atmega328p nuevo y a un attiny85 desde arduino|| modulo bootloader 2024, Mes de julio
Anonim
Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP
Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP
Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP
Programación de ATTiny85, ATTiny84 y ATMega328P: Arduino como ISP

Prefacio

Recientemente, he estado desarrollando algunos proyectos de IoT basados en ESP8266 y descubrí que el procesador central estaba luchando para llevar a cabo todas las tareas que necesitaba administrar, por lo que decidí distribuir algunas de las actividades menos importantes a un microcontrolador diferente en de esta manera, libera al ESP8266 para que continúe con su trabajo de ser un dispositivo IoT.

Dado que quería publicar mi proyecto para una audiencia lo más amplia posible, opté por usar el IDE de Arduino como la plataforma de desarrollo de elección, ya que tiene una comunidad con un apoyo tan amplio.

Restricciones de diseño

Con el fin de proporcionar una distribución razonable de dispositivos de destino que permitan la selección de un microcontrolador apropiado para la aplicación en cuestión, me decidí por las siguientes partes de Atmel; ATMega328P, ATTiny84 y ATTiny85. Para limitar la complejidad del programador necesario, limité la elección del reloj a interno para todos los dispositivos y externo de 16MHz solo para ATMega328P y ATTiny84.

Lo que sigue es una colección de notas sobre la programación con Arduino y una descripción de cómo armé un programador simple basado en Arduino Uno para estos dispositivos (fotos arriba).

¿Qué partes necesito?

Para construir el programador, necesitará las siguientes partes

  1. 1 de Arduino Uno
  2. 2 enchufes DIP de fuerza de inserción cero (ZIF) de 28 pines (para sujetar ATMega328P, ATTiny85, ATTiny84)
  3. 1 escudo prototipo de Arduino (tengo el mío aquí;
  4. 2 LED de 5 mm
  5. 2 resistencias de 1K
  6. 1 resistencia de 10K
  7. 4 condensadores cerámicos de 22pF
  8. 2 cristales de 16 MHz
  9. 3 condensadores cerámicos de 0.1uF
  10. 1 condensador electrolítico de 47uF
  11. 1 condensador electrolítico de 10 uF
  12. Varias longitudes de alambre enrollado.

¿Qué software necesito?

Arduino IDE 1.6.9

¿Qué habilidades necesito?

  1. Conocimiento de Arduino IDE
  2. Algunos conocimientos de electrónica y cómo soldar.
  3. Mucha destreza manual
  4. Mucha paciencia y buena vista

Tópicos cubiertos

  1. Introducción general a la programación de microcontroladores Atmel
  2. ISP o cargador de arranque: todo es un poco confuso
  3. Resumen del circuito
  4. Configurando su programador
  5. Usando su programador ISP Arduino
  6. Desarrollando código en su sistema de destino
  7. Gotchas
  8. Conclusión
  9. Referencias utilizadas

Descargo de responsabilidad

Como siempre, usa estas instrucciones bajo su propio riesgo y vienen sin soporte

Paso 1: Introducción general a la programación de microcontroladores Atmel

Introducción general a la programación de microcontroladores Atmel
Introducción general a la programación de microcontroladores Atmel
Introducción general a la programación de microcontroladores Atmel
Introducción general a la programación de microcontroladores Atmel
Introducción general a la programación de microcontroladores Atmel
Introducción general a la programación de microcontroladores Atmel

Hay dos métodos disponibles para programar microcontroladores Atmel;

  1. En Programación del sistema (ISP),
  2. Autoprogramación (a través de un gestor de arranque).

El método anterior (1) programa directamente el microcontrolador a través de la interfaz SPI después de reiniciar el dispositivo. A menos que se indique lo contrario, un programa fuente ejecutable compilado se escribe en el dispositivo de forma incremental en la memoria de código desde donde se ejecuta al inicio. Hay muchos dispositivos ISP capaces de programar dispositivos Atmel, algunos de los cuales son (imagen 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. La imagen 2 muestra cómo el dispositivo ISP se conecta al ATMega328P (ICSP extrañamente marcado) en la placa Arduino Uno R3 (la imagen 3 muestra el pin del ISP). También es posible programar un microcontrolador Atmel a través de su interfaz SPI usando un Arduino Uno como ISP (imagen 4), aquí el Uno se está utilizando para programar un ATMega328P.

El último método (2) utiliza un pequeño código auxiliar conocido como 'gestor de arranque' residente permanentemente en la memoria del código ejecutable (generalmente bloqueado para evitar sobrescribir accidentalmente la imagen 5). Este código se ejecuta en primer lugar al encender o reiniciar el dispositivo y permite que el microcontrolador se reprograme a sí mismo con el nuevo código recibido a través de una de sus interfaces desde una fuente externa a sí mismo. El método del cargador de arranque es utilizado por el IDE de Arduino para reprogramar los Arduinos mapeados como un puerto de comunicación USB en la PC (o MAC, Linux box, etc., imagen 6) y en el caso de Arduino Uno se comunica con el dispositivo Atmel a través de su interfaz serial en los pines 2 y 3 de IC del ATMega328P. Además, el Arduino Uno (con el microcontrolador ATMega328P eliminado) se puede usar para programar un ATMega328P a través del método del cargador de arranque que actúa efectivamente como un dispositivo adaptador USB a serie (imagen 7).

¿Qué es un adaptador USB a serie?

Un adaptador de USB a serie es una pieza de hardware que se conecta al puerto USB de su PC y parece un puerto de comunicaciones serie (un legado de tiempos anteriores cuando las computadoras usaban un estándar de comunicaciones en serie conocido como EIA-232, V24 o RS232) que le permite enviar y recibir datos en serie a los mismos niveles eléctricos del microcontrolador. Cuando selecciona Herramientas -> Puerto -> COMx desde el IDE de Arduino, está conectando / conectando su PC a su Arduino.

Un dispositivo como este a veces se conoce como FTDI (imagen 8, que en realidad es un nombre de marca) o CH340G, etc. USB a serie en el Arduino uno se logra a través de un ATMega16U2-MU (R) IC ZU4 como en el esquema de Arduino debajo.

Para mayor claridad, la imagen 9 identifica los dos dispositivos Atmel y sus respectivos conectores ISP en el Arduino Uno R3.

Nota 1: Si elige seguir la ruta del dispositivo FTDI, asegúrese de comprar a un vendedor de confianza, ya que ha habido muchos dispositivos falsificados baratos en el mercado que han fallado al aplicar una actualización de Windows.

Recomendado: