pont-usb-serial1.ino

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

Antes de escribir un driver hay que ver qué dice el módulo: este puente copia todo entre UART1 y USB en ambos sentidos, así que también puede escribir comandos AT. El clásico del puesta a punto GSM/GPS.

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. 1 módulo serie de 3,3 V (GPS, SIM800/900 al nivel adecuado).

Cableado

TX módulo → 18 (RX1), RX módulo → 19 (TX1), masas comunes; alimente el módulo aparte si tiene picos.

Funcionamiento

Dos bucles while copian bytes en cada sentido; sin búfer de software gracias al FIFO del UART. 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

Añada un conmutador de velocidad (76800 para SIM800) o filtre prefijos para ver solo lo útil.

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)
  }
}

← Volver a la ficha