🛠 Dual-core M7+M4 et récupération DFU

Arduino GIGA R1 WiFi · avance · Schéma : IMG-giga-r1-wifi-avance-9-dual-core-dfu.svg — STM32H747 de la GIGA R1 WiFi décortiqué : cœur Cortex-M7 480 MHz et cœur Cortex-M4 240 MHz échangeant par RPC, module radio 1DX à côté, et flux de récupération par USB DFU vers l'ordinateur

Objectifs

Exploiter les deux atouts « système » de la GIGA R1 WiFi : le dual-core réel du STM32H747XI (Cortex-M7 jusqu'à 480 MHz + Cortex-M4 jusqu'à 240 MHz, programmables séparément — par exemple Arduino sur l'un, MicroPython sur l'autre, avec RPC entre les deux) et la récupération par DFU natif quand un téléversement rate ou que le firmware du module radio 1DX est brické. Vous saurez remettre une carte briquée sur pied.

Matériel

Code complet

Sketch cœur M7 (côté Arduino) — le cœur M4 se programme séparément (MicroPython ou second core) :

// GIGA R1 WiFi — preuve de vie du coeur M7 + coordination avec le M4
// Le M7 (480 MHz) gere ici le WiFi et la console ; le M4 (240 MHz), programme
// separement (ex. MicroPython officiel), communique avec lui par RPC selon la
// section "Dual Core" de docs.arduino.cc/hardware/giga-r1-wifi.
#include <WiFi.h>

void setup {
  Serial.begin(115200);              // console sur M7
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.println("M7 actif — en attente du M4 (flasher MicroPython a cote)");
  WiFi.begin("your-ssid", "your-pass");
}

void loop {
  static unsigned long t = 0;
  if (millis - t > 1000) {         // heartbeat 1 Hz sur M7
    t = millis;
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    Serial.print("M7 up, WiFi=");
    Serial.println(WiFi.status == WL_CONNECTED ? "OK" : "...");
  }
}

Récupération DFU (terminal, carte en bootloader) :

# Entrer en bootloader : double-tap sur le bouton reset (touche 1200 bps)
# ou via la commande de reboot du core. Le device passe en PID 0x0366.
dfu-util -l                                   # liste : VID 0x2341, PID 0x0366 attendu
dfu-util -a 0 -s 0x08000000:leave -D firmware.bin   # reflash du binaire du core
# Firmware radio 1DX brické (plus de WiFi du tout) : lancer le sketch
# FlashFormat fourni avec le core pour restaurer le module.

Vérification attendue

Le sketch M7 fait clignoter la LED à 1 Hz et annonce l'état WiFi. En flashant MicroPython sur la carte selon la procédure officielle, l'interpréteur répond sur une console indépendante — la preuve que les deux mondes coexistent (les exemples de RPC M7↔M4 de la doc Arduino fonctionnent par-dessus). En mode DFU, dfu-util -l liste bien un périphérique 2341:0366, et le reflash ramène une carte qui refusait de téléverser.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels