No puedo subir bocetos a mi Arduino Uno.
- ¿Lo he "bloqueado"?
- ¿Qué pasos puedo tomar para resolver lo que está mal?
- ¿Que puedo hacer para arreglarlo?
arduino-uno
uploading
atmega328
icsp
Nick Gammon
fuente
fuente
Respuestas:
Probablemente no esté bloqueado
Tengo bastantes Arduinos, y en los últimos años solo he "bloqueado" uno, y creo que fue zapándolo con electricidad estática. Desafortunadamente, ese en particular tenía un chip de procesador SMD (montado en superficie), por lo que no es fácil intentar cambiarlo por otro chip.
Mantén la calma y prueba los siguientes pasos ...
Tablero de ejemplo
Un "Arduino Uno" no es solo una cosa que podría fallar. Tiene múltiples componentes principales, y posiblemente solo uno haya fallado (si lo hay). Ver esta fotografía de referencia:
Los componentes principales son:
Tenga en cuenta que los LED Rx y Tx no están conectados directamente a los pines digitales 0 y 1 en la placa (marcados Rx y Tx). Solo se iluminan si está realizando comunicaciones en serie a través de USB , no si tiene algo (como un GPS) conectado directamente a los pines digitales 0 y 1.
También tenga en cuenta que dado que el LED "L" está conectado a través de un amplificador operacional, puede iluminarse si el pin 13 está configurado en una entrada en su boceto. Esto es normal. No significa que algo esté enviando datos por error.
Comprueba el poder
USB power
Conecte la placa a su computadora con el cable USB y verifique que se encienda el LED verde "Encendido".
Use un multímetro y un par de cables de puente para probar entre el pin de 5V y el pin de GND (con una flecha en la parte inferior). Debería obtener una lectura de alrededor de 5.0 V (obtuve 5.04 V en la mía).
(Puede comprar un multímetro barato por alrededor de $ 10 si no tiene uno, pero es mejor que obtenga uno mejor por alrededor de $ 50; consulte todos los sitios web y tiendas de electrónica).
Si no obtiene 5 V con el cable USB enchufado, asegúrese de que el otro extremo esté conectado a su computadora. Pruebe también con un cable diferente.
Conector de alimentación
Si está utilizando, o planea utilizar, el conector de alimentación (marcado "power in" en la foto) desconecta el USB y conecta una fuente de alimentación, que debe ser de 7 a 12 V CC con positivo en el pin central .
Mida los pines de 5 V y 3.3 V como se indicó anteriormente. Aún debería ver los mismos voltajes en ellos.
Si obtiene 5 V con el USB conectado, pero no con la fuente de alimentación, entonces el regulador de voltaje (marcado en la foto) probablemente esté dañado. O, posiblemente, la fuente de alimentación ha fallado. Pruebe con una fuente de alimentación diferente para confirmar cuál es.
Verifique el flash LED de encendido
Si tiene el gestor de arranque Optiboot (el Uno normalmente se envía con eso), entonces si presiona y suelta el botón Restablecer, o desenchufa y vuelve a enchufar el USB o el cable de alimentación, el LED "L" debería parpadear rápidamente 3 veces. Los tiempos de "encendido" y "apagado" son de 50 ms cada uno, los tres destellos deben finalizar en aproximadamente 1/3 de segundo.
Si no es así, puede tener un problema con el gestor de arranque o el chip del procesador principal (Atmega328P).
Intenta subir un boceto
Importante: si tiene problemas para cargar bocetos, elimine los dispositivos conectados (como escudos). También quite los cables de puente enchufados en los enchufes de la placa. En particular, no debe haber nada conectado a los pines digitales 0 y 1 (Rx y Tx) porque eso interferirá con la comunicación con la computadora que está cargando.
Elija uno de los bocetos de ejemplo simples (por ejemplo, Blink) e intente cargarlo. Esto es lo que deberías ver:
El LED "L" debería parpadear 3 veces. Esto se debe a que el chip principal se restablece mediante un comando del proceso de carga.
El LED "Rx" debería parpadear rápidamente. Estas son las instrucciones del proceso de carga que intenta activar el gestor de arranque.
El LED "Tx" debería parpadear rápidamente. Este es el procesador que reconoce los datos cargados.
Puede ver lo anterior, incluso si falla el proceso de carga. Esto podría deberse a que se ha seleccionado el tipo de placa incorrecto.
Si solo parpadea el LED "Rx", podría deberse a un problema con el cargador de arranque o el chip del procesador principal (Atmega328P). Alguien está tocando, ¡pero nadie está en casa!
Comprueba el tipo de tablero
Si los LED parpadean, pero recibe un mensaje como este:
Verifique el tipo de tablero:
Si ha seleccionado el tipo de placa incorrecto, probablemente enviará las instrucciones de carga incorrectas, y el tiempo de espera o de lo contrario fallará. Si eres como yo y tienes diferentes tableros, es fácil olvidar que la última carga que hiciste fue para un tipo de tablero diferente.
Compruebe el puerto de comunicaciones
Si los LED no parpadean en absoluto, es posible que haya seleccionado el puerto de comunicación incorrecto.
Verifique el puerto de comunicación:
Pruebe con una PC / Mac diferente si es posible
Pruebe su Arduino en una PC / Mac diferente si tiene una a mano. Esto puede reducir si tiene o no un problema con la computadora en particular a la que la conectó o con las computadoras en general.
Haz una prueba de bucle invertido
Alambrado:
Si todo se repite: eso confirma que tiene el puerto de comunicación correcto, el cable USB está bien y el chip de interfaz USB (Atmega16U2) probablemente esté bien.
Si no se repite nada, verifique:
Probar el chip Atmega16U2
Si su placa falla la prueba de bucle de retorno y está seguro de que el cable USB está bien, puede probar el chip Atmega16U2. Hay un encabezado ICSP (programación en serie en circuito) en la placa, adyacente al chip Atmega16U2 y cerca del zócalo USB.
Desconecte primero la alimentación (desconecte el cable USB y cualquier cable de alimentación).
Luego puede conectar el encabezado ICSP a través de 6 cables de puente a un Uno bueno conocido, como se muestra en la foto:
Los pin-outs para el encabezado ICSP son (desde arriba):
El pin 1 en el encabezado ICSP cerca del chip Atmega16U2 está marcado con un pequeño punto blanco, cerca de la "F" en "AREF". El pin 1 en el encabezado ICSP cerca del chip ATmega328P está marcado con un pequeño punto blanco, debajo de la "N" en "ON".
Conectar hasta:
Vuelva a verificar su cableado.
Luego, en la placa "bien conocido", instale el boceto "Atmega_Board_Detector" como se describe en la página del programador del gestor de arranque Atmega . El código está en GitHub: nickgammon / arduino_sketches . Si hace clic en el botón Descargar en esa página, obtendrá una serie de bocetos útiles. El que desea se llama "Atmega_Board_Detector".
Una vez instalado, abra el monitor en serie, configúrelo a 115200 baudios, y debería ver algo como esto:
Sin embargo, si recibe un mensaje como este:
Eso parecería indicar que su ATmega16U2 no está funcionando.
Probar el chip ATmega328P
Desconecte la alimentación del "bien conocido" Arduino Uno y vuelva a cablear los puentes ICSP según esta foto, para conectarlos al procesador "principal" en su Uno:
Los pin-outs para el encabezado ICSP son (desde arriba):
El pin 1 en el encabezado ICSP cerca del chip ATmega328P está marcado con un pequeño punto blanco, debajo de la "N" en "ON".
El cableado es el mismo que antes, excepto que se está conectando al otro encabezado ICSP, el que está al final de la placa, más alejado de la toma USB.
Una vez conectado, abra el monitor en serie, configúrelo a 115200 baudios, y debería ver algo como esto:
En este caso, confirma que el procesador principal está funcionando y tiene el gestor de arranque Optiboot.
Cosas que puedes arreglar
Regulador de voltaje fallido
Esto no es fácil de reemplazar, pero solo es necesario si usa el conector de alimentación. Si ejecuta desde USB, no es necesario. Alternativamente, puede organizar un suministro de 4 a 5 V (por ejemplo, 3 pilas AA) y conectarlas directamente a la toma de 5 V de la placa.
Chip ATmega16U2 fallido
Esto solo es necesario para cargar bocetos a través del puerto USB y la depuración en serie. No es particularmente fácil de reemplazar porque es un SMD (dispositivo montado en superficie). Sin embargo, puedes hacerlo sin él.
Puede cargar bocetos a través del encabezado ICSP, si compra un dispositivo de programación ICSP.
Ejemplos de tales dispositivos conectados al zócalo ICSP:
(Esas fotos fueron tomadas de un Ruggeduino, pero el concepto es el mismo).
También puede obtener un cable FTDI, como este:
Conéctelo a los puertos serie de su placa de esta manera:
Ahora puede cargar bocetos directamente al procesador principal, sin pasar por el chip USB.
También puede usar mi programador autónomo de chip Atmega para cargar archivos .hex ; esto le permite copiar el archivo .hex para un boceto en una tarjeta SD y luego programar la placa a través del encabezado ICSP.
Chip ATmega328P fallido
El procesador principal se puede reemplazar con bastante facilidad si está montado en un zócalo. Obtenga un chip de reemplazo de algún lugar como Adafruit por alrededor de $ US 6. Alternativamente, pruebe eBay. Intente obtener un chip que ya tenga el gestor de arranque Optiboot para evitar problemas.
Saque con cuidado el chip existente del zócalo e instale el nuevo, tomando nota de la ubicación del pin 1. El pin 1 tiene una muesca en el chip, y su orientación correcta se observa en la primera foto de esta publicación con un color amarillo. punto (más cercano al borde del tablero). Probablemente necesitarás estirar las piernas ligeramente. Sostenga el chip por los extremos y empuje suavemente hacia abajo sobre una superficie plana, como un escritorio, hasta que se empujen un poco hacia adentro. Intente no tocar los pines metálicos, puede golpearlos con electricidad estática.
ATmega328P responde pero no tiene gestor de arranque
Tengo un boceto en el programador del gestor de arranque Atmega que reemplazará al gestor de arranque Optiboot. El cableado es el mismo que para el croquis del detector de chips. El código está en GitHub: nickgammon / arduino_sketches . Si hace clic en el botón Descargar en esa página, obtendrá una serie de bocetos útiles. El que desea se llama "Atmega_Board_Programmer".
Instale el boceto en su "bien conocido" Uno y conéctelo a la placa de destino con el cableado que se muestra anteriormente.
Abra el Monitor de serie en su "bueno" Uno y debería ver esto:
Escriba "U" para el cargador Uno (Optiboot).
Escriba "G" para programar el chip.
Debería ver:
Esto toma alrededor de un segundo. Ahora el gestor de arranque está instalado.
Problemas del temporizador de vigilancia
El temporizador de vigilancia (apagado por defecto) se puede configurar para reiniciar el procesador después de un cierto tiempo. La intención es recuperarse de un "bloqueo" para un procesador desplegado en el campo. Sin embargo, si el temporizador se configura por un período corto (como 16 ms), el procesador puede reiniciarse nuevamente antes de que el gestor de arranque tenga la oportunidad de hacer algo.
Los síntomas son que no puede cargar ningún boceto nuevo. Algunos cargadores de arranque modernos (como Optiboot) toman medidas para detener este problema como una de las primeras cosas que hacen. Sin embargo, otros no.
Esto puede ser difícil de recuperar, porque una vez que se ejecuta el boceto, tiene el problema de restablecerlo, y si tiene el problema no puede reemplazar el boceto. Las personas a menudo informan que tienen que grabar un nuevo gestor de arranque para recuperarse. Sin embargo, eso es solo porque, como efecto secundario, quemar un cargador de arranque borra el boceto actual.
No es una forma de recuperar. Sigue estos pasos:
Problemas con la carga Mega2560
Menciono esto aquí, a pesar de que esta publicación realmente está dirigida al tablero de Uno, porque es bastante común.
Algunas versiones del gestor de arranque Mega2560 buscan "!!!" en la carga entrante desde la PC, y si ven eso, ingrese al modo de depuración. Esto hace que la carga falle.
Código de ejemplo:
Soluciones:
O (más simplemente):
Problemas al subir a Leonardo / Micro / Esplora, etc.
Las placas con el ATmega32u4 como su procesador principal (y único) pueden ser más difíciles de cargar. Esto se debe a que el mismo chip tiene que manejar las cargas y también ejecutar su código.
Hay una pequeña ventana de oportunidad, después de reiniciar el tablero, cuando busca un nuevo boceto para cargar. La técnica para subir a estos tableros es:
Solo tiene un segundo para hacer esto, antes de que el viejo boceto comience a ejecutarse. No se desanime si tiene que repetir este proceso un par de veces. Eso es normal.
Referencias
fuente
Al menos, como supongo que carga su boceto a través de avrdude, brinde más información sobre el error de carga (por ejemplo, salida del cargador de bocetos) para que las personas aquí puedan ayudarlo mejor.
Además de la gran respuesta de Nick Gammon, busque signos de exclamación en su boceto. Si su boceto contiene una cadena con más de o igual a 3 signos de exclamación, la carga fallará, ya que las versiones antiguas del Arduino Bootloader interpretarán estos signos de exclamación como otra función y la carga se detendrá.
Un ejemplo para detener la carga:
Ver problema del código de Google .
fuente
He bloqueado 2x ATMega328P en mi placa Arduino Uno debido a la estática (creo).
La estática parece haber matado el pin TX y, por lo tanto, el programa no se puede descargar con el cable USB.
La solución más fácil es reemplazar el microcontrolador. Puede comprar un nuevo DIP ATMega328P programado con el gestor de arranque Arduino ( como este de Adafruit ) y está listo para comenzar de nuevo.
Alternativamente, aún puede programar los ATMega328P utilizando el programador AVRISPmkII. Cuando lo haces, todos menos el pin Tx funcionan bien.
fuente