0% ont trouvé ce document utile (0 vote)
2 vues2 pages

Guide sur la communication RS232 EUSART

Le document traite de la communication série RS232 via le module EUSART, en se concentrant sur la communication asynchrone. Il décrit la configuration des registres nécessaires pour l'initialisation, la transmission et la réception des données, ainsi que les options de Baud rate. Des exercices pratiques sont proposés pour tester et implémenter des programmes utilisant ce module, incluant la gestion des interruptions et un bonus sur l'autodétection du Baud Rate.

Transféré par

charbelnahal
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues2 pages

Guide sur la communication RS232 EUSART

Le document traite de la communication série RS232 via le module EUSART, en se concentrant sur la communication asynchrone. Il décrit la configuration des registres nécessaires pour l'initialisation, la transmission et la réception des données, ainsi que les options de Baud rate. Des exercices pratiques sont proposés pour tester et implémenter des programmes utilisant ce module, incluant la gestion des interruptions et un bonus sur l'autodétection du Baud Rate.

Transféré par

charbelnahal
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Communication série RS232

EUSART
C’est le plus simple et le plus utilisé pour avoir accès à un système embarqué par un PC (pour analyse,
paramétrage, envoie de commande à partir d’un interface graphique, …). Avec le module « Enhanced
Universal Synchronous, Asynchronous Receiver Transmitter (EUSART) », c’est possible de réaliser la
communication RS232 synchrone ou asynchrone. Nous allons nous limiter à la communication
asynchrone.
Ce module est configuré par les registres TXSTA, RCSTA, BAUDCON. La transmission et la réception
est fait octet par octet, en utilisant les registres TXREG et RCREG respectivement. Ensemble avec
BAUDCON, les valeurs des registres SPBRGH et SPBRG permet de régler le taux de transmission
(Baud rate). Les registres de configuration sont présentés ci-dessous, veuillez consulter le datasheet
(chapitre 20) pour les fonctionnes particuliers de chaque bit.
TXSTA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CSRC TX9 TXEN Sync SENDB BRGH TRMT TX9D

RCSTA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
SPEN RX9 SREN CREN ADDEN FERR OERR RX9D

BAUDCON
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ABDOVF RCIDL RXDTP TXCKP BRG16 - WUE ABDEN

Utilisation
L’initialisation consiste en le paramétrage de SPBRG (et si nécessaire, SPBRGH) et BAUDCON afin
de déterminer le Baud rate en fonction de la fréquence de l’oscillateur du µC, et la configuration des
TXSTA et RCSTA. La transmission se fait par l’écriture d’octet à envoyer dans le registre TxREG. Un
octet reçu est trouvé dans le registre RxREG.
Baud rate :
Le Baud Rate Generator (BRG) est un contrôleur de vitesse 8 bit ou 16 bit, dédié au module EUSART.
Le bit BRG16 du registre BAUDCON permet de choisir entre la mode 8 et 16 bit. En mode 8 bit, seul
le registre SPBRG est utilisé pour régler le Baud rate. Le mode 16 bit nécessite SPBRGH aussi. De plus,
le bit BRGH permet de choisir la mode Highspeed qui permet de profiter des oscillateurs à haute
fréquence afin d’avoir une communication plus rapide. Selon la configuration de BRG16 et BRGH,
ainsi que la fréquence d’oscillateur, les valeurs à mettre dans les registres SPBRG et SPBRGH sont
déterminés soit par les formules données dans la table 20-1 du datasheet, soit par les abaques de la table
20-3. Ex : avec BRGH et BRG16 à 0, et un oscillateur de 8MHz,
Connection physique :
Les pins C6 et C7 constituent les connections TX et RX pour le µC. Il faut les configurer en tant
qu’entrées (TRISCBits.RC6 et RC7 = 1). Le module EUSART s’en occupe de la mise en sortie du
TX quand nécessaire.
Note : La parité n’est pas soutenue par ce module, mais elle pourrait être implémentée en firmware en
utilisant les bits TX9D et RX9D des registres TXSTA et RCSTA.
Interruptions :
La transmission et la réception peuvent évoquer des interruptions indépendamment, s’ils sont activés
par TXIE et RCIE (voir la partie interruptions). Ils sont identifiés par des flags TXIF et RCIF. Ces flags
sont activés pour une cycle même si les interruptions sont elles-mêmes désactivées.
Exercices :
1. Prenez le temps de bien comprendre la fonction des registres à l’aide de datasheet. Puis, réalisez
et testez un programme simple avec RS232
a. Réalisez un programme qui initialiser la porte RS232 en transmission et réception
asynchrone, 8bit, sans break, avec un Baud rate de 9600 b/s et sans interruption.
b. Dans ce programme, ajoutez des fonctions pour la transmission et réception d’un octet.
Utilisez les flags d’interruptions.
c. En fin, modifier la fonction main pour transmettre « 0x7D » sur la réception de
« 0x7C ». Pour tout autres valeurs reçus, le programme doit transmettre « 0x7F ».
d. Reliez le circuit avec un PC en utilisant le cable FTDI. Testez le programme avec le
logiciel Termite.
2. Modifiez le programme réalisée dans l’exercice précédente pour que la communication est prise
en charge par des interruptions sans priorité (ISR).
3. Implémentez un algorithme de communication par le contrôle de transmission par logiciel
(XON/XOFF). Rédigez l’algorithme sous forme d’une machine d’état avant de le coder.
Bonus :
Le mot « Enhanced » dans EUSART point vers une fonctionnalité additionnelle du module, c’est
l’autodétection du Baud Rate du message réceptionné. Vous êtes invités à découvrir cette fonctionnalité
en pratique et à démontrer comment l’utiliser.

Vous aimerez peut-être aussi