pont-usb-serial1.ino
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)
}
}