Vous êtes sur la page 1sur 5

Activités pratiques TP INIT

Activités pratiques
Arduino - UART
Le logiciel Proteus permet de simuler le fonctionnement en temps réel de certains microcontrôleurs.
C'est le cas du ATMEGA328P qui équipe la carte Arduino Uno.
L'objectif de ce TP est de mettre en œuvre l'UART du microcontrôleur et de relever les signaux
RX et TX.

1 – Analyse du fonctionnement
Soit le programme suivant :

/************************************************************************************
Programme Test UART (RX/TX)
************************************************************************************/

// Définitions pins
// ...rien à définir ici

// Déclaration des variables globales

byte i = 48; // Déclaration d'une variable i sur un octet (byte)

/************************************************************************************/
void setup() // Initialisations
{
Serial.begin(9600); // Initialisation de l'UART par défaut :
// 9600 bauds, 8 bits, pas de parité, 1 bit de stop

Serial.println("Bonjour");
delay(100);
Serial.println(" les Spe SI ");
delay(200);

}
/************************************************************************************/
void loop() // Programme principal (boucle infinie)
{
do // Faire...
{

Serial.write(i); // écrire la valeur de i


delay(2000); // attendre 100ms
i++; // incrémenter i (i=i+1)

} while( i <82 ); // ...tant que i inférieur à 82

i=48;

}
/************************************************************************************/

Rascol Initiation Arduino 1/5


Activités pratiques TP INIT

 Compléter l'algorigramme du programme :

début

Initialisation
Initialisation de
de l'UART
l'UART

...
...

attendre
attendre 100ms
100ms

...
...

attendre
attendre 200ms
200ms

...
...

...
...

...
...

oui
...
...

...

...
...

 Indiquer ce que le moniteur série afficherait si on exécutait ce programme.

Rascol Initiation Arduino 2/5


Activités pratiques TP INIT

2 – Validation du fonctionnement

Créer un dossier TP UART dans votre espace personnel.


 Exécuter à partir du fichier UARTV1.pdsprj fourni.

 Lancer la simulation en temps réel et valider le fonctionnement.

3 – Analyse du signal TX (ou TXD)


Le signal TXD (émission) du microcontrôleur est connecté à l'entrée RXD (réception) du
moniteur série. Le microcontrôleur envoie les données en série : les 0 et 1 sont envoyés les uns
après les autres.

 En vous aidant des commentaires du programme, préciser les paramètres de la


transmission pour l'envoi d'un octet :
Vitesse de transmission
Nombre de bits de données
Parité (paire, impaire, aucune)
Nombre de bits de stop

 Calculer la durée d'émission d'un bit.


 Pour les valeurs suivantes 48, 62, 65 :
Dessiner les chronogrammes (captures d’écran) de l’oscilloscope,
Justifier les valeurs des symboles imprimés sur le « Virtual Terminal » à partir de la table
ASCII fournie ci-dessous.
Retrouver et justifier sur les chronogrammes de l’oscilloscope les différents bits composants
les octets transmis sur le port série.
Rédiger un document informatique de synthèse à ce TP.

ANNEXE 1

Transmission RXD/TXD
Les paramètres déterminants d'une transmission RXD/TXD sont :

Le signal au repos (pas de transmission) est à l’état 1.


bit de start
Le passage à l’état 0 (start) de la ligne va indiquer qu’un envoi va débuter.
longueur de la
7 bits ou 8 bits (code ASCII). Les bits sont transmis LSB en premier.
donnée transmise
vitesse de
1 baud = 1 bit/seconde.
transmission
La donnée transmise peut être suivie ou non d’un bit de parité qui sert à
détecter les erreurs éventuelles de transmission.

bit de parité Il existe deux types de parité : paire ou impaire :


 Si on fixe une parité paire, le nombre total de bits à 1 transmis (bit de
parité inclus) doit être paire.
 C’est l’inverse pour une parité impaire.
après la transmission, la ligne est positionnée à un niveau 1 pendant un
bit(s) de stop
certain nombre de bit afin de spécifier la fin du transfert.

Rascol Initiation Arduino 3/5


Activités pratiques TP INIT

Exemple :

transmission d’une donnée sur 7 bits (0010110)2 – Parité impaire – 1 bit de Stop

tb
bit de bit de
repos Start Stop repos
TXD de
l'émetteur
0 1 1 0 1 0 0
LSB MSB

bits de la donnée transmise parité

En l’absence de transmission, le signal est au repos au niveau logique 1.


Une transmission s’effectue de la manière suivante :
 L’émetteur en voie un bit 0 : c’est le bit de start.
 Les bits sont transmis les un après les autres, en commençant par le bit de poids faible.
 Le bit de parité* est éventuellement transmis.
 L’émetteur positionne la ligne à l’état 1 : c’est le bit de stop.

Vitesse de transmission : v = 1/tb (en bits/s, ou bauds)

* Dans l'exemple ci-dessus c'est une parité impaire qui a été choisie. Comme il y a 3 bits à 1 dans
la donnée, le bit de parité doit être à 0 pour que le nombre total de bits à 1 (parité incluse) soit
impair.

Intérêt du bit de parité : l'émetteur calcule et fixe la valeur du bit de parité dans la transmission. Le
récepteur reçoit la donnée, re-calcule la valeur de ce bit et il la compare à celle qui a été envoyée.
Si ces valeurs sont différentes, c'est qu'il y a eu une erreur de transmission.

Rascol Initiation Arduino 4/5


Activités pratiques TP INIT

ANNEXE 2

Rascol Initiation Arduino 5/5

Vous aimerez peut-être aussi