usb-native.ino

Arduino Due · Fichier : usb-native.ino · Langage : Arduino · Usage : Utiliser le port USB Native pour un second port série indépendant

La Due possède deux connecteurs USB : le Programming (pont 16U2) et le Native, relié directement au SAM3X. SerialUSB crée un second port série, et le while(!SerialUSB) évite de perdre les messages d'amorçage.

Matériel requis

Une Arduino Due (AT91SAM3X8E, ARM Cortex-M3 84 MHz) reliée par USB à son port « Programming ». Attention : logique 3,3 V, jamais 5 V sur les broches. Un second câble USB (ou le même PC avec deux ports).

Branchement

Câble USB entre le port Native et l'ordinateur ; le port Programming peut rester branché.

Fonctionnement

Le SAM3X énumère un périphérique CDC ; SerialUSB.print écrit dessus. Sans terminal ouvert, l'attente bloque — d'où le while. Dans l'Arduino IDE, choisissez « Arduino Due (Programming Port) » puis Téléverser ; le moniteur série tourne à la vitesse choisie dans le code.

Pour aller plus loin

Le Native sert aussi au bootloader par DFU et aux ponts USB ↔ autre UART pour les instruments.

usb-native.ino

// Le SAM3X possede un USB device natif : SerialUSB = port "Native".
// Sur le port Native, il faut attendre l'ouverture du terminal.

void setup() {
  Serial.begin(9600);      // port Programming (ATmega16U2)
  SerialUSB.begin(9600);   // port Native (SAM3X direct)
  while (!SerialUSB);      // attend qu'un terminal ouvre le port Native
}

void loop() {
  SerialUSB.println(F("Bonjour depuis l'USB natif"));
  Serial.println(F("Idem depuis le port Programming"));
  if (SerialUSB.available()) {
    Serial.write(SerialUSB.read()); // Native -> Programming
  }
  delay(1000);
}

← Retour à la fiche