Resulta que el pasado Open de Yecla, un compañero actualizó un chip, pero el proceso salió fallido (creo que era un B2). El pasado sábado 18 de enero de 2020, actualicé el firmware de mi chip (B1) y también falló. Ambos chips ahora son irrecuperable (de momento) dado que el programa Bootloader de slot.it no conecta con los chips.
Ahora un poco de conocimientos teóricos de software embebido. El microcontrolador de mi chip (creo que es un B1) es un ATmega 168PA. Mirando el datasheet (hoja de especificaciones) vi esto:
"The Flash memory is organized in two main sections, the Application section and the Boot Loader section" Es decir, la memoria de programa del microcontrolador está dividida en dos partes. La parte de la aplicación (es decir, el programa que hace posible que controlemos el cochecito desde el mando) y la parte del bootloader (el programa para hacer posible que pongamos tal o cual firmware).
Cuando ponemos el coche en la pista, el PC (Program Counter, que es un numerito el cual nos dice que dirección de memoria se tiene que ejecutar, o mal dicho, que linea de programa se tiene que ejecutar) apunta a la primera instrucción de la memoria de aplicación. Es decir, vamos a poder usar el chip para jugar con él
Cuando ponemos el modo bootloader, el PC apunta a la primera instrucción de la memoria de bootloader, es decir, vamos a poder actualizar el firmware.
También he visto que para que el microcontrolador acceda a la memoria de bootloader, se debe ejecutar un comando desde el puerto serie (Esto para un usuario normal, es ejecutar el programa de slot.it y seguir las instrucciones que el mismo programa dice)
La cosa es que la parte del bootloader está protegida y posiblemente no puede (ni debe) reescribirse, porqué si se reescribe y falla el proceso, tenemos un chip que no es posible ya nunca actualizarlo y posiblemente tampoco funcione.
Pues bueno, pese a estar el programa Bootloader "protegido" contra escrituras, el chip no entra nunca en modo bootloader ni tampoco se puede jugar con él.
Me da la sensación que la memoria del chip ha quedado corrompida, a alguien le ha pasado lo mismo?
Para solucionarlo se podría hacer:
- comprar un microcrontrolado nuevo (precio aprox de 2€ https://es.rs-online.com/web/p/microcon ... s/1278265/).
- Desoldar el microcontrolador viejo.
- fabricar un zócalo para programarlo.
Al menos tenemos la suerte de disponer del binario.
Lo primero es fácil, lo segundo... hace falta instrumental para llevarlo a cabo
![Sad :-(](./images/smilies/icon_e_sad.gif)
No espero que nadie encuentre la solución (o sí). Espero que slot.it tenga en cuenta que sus chips fallan, y la solución no es comprar uno nuevo, sino la reparación, ya que seguro que saben como y tienen el instrumental para hacerlo y no tarden más de un año de devolverlos.