usb-native.ino
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);
}