Utiliser des cartes à microcontrôleurs comme bridge USB‑RS232

L’idée est de déterminer s’il est possible de remplacer un bridge USB-RS232 (UART) par une carte à microcontrôleur comme le Launchpad, l’Arduino Nano ou l’ESP8266. Elle m’a été inspirée par cette réponse sur StackExchange.

Essai avec Launchpad

Programmation des Launchpad

/*
  serial_end.ino

  Ce programme arrête la gestion du port série par le
  microcontrôleur. Contrairement à ce que suggère la
  documentation¹, cela permet d’envoyer RX et TX depuis l’USB vers
  les pins correspondantes sans pertes. Si on n’arrête pas
  le port série, il se peut que des caractères ne soient pas
  transmis, mais ce comportement n’est pas reproductible et ce
  programme permet de rendre le comportement fiable.

  ¹ https://www.arduino.cc/en/Serial/End
*/

void setup()
  { Serial.end(); }
void loop()
  {}

Branchements

  • Deux Launchpad avec RX connecté à TX et inversement TX à RX.
  • GND connecté à GND.
  • Les cavaliers RXD et TXD connectés horizontalement (mode HW UART selon le pictogramme à côté des cavaliers).

Branchement des Launchpad

Résultats

On peut envoyer des commandes d’un Launchpad vers l’autre via CoolTerm. Malheureusement, même si on modifie la vitesse de transmission dans CoolTerm, elle reste à 9600 bauds entre les deux Launchpad. J’ai vérifié ça avec un analyseur logique.

CoolTerm Launchpad 1

CoolTerm Launchpad 2

Scanalogic entre les Launchpad

Sans le microcontrôleur

Et ça fonctionne aussi sans le microcontrôleur.

Branchement des Launchpad sans MSP430

Essai avec ESP8266-12E — Test 1

Programmation des ESP8266-12E

Idem que pour les Launchpad (programme serial_end.ino)

Branchements

  • Deux ESP8266-12E avec RX connecté à TX et inversement TX à RX.

Branchement des ESP8266-12E

Résultats

On peut envoyer des commandes d’un ESP8266-12E vers l’autre via CoolTerm. Contrairement aux Launchpad, on peut modifier la vitesse de transmission dans CoolTerm et la vitesse de transmission entre les deux ESP8266-12E change aussi. Encore une fois j’ai vérifié ça avec un analyseur logique.

9600 bauds

Scanalogic entre les ESP8266-12E 9600 bauds

115200 bauds

Scanalogic entre les ESP8266-12E 115200 bauds


Essai avec ESP8266-12E — Test 2

La différence entre le test 2 et le test 1, c’est que j’ai connecté la broche RST au GND. Pour vérifier que les ESP ne démarrent pas, j’ai chargé le programme blink.ino.

Programmation des ESP8266-12E

Avec blink.ino

Branchements

  • Deux ESP8266-12E avec RX connecté à TX et inversement TX à RX.
  • RST connecté à GND

Branchement des ESP8266-12E

Résultats

Idem que pour le test 1.