usb-native.ino
La Due tiene dos conectores USB: Programming (puente 16U2) y Native, conectado directamente al SAM3X. SerialUSB es un segundo puerto serie, y while(!SerialUSB) evita perder los mensajes de arranque.
Hardware necesario
Un Arduino Due (AT91SAM3X8E, ARM Cortex-M3 a 84 MHz) conectado por USB a su puerto « Programming ». Ojo: lógica de 3,3 V, nunca 5 V en los pines. Un segundo cable USB (o el mismo PC con dos puertos).
Cableado
Cable USB del puerto Native al ordenador; el puerto Programming puede quedarse conectado.
Funcionamiento
El SAM3X enumera un dispositivo CDC; SerialUSB.print escribe en él. Sin terminal abierto la espera bloquea: de ahí el while. En el Arduino IDE, elija « Arduino Due (Programming Port) » y Subir; el monitor serie va a la velocidad fijada en el código.
Para ir más lejos
Native sirve también al bootloader DFU y a puentes USB ↔ otro UART para instrumentos.
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);
}