Test de la liaison UART
Le GPS communique grâce à des trames NMEA qu'il transmet par une liaison UART.
Nous avons voulu savoir comment fonctionnait physiquement la liaison UART.
Pour cela nous avons transmis le caractère "a" et observé à l'oscilloscope la patte Tx d'un Arduino Uno.
Le code ASCII du caractère a est 97, soit 61 en hexadécimal, soit 0110 0001 en binaire.
Commentaire de l'oscillogramme obtenu :
- A : Bit de Stop de la trame précédente
- B : Bit de start de la nouvelle trame a = (MSB)0110
0001(LSB),
soit à l'envers (LSB)1000 0110(MSB) - les 4 bits de poids faible : C (LSB=1) D (0) E (0) F (0)
- les 4 bits de poids fort : G (0) H (1) I (1) J (MSB=0)
- K : Bit de Stop de la trame étudiée
arduino code
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
02
03
04
05
06
07
08
09
10
11
12
13
14
15
// Visualisation d'une trame série à l'oscilloscope void setup() { Serial.begin(8000); // Oscilloscope entre Tx->1 et GND calibre : 250 µs:div } void loop() { //Nous envoyons le caractère "a" code ASCII : 97d soit 61h soit 0110 0001b // suivi d'un caractère nul pour bien isoler le "a" à l'oscilloscope Serial.write(97); // idendique à Serial.print("a"); // Trame de 10 bits : Start : 0/LSB:1/0/0/0/0/1/1/MSB:0/Stop:1 // durée de transmission d'un bit : 1/8000 = 0,125 ms = 125 µs soit 1/2 div // durée de la trame : 10*0.125ms = 1,25 ms pour un octet soit 8000 octets à la seconde Serial.write(0); }