🛠 Sauver une Due invisible : bouton Erase, SAM-BA et bossac en secours

Arduino Due · avance · Schéma : IMG-due-avance-3-reparer-due-bouton-erase-sam-ba.svg — Arduino Due vue de dessus avec les boutons RESET et ERASE surlignés près du connecteur ICSP/JTAG, port Programming relié au PC, étapes numérotées maintenir ERASE puis téléverser, et outil SAM-BA en secours.

Objetivos

Contraintuitivo pero documentado: a diferencia de los AVR, el SAM3X debe BORRAR su flash antes de cualquier reprogramación cuando ya se está ejecutando un sketch. Normalmente, el IDE se encarga de esto mediante el comando de 1200 baudios (el «touch» que hace que la tarjeta vuelva al bootloader sam-ba). Pero cuando la tarjeta se vuelve invisible —sin puerto de Programación, sin puerto Nativo, un sketch errático que apaga el USB desde el arranque— es necesario seguir el procedimiento manual: botón Erase + bossac o SAM-BA. Este tutorial es la garantía antipánico para todos los demás.

Material

Código completo

Procedure 1 — reprogrammation manuelle au bouton Erase
1. Brancher le port Programming au PC ; verifier qu'un port serie apparait.
2. Maintenir le bouton ERASE enfonce.
3. Tout en maintenant ERASE, lancer Televerser dans l'IDE.
4. Relacher ERASE quand la progression demarre (le bootloader efface
   puis ecrit). Le sketch precedent est perdu, le nouveau prend la main.

Procedure 2 — bossac en ligne de commande (equivalent de l'IDE)
bossac --port COM7 -b -e -R -U flash:w:sketch.bin:i
#  -b reset vers le bootloader, -e efface la flash, -R relance apres ecriture

Procedure 3 — carte totalement invisible (bootloader brické)
1. Tester un autre cable (la cause n°1 reste le cable de charge seule).
2. Sur les clones, verifier la puce du port Native : televerser via
   Programming (16U2 ou equivalent), le Native peut etre inerte.
3. En dernier recours, lancer SAM-BA sur l'UART du port Programming
   (moniteur ROM present a l'adresse 0x00030000 du SAM3X) et effacer
   la flash depuis l'outil, puis re-téléverser normalement.
4. Le connecteur JTAG permet aussi une reprise par sonde (OpenOCD).

Sketch de test « je suis vivant » a televerser apres recuperation :
void setup {
  pinMode(13, OUTPUT);
  Serial.begin(115200);      // port Programming
  SerialUSB.begin(115200);   // port Native
  Serial.println("Due recuperee !");
}
void loop {
  digitalWrite(13, HIGH); delay(100);
  digitalWrite(13, LOW);  delay(100);
  Serial.print(".");
}

Verificación esperada

Después del procedimiento 1 o 2, la carga del programa finaliza sin errores de bossac y el sketch de prueba hace parpadear rápidamente el LED 13 mientras escribe puntos en el puerto de Programación. En el procedimiento 3, SAM-BA detecta el SAM3X en la UART (a 1300000 baudios o a la velocidad propuesta por la herramienta) y lo borra; la tarjeta vuelve a aparecer en el IDE.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales