Microcontrôleur AVR (Atmel 8) Communication série Configuration USART

Essayez Notre Instrument Pour Éliminer Les Problèmes





Le microcontrôleur est un dispositif de contrôle qui contient un certain nombre de périphériques tels que la RAM, les ROM TIMERS, communication de données série , etc., qui sont nécessaires pour effectuer certaines tâches prédéfinies. Aujourd'hui, type avancé de microcontrôleurs sont utilisés dans une grande variété d'applications selon leur capacité et leur faisabilité à effectuer certaines tâches souhaitées et ces contrôleurs comprennent 8051, microcontrôleur AVR et PIC . Dans cet article, nous allons en apprendre davantage sur le microcontrôleur avancé de la famille AVR et sa programmation .

AVR Microcontroller

L'AVR est un type d'appareil de contrôle fabriqué par Atmel Corporation en 1996. L'AVR ne représente rien, c'est juste un nom. L'AVR les microcontrôleurs sont constitués de l'architecture Harvard , et par conséquent, l'appareil fonctionne très vite avec un nombre réduit d'instructions au niveau de la machine (RISC). Les microcontrôleurs AVR se composent de fonctionnalités spéciales par rapport à d'autres microcontrôleurs telles que les modes 6-sleep, ADC intégré, oscillateur interne et communication de données série, etc. AVR microcontrollers sont disponibles dans différentes configurations de 8 bits, 16 bits et 32 ​​bits pour effectuer diverses opérations.




AVR Microcontroller

AVR Microcontroller

Communication de données série USART dans le microcontrôleur AVR

L'USART signifie récepteur et émetteur universel synchrone et asynchrone. Il s'agit d'une communication série de deux protocoles. Ce protocole est utilisé pour transmettre et recevoir les données bit par bit par rapport aux impulsions d'horloge sur un seul fil. Le AVR microcontroller a deux broches: TXD et RXD, qui sont spécialement utilisées pour transmettre et recevoir les données en série. Tout microcontrôleur AVR consiste en un protocole USART avec ses propres fonctionnalités.



Communication USART dans le microcontrôleur AVR

Communication USART dans le microcontrôleur AVR

Les principales caractéristiques d'AVR USART

  • Le protocole USART prend en charge le protocole full-duplex.
  • Il génère un débit en bauds haute résolution.
  • Il prend en charge la transmission de bits de données série de 5 à 9 et se compose de deux bits d'arrêt.

Configuration des broches USART

L'USART de l'AVR se compose de trois broches:


  • RXD: broche du récepteur USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: broche de l'émetteur USART (ATMega8 PIN 3 ATMega16 / 32 broches 15)
  • XCK: broche d'horloge USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Modes de fonctionnement

Le microcontrôleur AVR du protocole USART fonctionne selon trois modes qui sont:

  • Mode normal asynchrone
  • Mode double vitesse asynchrone
  • Mode synchrone
Modes de fonctionnement

Modes de fonctionnement

Mode normal asynchrone

Dans ce mode de communication, les données sont transmises et reçues bit par bit sans impulsions d'horloge par la vitesse de transmission prédéfinie fixée par le registre UBBR.

Mode double vitesse asynchrone

Dans ce mode de communication, les données transférées au double de la vitesse de transmission sont définies par le registre UBBR et les bits U2X du registre UCSRA. Il s'agit d'un mode haute vitesse de communication synchrone pour transmettre et recevoir rapidement les données. Ce système est utilisé lorsque des paramètres de vitesse de transmission et une horloge système précis sont nécessaires.

Mode synchrone

Dans ce système, la transmission et la réception des données par rapport à l'impulsion d'horloge sont définies UMSEL = 1 dans le registre UCSRC.

Configuration USART dans le microcontrôleur AVR

USART peut être configuré à l'aide de cinq registres tels que trois registres de contrôle , un registre de données et un registre de sélection de débit en bauds, tels que UDR, UCSRA, UCSRB, UCSRC et UBRR.

7 étapes pour composer le programme

Étape 1: Calculer et définir le débit en bauds

Le débit en bauds de USART / UART est défini par le registraire UBRR. Ce registre est utilisé pour générer la transmission de données à la vitesse spécifique. L'UBRR est un registre 16 bits. Étant donné que l'AVR est un microcontrôleur 8 bits et que sa taille de registre est de 8 bits. Par conséquent, ici le registre UBRR 16 bits est composé de deux registres 8 bits tels que UBRR (H), UBRR (L).

La formule du débit en bauds est

BAUD = Foncé / (16 * (UBBR + 1))

La formule du registre UBRR est

UBRR = Foncé / (16 * (BAUD-1))

La fréquence du microcontrôleur AVR est de 16 MHz = 16000000 Supposons que le débit en bauds soit de 19200 Bps, puis

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51,099

Trouvez finalement le débit en bauds

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230 bps

Étape 2: Sélection du mode de données

Le mode de transmission de données, le bit de démarrage et le bit d'arrêt et la taille des caractères sont définis par le registre de contrôle et d'état UCSRC.

Sélection du mode de données

Sélection du mode de données

Étape 3: Sélection du mode de transmission des données

Le mode synchrone et asynchrone est sélectionné par le bit UMSEL du registre d'état de commande. Si nous donnons UMSEL = 0, alors l'USART fonctionne en mode asynchrone, sinon fonctionne en mode synchrone.

Sélection du mode de transmission des données

Sélection du mode de transmission des données

Étape 4: Bit de démarrage et bit d'arrêt

Le bit de démarrage et les bits d'arrêt permettent d'envoyer et de recevoir les données en série. En général, toute renommée de données se compose d'un bit de stat et d'un bit d'arrêt, mais le microcontrôleur AVR a un bit de démarrage et deux bits d'arrêt pour le traitement des données. Le bit d'arrêt supplémentaire peut être utile pour ajouter un peu de temps de traitement de réception supplémentaire. Il est particulièrement utile pour les taux de transfert de données élevés, alors que la vitesse de transfert des données est très élevée, de sorte que nous n'obtenons pas les données appropriées. Ainsi, nous pouvons augmenter le temps de traitement en utilisant deux bits d'arrêt pour obtenir les données appropriées.

Bit de démarrage et bit d

Bit de démarrage et bit d'arrêt

Le nombre de bits d'arrêt est sélectionné par le bit USBS de UCSRC - le registre d'état de contrôle. USBS = 0, pour un bit d'arrêt, et USBS = 1, pour deux bits d'arrêt.

Étape 5: Définir la taille des caractères

Comme dans le cas du microcontrôleurs de base l'envoi et la réception de l'octet de données (8 bits) à la fois, que ce soit dans un microcontrôleur AVR, nous pouvons choisir un format de trame de données dans chaque trame par le bit UCSZ du registre UCSRC.

Format de trame de données

Format de trame de données

Étape 6: Stocker les données reçues

Le microcontrôleur AVR se compose d'un registre tampon UDR pour la transmission et la réception de données. L'UDR est un registre tampon de 16 bits dans lequel 8 bits sont utilisés pour recevoir (RXB) les données et d'autres bits sont utilisés pour transmettre les données (TXB). Le registre de tampon de données de transmission sera la destination du registre UDR pour les données écrites sur son emplacement. La réception du registre tampon de données renverra le contenu du registre UDR.

Étape 7: Activation de l'émetteur et du récepteur

Les données transmises et reçues seront autorisées par les broches RXC et TXC du microcontrôleur qui sont définies par le registre UCSRA du microcontrôleur. Ce bit de drapeau défini par le microcontrôleur pour les données est complété par la réception et la transmission (TXC = RXC = 1).

Doublez le débit en bauds

Nous pouvons doubler le taux de transfert de la communication USART de l'AVR microcontrôleur de 16 bits à 8 bits effectivement par le bit U2X dans le registre UCSRA. Ce bit n'a d'effet que sur le fonctionnement asynchrone. Si nous pouvons définir ce bit (U2X = 1), cela réduira le débit en bauds de 16 bits à 8 bits, doublant efficacement le taux de transfert pour la communication synchrone.

Il s'agit d'une fonctionnalité avancée du microcontrôleur AVR pour un traitement rapide des données.

Programme USART

Chaque microcontrôleur est prédéfini avec un IDE spécifique, et basé sur cet IDE, les microcontrôleurs sont programmés avec C intégré ou langage d'assemblage. La programmation du microcontrôleur AVR est développée par le studio AVR. En outre, si vous souhaitez des informations supplémentaires sur étapes pour construire des projets basés sur des microcontrôleurs , ou des informations détaillées sur ce sujet, vous pouvez nous contacter en commentant ci-dessous.