🛠 Premiers pas sur le Teensy 4.0 : Teensyduino, Loader et premier Blink

Teensy 4.0 · debutant · Schéma : IMG-teensy-40-debutant-1-teensy40-premiers-pas-blink.svg — Teensy 4.0 vue de dessus (format 1,4 × 0,7 pouce, même empreinte que le Teensy 3.2), flèches sur la LED orange (pin 13), le bouton Program, la LED rouge du bootloader et le port micro-USB ; à côté, la fenêtre Teensy Loader.

Objectifs

Apprivoiser la carte la plus rapide de sa catégorie : le Teensy 4.0 embarque un NXP MIMXRT1062DVL6 (Cortex-M7 à 600 MHz, officiellement overclockable à 912 MHz) dans le tout petit format 1,4 × 0,7 pouce des Teensy 3.x. Ce premier tutoriel pose les fondations : installer l'environnement Teensyduino, téléverser un Blink, comprendre l'écosystème Teensy Loader + bouton Program (la carte n'a PAS de reset matériel !), et mesurer la vitesse réelle des broches avec le compteur de cycles.

Matériel

Installation et téléversement

  1. Installez l'add-on Teensy via https://www.pjrc.com/teensy/td_download.html (les alternatives officielles : PlatformIO, Visual Micro, et le Makefile en ligne de commande fourni avec Teensyduino).
  2. Dans l'IDE : Tools > Board > Teensy > Teensy 4.0, puis Tools > USB Type > Serial (la liste est longue : MIDI, Keyboard, Mouse, Audio, MTP, RawHID…).
  3. Cliquez sur Upload : Teensy Loader se lance automatiquement. S'il ne détecte pas la carte, appuyez sur le bouton Program de la carte — ce n'est PAS un bouton reset, il demande le mode programmation par USB.
  4. La LED rouge indique l'état du bootloader : faible = en attente, vive = écriture flash en cours.

Point d'architecture capital : le bootloader vit dans une puce physiquement séparée (une GD32E230F8 sur les cartes après juin 2022). Le flash principal est 100 % à vous et le téléversement ne peut pas le détruire. En revanche, il n'existe aucune broche de reset matérielle : on ne réinitialise que par watchdog logiciel ou via le registre SCB_AIRCR.

Code complet

// Blink + mesure réelle de la vitesse GPIO via le compteur de cycles
// 32 bits ARM_DWT_CYCCNT, incrémenté à la fréquence CPU (600 MHz).
void setup {
  Serial.begin(9600);            // série USB : le baud est ignoré
  pinMode(13, OUTPUT);           // LED orange (JAMAIS en INPUT_PULLUP :
                                 // la LED polarise la broche)
}

void loop {
  uint32_t start = ARM_DWT_CYCCNT;         // instantané du compteur
  for (int i = 0; i < 100000; i++) {
    digitalToggle(13);                     // écriture broche la plus rapide
  }
  uint32_t cycles = ARM_DWT_CYCCNT - start;
  Serial.printf("moyenne %u cycles par bascule\n", cycles / 100000);
  delay(1000);
}

Vérification attendue

La LED orange clignote (visuellement presque éteinte : la boucle bascule la broche des millions de fois par seconde, digitalToggle se compile en une seule écriture de bit). Le Moniteur série affiche le nombre de cycles par bascule — à 600 MHz, une dizaine de cycles correspond à un signal de plusieurs dizaines de MHz sur la broche. C'est la démonstration immédiate de la puissance du M7 double-émission avec prédiction de branches et mémoire TCM.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels