pont-usb-serial1.ino

Arduino Due · Fichier : pont-usb-serial1.ino · Langage : Arduino · Usage : Relayer l'UART1 vers le port USB pour debugger un module série

Avant d'écrire un pilote, il faut voir ce que dit le module : ce pont recopie tout entre l'UART1 et l'USB, dans les deux sens — on peut donc aussi taper des commandes AT. Le grand classique de la mise au point GSM/GPS.

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. 1 module série 3,3 V (GPS, SIM800/900 niveau adapté).

Branchement

TX module → 18 (RX1), RX module → 19 (TX1), masses communes ; alimenter le module séparément si pic de courant.

Fonctionnement

Deux boucles while recopient les octets dans chaque sens ; aucun tampon logiciel n'est nécessaire grâce au FIFO UART. 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

Ajoutez un commutateur de débit (76800 pour SIM800) ou filtrez les préfixes pour n'afficher que les trames utiles.

pont-usb-serial1.ino

// Pont Serial1 (GPS, GSM...) <-> USB : ce que dit le module s'affiche.
void setup() {
  Serial.begin(9600);  // port USB (Programming ou Native)
  Serial1.begin(9600); // broches 19/18
  Serial.println(F("Pont Serial1 <-> USB (9600)"));
}

void loop() {
  while (Serial1.available()) {
    Serial.write(Serial1.read()); // module -> moniteur
  }
  while (Serial.available()) {
    Serial1.write(Serial.read()); // clavier -> module (commandes AT)
  }
}

← Retour à la fiche