Objetivos
Material requerido.
Tienda España | ||
---|---|---|
Arduino UNO | ||
ATMEGA328 |
Arduinos que no funcionan
Por lo que suelo ver, la mayor parte de los que nos gusta enredar con esto de la electrónica y los Arduinos solemos ser gente entre desordenada y caótica, pasando por diferentes grados de desequilibrio mental.
Y claro, pretender que tengas la mesa limpia y pulcramente dispuesta es algo que no suele estar a nuestro alcance, lo que acaba conllevando no solo caos de nuestro laboratorio sino también mas de un cortocircuito provocado por algún cable que anda rodando por la mesa con la lamentable muerte prematura dé componentes valiosos.
Naturalmente con el fin de año hacemos propósitos de enmienda y de ser mas ordenados el año que viene, pero al final la vida es como es, y si nosotros fueran serios y ordenados habríamos estudiado algo presentable como derecho o contabilidad y no electrónica o informática.
Así que al final solemos tener por algún cajón restos de varios componentes en diversos grados de destrozo que se supone que en algún omento recuperaremos para piezas o algún proyecto loco que ya se nos ocurrirá. Y entre ellos yo tengo media docena de Arduinos UNO que no funcionan y que llevaba tiempo queriendo revisar para cambiarles el chip a ver que tal y mira ha llegado el momento.
Vamos a ver en esta humilde sesión como hacer para cambiar el chip ATmega 328 que es el corazón de nuestro Arduino UNO R3, para intentar recuperar esa placa que todos tenemos tirada por ahí a la espera de una oportunidad para revisarla.
Como los UNOs son de bajo coste al final acabamos comprando otro pero no esta de mas saber como cambiar y reprogramar el chip para salvar alguna de nuestras viejas placas y en especial en centros educativos, que yo se que suele haber cajones llenos de Arduino fundidos por alumnos atolondrados.
Es algo sencillo y mucho menos complicado de lo que solemos pensar, así que confío que esta sesión sirva para evitar que vayan a la basura muchas placas que seguramente son recuperables.
Recuperando Arduinos UNO R3
Como todos sabéis el corazón del Arduino UNO es el chip grande que se ve en la foto:
Es un procesador ATmega de la serie 328, que incluye todas las características de nuestros queridos Arduinos y que como podéis observar viene montado en un zócalo para que se pueda sustituir cuando sea necesario.
¿Y porqué se han tomado las molestia los diseñadores de montarlo en zócalo para que se pueda sustituir? Pues sencillamente porque cualquier error o problema (Como cortos y similares) puede acabar friendo el chip integrado y vieron interesante que se pudiera cambiar.
En realidad, solo hay dos problemas serios en nuestros Arduinos UNO:
Si quemamos el integrado principal ATMEGA328, basta con reemplazarlo y listo , para eso esta el zócalo, pero si quemamos el controlador de comunicaciones, entonces si que tenemos que tirar la placa porque este chip esta soldado a la placa por SMD y no hay forma de cambiarlo (Podéis verlo justo a la derecha del conector de USB en la foto superior)
¿Basta entonces con reemplazar el chip para probar? Pues no. Eso seria demasiado fácil.Hay que reemplazar el chip y asegurarte de que este tiene cargado el bootloader de Arduino.
¿El que? Diréis. Verás, lo que le permite ejecutar programas de Arduino a nuestras placas es un pequeño programa instalado en el arranque del microprocesador que cuando encendemos lanza el ultimo programa instalado pero a la vez controla si estamos queriendo instalar otro programa nuevo y en caso afirmativo lo recibe y guarda.
Este pequeño programa es lo que se llama el Bootloader y es una de las cosas por los que Arduino es tan sencillo de usar. Por eso para que el chip se comporte como un Arduino necesitamos asegurarnos de que el bootloader este instalado porque si no, no vamos a comernos una rosca.
Algunos proveedores te suministran el chip ATMEGA328 (Nosotros mismos vaya) unas veces vacío y otras con el bootloader ya programado. Pero como a nosotros nos va enredar y los chips cargados valen el doble que los que no, vamos a dedicar esta sesión a ver como cambiamos el chip y como podemos programarlo nosotros mismo para que tenga el arranque necesario.
Detectando la averia
Como ya decíamos antes, para saber si podemos reparar nuestro antiguo Arduino UNO cambiando el chip tenemos que conectar el Arduino dañado a nuestro PC e ir al menú de herramientas\Puerto COM:
Si con el Arduino conectado, no te lo vé, o sea no te aparece aquí el puerto diferente del COM1, la cosa tiene mal arreglo porque todo apunta a que tienes quemado el chip USB y eso no se puede sustituir.
Si por el contrario si te reconoce el puerto serie (Digamos como COM4 o así) tenemos muchas posibilidades de recuperar la placa sin mas que cambiar el procesador y cargarle el bootloader.
Hay dos maneras básicas de grabar el bootloader en un chip Atmega328:
Conectando y programando el chip
Los fabricantes de microprocesadores proporcionan siempre un sistema mas o menos sencillo, de programar sus chips sin grandes requerimientos de hardware. En el caso de ATMEL que es quien fabrica los chips de Arduino, propone un sistema básico de programación llamado ICSP (In Chip Serial Programmer) que es básicamente una puerta serie con algo mas, que podemos usar para cargar el famoso bootloader del que os llevo hablando ya un rato.
Y (Sorpresa) vuestro Arduino UNO incluye una puerta con este interface, que podemos usar para programar el chip, a la parte de la derecha y que increíblemente esta rotulada como ICSP:
La idea es que vamos a usar un Arduino UNO que funcione correctamente para reprogramar el nuevo chip a través del conector ICSP del Arduino dañado.
Para eso tenemos que empezar por sacar el chip del Arduino dañado y reemplazarlo con un nuevo chip en buenas condiciones. Como no estoy muy seguro de si sois unos manazas conviene tener algunas consideraciones previas para evitar que destrocéis el chip al meterlo o sacarlo.
En un capitulo previo mostramos como meter y sacar estos chips, y os recomiendo que lo reviséis si es la primera vez, pero a grandes rasgos os repito aquí el procedimiento:
Para sacar el ATMEGA328 del zócalo:
Aquí os dejo un pequeño video de la operación de sacar el chip, por si a alguno os da un ataque de pánico, veréis que no es nada complicado, ni peligroso para vuestro Arduino si tenéis una mínima precaución.
Y para dejar el trabajo hecho, aquí os dejo un mini video mostrando como se vuelva a insertar cuando acabemos con el:
Una vez que hayas cambiado el procesador, tenemos que hacer las algunas conexiones entre las placas (Pocas), Si llamamos Master es el Arduino funcional y Slave al que queremos programar el bootloader, podemos aplicar el siguiente esquema:
Programando el chip
Vale pues, solo nos queda programar el bootloader y eso, queridos amigos, es la parte mas fácil.
Conecta el master al USB y arranca el IDE Arduino. Asegúrate de tener seleccionado la puerta y modelos correctos de tu Arduino en el menú de herramientas
- Para los que van a por nota: Cuando seleccionas el modelo de placa arduino aquí se refiere a la placa a la que vas a programar el boot (Slave) y no a la que programa (Master) como es habitual.
- Podría ocurrir que estuvieras intentando reprogramar el boot de un modelo diferente digamos de un MEGA mediante un UNO como ISP y entonces seleccionarías aqui el modelo MEGA.
El programa para quemar el boot en nuestros Arduino viene incluido en los ejemplos, con el nombre ArduinoISP. Cárgalo
Una vez cargado el programa del grabador seleccionamos en herramientas la opción
\\herramientas|\Programador Arduino as ISP\Arduino as ISP
Y finalmente, ya solo queda iniciar la grabación del bootloader con la orden de quemar el boot:
Enseguida veréis que hay una serie de luces moviéndose y veréis un mensaje en la parte inferior como este:
Finalmente obtendréis el mensaje de que se ha completado el quemado:
Y eso es todo. Ya podeis desenchufar, soltar todos los cables y probad vuestro nuevo Arduino uno recuperado si todo ha ido correctamente. Probad a grabar algo y ya me direís.
Resumen de la sesión