Tabla de contenido:
- Paso 1: Construcción del accesorio de zapatero
- Paso 2: Instalación y uso de Avrdude
- Paso 3: Poner los programas de Arduino en los AVR
Video: AVR / Arduino parpadeando con Raspberry Pi: 3 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Un programador en el sistema (ISP) es un dispositivo que puede usar para programar muchos microcontroladores, por ejemplo, el ATMega328p que es el cerebro de un Arduino Uno. Puede comprar algo como un USBtinyISP, o incluso puede usar un Arduino. Este instructivo le mostrará cómo usar una Raspberry Pi como ISP.
El programa avrdude, que es lo que usa el IDE de Arduino debajo del capó para flashear chips, se puede usar con muchos programadores. Una de sus opciones es usar los pines SPI en el puerto de expansión de Pi. Explicaré cómo hacer las conexiones apropiadas, armar un circuito simple en perfboard para que no tengas que rehacer el cableado cada vez que quieras flashear un chip, y cómo instalar y usar avrdude. También le mostraré cómo compilar programas usando el IDE de Arduino en un chip AVR como un ATmega o ATtiny usando este método.
Cosas necesarias:
- Raspberry Pi con la última Raspbian instalada
- Enchufe de cabezal macho de 40 pines (o 26 pines si tiene un Pi más antiguo)
- Cable IDE para conectar a tu Pi
- Resonador de cristal de 16 MHz
- Condensadores de 22 pF (2)
- LED (1) para indicar el estado del programador
- Zócalos IC de 8, 14 y / o 28 pines, según la forma de chips que desee flashear
- Algunos perfboard, cables, soldadura
Paso 1: Construcción del accesorio de zapatero
La interfaz periférica serial (SPI), también llamada serial de cuatro cables, es una forma de comunicación entre un solo dispositivo maestro y uno o más dispositivos esclavos. Usaremos esto para flashear chips, con el Pi como maestro y el chip como esclavo. Realizará las siguientes conexiones entre el Pi y su chip (consulte los pines de arriba para ver varios AVR y puertos de expansión Pi para saber qué pines son cuáles):
- Conecte los pines MOSI (master-out-slave-in) juntos
- Conecte los pines SCLK (reloj compartido) juntos
- Conecte los pines MISO (master-in-slave-out) junto con una resistencia de 220 Ohm, para proteger el Pi de cualquier voltaje inesperadamente alto del chip
- Conecte GPIO 25 en el Pi directamente al pin RESET en el chip. El Pi baja este pin cuando está programando, por lo que usamos una resistencia de 10K para mantenerlo alto cuando no está programando, y un LED con una resistencia de protección de 1K funcionando a voltaje positivo para darnos una buena retroalimentación visual cuando está programando.
Conectamos pines de tierra y alimentación (3.3V) entre el Pi y los chips que queremos programar. En caso de que aún no lo sepas, los pines de la Raspberry Pi no son tolerantes a 5V; se dañarán si aparecen más de 3.3V en ellos. Si los chips que se están programando necesitan una potencia de 5V por alguna razón, podríamos usar un chip de cambio de nivel para proteger los pines de Pi, pero no he tenido ningún problema al usar 3.3V, por lo que recomiendo ir a lo seguro y ahorrar en componentes.
Por último, conectamos un oscilador de cristal de 16MHz a través de los pines XTAL del chip, que también conectamos a tierra a través de un par de condensadores de 22pF. Los chips AVR se pueden configurar para que funcionen a diferentes frecuencias, y también se pueden configurar para usar una fuente interna o externa para determinar esa frecuencia. Si su chip está configurado para usar un cristal externo como fuente de frecuencia, no podrá reprogramar sin él. De lo contrario, no importa si está ahí.
Puede usar el esquema del circuito en la última imagen como una guía para ensamblar su accesorio de zapatero en perfboard. Puede tener tantas o pocas formas diferentes de enchufes IC como desee, simplemente conecte los pines apropiados en paralelo con el Pi y el cristal. nótese bien Si usa la imagen de mi prototipo como guía, tenga en cuenta que agregué algunos pines y enchufes de encabezado adicionales para poder acceder a los pines del Pi por razones no relacionadas.
Paso 2: Instalación y uso de Avrdude
Para instalar avrdude en su Pi, simplemente escriba
sudo apt-get install avrdude
Luego deberá habilitar la interfaz SPI, si aún no se ha encendido. Hay una forma de línea de comandos para hacer esto, pero es mucho más fácil usar la herramienta de configuración Raspberry Pi. Escribe
sudo raspi-config
y vaya a Opciones de interfaz para activar SPI.
Para flashear su chip, conecte el cable plano de su Pi en el conector en el circuito perfboard e inserte el chip en el zócalo IC apropiado (asegúrese de que esté orientado en la dirección correcta).
Al flashear un programa, también debe asegurarse de colocar los fusibles en el chip correctamente. En realidad, estos son solo bits en el chip que configura para indicarle a qué velocidad de reloj ejecutar, si debe borrar la EEPROM al escribir el chip, etc. Puede leer la especificación AVR completa para averiguar cómo configurar cada bit, pero es mucho más fácil usar la calculadora de fusibles que se proporciona en engbedded.com/fusecalc. Seleccione el nombre de la pieza del AVR que está utilizando y elija las opciones que desee en el área "Selección de funciones". Por lo general, solo me aseguro de que la configuración del reloj sea correcta y dejo el resto de cosas por defecto. Casi siempre querrá dejar "Programación en serie habilitada" MARCADA y "Restablecer desactivado" SIN MARCAR; de lo contrario, no podrá reprogramar el chip. Cuando tenga la configuración correcta, puede desplazarse hacia abajo en el área "Configuración actual" y copiar los argumentos AVRDUDE como se muestra en la imagen.
Para configurar los fusibles, ingrese el comando
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p
donde partname corresponde al chip que está utilizando. Puede encontrar la lista de nombres de piezas ingresando sudo ardude -c linuxspi -p? Type. Para actualizar su programa, asegúrese de que esté en su directorio actual e ingrese
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i
Después de ambos comandos, el LED se iluminará mientras se modifica el chip.
Paso 3: Poner los programas de Arduino en los AVR
El enfoque principal de este instructable es flashear programas ya compilados en chips, no cómo escribirlos o compilarlos. Sin embargo, quería explicar cómo se pueden compilar binarios usando el IDE de Arduino y ponerlos en chips AVR desnudos usando este método, ya que Arduino es relativamente fácil de aprender y hay muchos tutoriales y ejemplos.
Primero, necesitará agregar información sobre los chips AVR que estará flasheando para que el IDE sepa cómo compilarlos. James Sleeman ha reunido de manera muy útil algunos archivos de configuración, que están disponibles en github. Para usarlos, abra el menú "Preferencias" en el IDE de Arduino y haga clic en el cuadro junto al campo "URL adicionales del administrador de tableros". Copie y pegue las siguientes URL en el cuadro de diálogo que aparece:
Luego, vaya al menú "Herramientas" y busque la opción "Administrador de tableros …" en el submenú "Tablero". Desplácese hasta la parte inferior de la lista en el cuadro de diálogo Administrador de tableros e instale los tableros DIY ATmega y DIY ATtiny.
Para compilar sus programas, primero asegúrese de haber seleccionado el chip correcto en el menú "Procesador", así como la velocidad del procesador correcta. Seleccione la opción "Use Bootloader: No", ya que cargaremos directamente con el Pi y así podremos usar el espacio extra que normalmente ocuparía el bootloader Arduino. Ahora, haga clic en el botón "Verificar" (la marca de verificación). Esto compilará su programa sin intentar cargarlo (ya que usted mismo está haciendo ese paso).
Suponiendo que todo vaya bien, ahora necesita obtener el programa compilado en su Pi. El IDE los oculta en una ubicación temporal, ya que está diseñado para cargar programas por sí mismo. En Windows, está en AppData / Local / Temp en su directorio de usuario, en una carpeta que comienza con 'arduino_build'. Busque el archivo.hex, ¡ese es su programa! Envíelo a su Pi a través de FTP o con una memoria USB, y ya está en el negocio.
Hacer esto requiere que tenga una PC con Windows o Mac para compilar sus programas, que luego envía al Pi. Sería realmente hábil poder hacer esto en la propia Pi, pero desafortunadamente la versión oficial del IDE de Arduino disponible en el repositorio de Raspbian es bastante antigua y no tiene el Administrador de la Junta. Sin esto, agregar la configuración adecuada para compilar AVR desnudos es un poco más complicado. Hay tutoriales para compilar una versión más reciente de Arduino en tu Pi; si eso es lo que quieres hacer, ¡búscalos! También creo que debería ser posible hacer que el IDE use el programador linuxspi para flashear un chip desde el propio IDE (es decir, usando el botón "descargar"), pero esto está más allá de mi paciencia y nivel de habilidad, si sabes de de alguna manera, publícalo en los comentarios! Por último, puede escribir programas directamente en AVR-C y compilarlos en Pi con avr-gcc, lo que le brinda una plataforma de desarrollo AVR completa en Raspberry Pi. He hecho un poquito de eso, y si quieres ir por ese camino, te saludo. ¡Ponte a parpadear!
Recomendado:
Arduino como ISP -- Grabar archivo hexadecimal en AVR -- Fusible en AVR -- Arduino como programador: 10 pasos
Arduino como ISP || Grabar archivo hexadecimal en AVR || Fusible en AVR || Arduino como programador: ……………………… SUSCRÍBETE A mi canal de YouTube para ver más videos …….. Este artículo se trata de arduino como isp. Si desea cargar un archivo hexadecimal o si desea configurar su fusible en AVR, entonces no necesita comprar un programador, puede hacerlo
Control de LED parpadeando con un potenciómetro y pantalla OLED: 6 pasos
Control de LED parpadeando con un potenciómetro y pantalla OLED: En este tutorial aprenderemos cómo controlar el LED parpadeante con un potenciómetro y mostrar el valor de frecuencia de pulso en la pantalla OLED
LED parpadeando {botón controlado}: 5 pasos
LED parpadeando {botón controlado}: Soy un estudiante en Kang Chiao. Este es mi proyecto, uso Arduino e hice una luz LED parpadeante con un botón que puede hacer que parpadee. Puedes ponerlo en tu tela y cuando algunas personas estén demasiado cerca de ti, puedes presionar el botón y la bombilla wi
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
Diseño de PCB de LED parpadeando con 555 IC: 7 pasos (con imágenes)
Diseño de PCB de LED parpadeando usando 555 IC: HOLA En este instructivo, acabo de mostrar el circuito del LED parpadeante y el diseño de PCB si tiene alguna duda sobre algún paso, simplemente revise mi diseño de PCB instructable anterior con pasos simples y fáciles o bien, vea el video adjunto a eso