Tabla de contenido:

Atmega328p Companion: 6 pasos (con imágenes)
Atmega328p Companion: 6 pasos (con imágenes)

Video: Atmega328p Companion: 6 pasos (con imágenes)

Video: Atmega328p Companion: 6 pasos (con imágenes)
Video: 6 CLAVES para crear CONTENIDO en instagram 2024, Noviembre
Anonim
Compañero Atmega328p
Compañero Atmega328p

ATMEGA328P Companion: el módulo de programador y cargador de arranque

Si eres como yo, eres adicto a los proyectos y a Arduino. Sin embargo, si ha realizado una serie de proyectos con un Arduino como cerebro, probablemente haya comenzado a cansarse de mirar la placa Arduino en su conjunto, saturando su proyecto y, en general, con un mal aspecto. Como tal, decidí que quería pasar de las placas Arduino a usar solo el IC.

Ingrese el atmega328p.

El atmega328p es probablemente el IC compatible con Arduino más prolífico del mercado. De ninguna manera es el más barato o el más poderoso, sin embargo, cuando se tienen en cuenta ambos, en mi opinión, es el mejor rendimiento por dólar. Entonces, ¿está listo para comenzar a hacer que sus proyectos se vean mucho más profesionales y menos como un conglomerado de módulos listos para usar? Si es así, lea este instructivo y obtendrá la información necesaria para construir su propio módulo que le permitirá flashear un gestor de arranque en su objetivo atmega328p, cargar el boceto de parpadeo para asegurarse de que todo está funcionando y, finalmente, cargar sus propios bocetos. para sus proyectos individuales.

Paso 1: BOM y herramientas

Lo primero es lo primero, este instructivo no va a ser un paso a paso sobre cómo construir un manual, sino que supongo que sabe cómo leer un esquema y puede traducirlo a un tablero. Con eso en mente, aquí están los materiales y herramientas necesarios:

Materiales:

  • 1x placa de circuito impreso o PCB de 40x60 mm
  • 1 cabezal macho de 6 pines (utilicé machos en ángulo recto)
  • 2x cabezal hembra de 14 pines
  • 1x encabezado hembra de 6 pines
  • 1x encabezado hembra de 2 pines
  • Condensador 2x 22pF (22)
  • Condensador 1x 0.1uF (104)
  • 1 resistencia de 10 kohmios
  • 2x resistencia de 330 ohmios
  • 1x LED (cualquier color para indicador de potencia - 3 mm para diseño de PCB)
  • 1x LED (cualquier color para el pin digital 13 para boceto intermitente - 3 mm para diseño de PCB)
  • 1x cristal de 16 MHz
  • 1x interruptor deslizante
  • 1x pulsador momentáneo

Instrumentos:

  • Arduino Uno
  • Soldador
  • 6x puentes M-M
  • Programador FTDI
  • Cable USB que coincide con su programador FTDI
  • IDE de Arduino

Paso 2: esquema / diseño

Esquema / diseño
Esquema / diseño
Esquema / diseño
Esquema / diseño

Adjunto a este paso están los archivos eagle que utilicé. Eres libre de modificarlos y cambiarlos como quieras. Sin embargo, diseñé la placa para que todos los rastros estén en la capa inferior para que sea fácil de fabricar en un molino de PCB (si tiene acceso a una) con una placa de una cara. También está en la parte inferior para que sea fácil soldar los componentes juntos.

Sin embargo, si desea el PCB, simplemente ejecute el CAM para obtener los archivos gerber necesarios para su fabricante favorito. Me gusta OSH Park porque simplemente les das el archivo de la placa y ellos ejecutan las CAM necesarias para obtener los archivos que necesitan.

Paso 3: soldadura

Soldadura
Soldadura
Soldadura
Soldadura

Entonces, hay tres formas de hacer esta placa:

  • Poblando una PCB
  • Poblando una tabla fresada
  • Poblando un protoboard

Completar la PCB es bastante sencillo y no debería causarle ningún problema, ya que todo está etiquetado.

Poblar una placa fresada tampoco debería ser demasiado difícil, ya que se modela exactamente de la misma manera que la PCB, excepto que no tiene las marcas, así que siga el archivo de la placa en Eagle para asegurarse de que está colocando las cosas. en el lugar correcto (particularmente la polaridad de los LED).

Por último, poblar un protoboard es lo más intensivo en pensamiento, sin embargo, no es terriblemente difícil. Tengo algunas imágenes en este paso que muestran mi versión de protoboard y cómo encajo todo. Tenga en cuenta que el LM7805, los dos condensadores de 4.7uF y los terminales de tornillo no estarán en su placa. Estaba jugando con la idea de que esto tuviera la capacidad de ser alimentado externamente, pero una vez que comencé a pensar en ello, decidí que, en última instancia, era una pérdida de espacio en la placa.

Paso 4: carga de arranque

Carga de arranque
Carga de arranque

Configuración del Arduino de carga de arranque:

Entonces aquí es donde vas a necesitar tu otro Arduino. Primero ve aquí y descarga los archivos de este tipo. En este punto, los archivos tienen algunos años, pero aún funcionan muy bien. Una vez que los haya descargado, abra optiLoader.ino y su IDE de Arduino debería pedirle que lo coloque en una carpeta. Hágalo y luego coloque el archivo optiLoader.h en la carpeta con el.ino. Ahora está listo para cargar ese boceto en su Arduino de carga de arranque. Usé un Arduino Uno, así que sé que funciona con eso, pero estoy seguro de que también funcionará con otras placas.

Una vez que haya cargado optiLoader.ino a su Arduino, todo estará configurado para cargar muchos chips Arduino diferentes. Solo lo hice con atmega328p, sin embargo, el código está configurado para detectar la MCU de destino y actualizar el cargador de arranque correcto, lo cual es bastante bueno. Entonces, cada vez que conecte este Arduino a la placa Atmega Companion con un chip instalado y lo encienda, detectará automáticamente que el objetivo es un atmega328p y actualizará automáticamente el cargador de arranque apropiado. Sin reiniciar saltos, sin cosas raras; solo conéctelo y juegue.

Cableado del cargador de arranque a la placa complementaria:

[Bootloader Arduino] [Atmega328p Companion Board]

  • D10 Reset / pin 1
  • D11 MOSI / pin 17
  • D12 MISO / pin 18
  • D13 SCK / pin 19
  • 5V Vcc / pin 20 o 21
  • GND Tierra / pin 22

Los pines se refieren a las patas del propio IC. Si esto es confuso, mire la imagen de la placa del paso esquemático / de diseño, ya que los pines en la placa complementaria están etiquetados.

Actualización del cargador de arranque:

Ahora que tiene la configuración de Bootloader Arduino con el boceto optiLoader.ino y ahora también está conectado a su placa complementaria, asegúrese de que el interruptor de la placa complementaria esté configurado en "carga de arranque" en lugar de "carga", y luego conecte su Arduino a una computadora. Debería ver las luces de su Arduino y Companion Board parpadear varias veces. Después de unos segundos, ambos deberían oscurecerse y dejar de parpadear. Esto probablemente significa que ha actualizado con éxito su atmega328p IC con el gestor de arranque. Para asegurarse de que todo salió bien, conéctelo a su computadora y abra el IDE de Arduino y luego el monitor en serie. Cambie la velocidad en baudios a 19200. Luego, si no se reinicia automáticamente, presione el botón de reinicio en su Arduino. Debería ver un montón de texto que describe lo que está haciendo el script. Al final, no debería tener ningún mensaje de error y debería informarle que el proceso ha finalizado.

Si recibe un error, verifique su conmutador y asegúrese de que está en "carga de arranque". Si todavía recibe errores en este punto, verifique todo su cableado y asegúrese de que sea correcto.

Paso 5: carga

Subiendo
Subiendo

Este es el paso fácil.

Desconecte todos los cables del paso anterior y cambie el interruptor de "bootload" a "upload". Conecte su módulo FTDI. Me gusta el Adafruit CP2104 y el SparkFun CH340G principalmente porque son relativamente baratos y el pinout coincide con los pines FTDI que salen de la placa complementaria.

Una vez que tenga su FTDI conectado a su placa complementaria, continúe y conéctelo a su computadora. Desde allí, cargue el boceto de ejemplo de parpadeo para asegurarse de que el cargador de arranque se haya actualizado correctamente. Seleccione Arduino / Genuino Uno en el menú de placas. Una vez que se carga el boceto parpadeante, debería ver el LED parpadeante parpadeando, como se esperaba. Si eso funciona, entonces está listo para usar y cargar sus propios bocetos personalizados en el IC, tal como lo haría con cualquier otro Arduino.

Paso 6: Trabajo futuro

En el futuro, planeo convertir esto en un escudo Arduino Uno. No debería llevar mucho tiempo hacerlo, y si la gente quiere, también puedo subir los archivos Eagle para eso aquí. Esto simplificaría el paso de carga de arranque, ya que no tendría que preocuparse por cablearlo incorrectamente. También estoy abierto a otras sugerencias de mejora, sin embargo, no sospecho que esté haciendo mucho más con esto, ya que era solo un paso necesario para preparar mis proyectos futuros.

Si quieres ver más de mis proyectos futuros, avísame y trataré de mantener informada a la comunidad.

Recomendado: