Estoy haciendo un dispositivo basado en el mcu ATSAM4S2B de Atmel, y quiero que el usuario pueda actualizar el firmware si lo desea. Para ello, deben poder borrar el flash para ingresar al cargador de arranque SAM-BA que puede flashear el chip a través de USB.
Al principio, iba a agregar un encabezado de pin en el tablero que puede usarse para cortar el pin de borrado a 3.3V moviendo un puente. Pero esto requiere que abran el caso para exponer el PCB, arriesgando el daño de ESD y aumentando el costo y así sucesivamente.
Así que pensé en codificar un borrado de software atando un pin GPIO al pin de borrado y configurándolo alto cuando se escribe un comando determinado a través de USB. Pero solo me dio una pausa ... ¿Es una buena idea? ¿Puede llevar al MCU a borrarse accidentalmente? Lo comprobé con un osciloscopio y los pines GPIO parecen emitir algo de voltaje durante unos 25 ms al encender y también un pequeño pico cuando se apaga. Sin embargo, la hoja de datos de la MCU dice que el pin de borrado se debe al reloj del sistema y también debe mantenerse alto durante al menos 200 ms para activarlo. Entonces, en teoría, debería estar bien, pero no puedo evitar pensar que me podría estar perdiendo algo. ¿Alguien puede ofrecer alguna idea?