Microcontrolador AVR (Atmel 8) Configuração de comunicação serial USART

Experimente Nosso Instrumento Para Eliminar Problemas





Microcontrolador é um dispositivo de controle que contém uma série de periféricos como RAM, ROM TIMERS, comunicação de dados seriais , etc., que são necessários para executar algumas tarefas predefinidas. Nos dias de hoje, tipo avançado de microcontroladores são usados ​​em uma ampla variedade de aplicações de acordo com sua capacidade e viabilidade para realizar algumas tarefas desejadas e esses controladores incluem 8051, AVR e microcontrolador PIC . Neste artigo, vamos aprender sobre microcontroladores avançados da família AVR e sua programação .

Microcontrolador AVR

O AVR é ​​um tipo de dispositivo de controle fabricado pela Atmel Corporation em 1996. O AVR não representa nada, é apenas um nome. O AVR microcontroladores consistem na arquitetura Harvard e, portanto, o dispositivo executa muito rápido com um número reduzido de instruções de nível de máquina (RISC). Os microcontroladores AVR consistem em recursos especiais em comparação com outros microcontroladores, como modos 6-sleep, ADC embutido, oscilador interno e comunicação de dados serial, etc. Microcontroladores AVR estão disponíveis em diferentes configurações de 8 bits, 16 bits e 32 bits para executar várias operações.




Microcontrolador AVR

Microcontrolador AVR

Comunicação de dados serial USART no microcontrolador AVR

O USART significa receptor e transmissor síncrono e assíncrono universal. É uma comunicação serial de dois protocolos. Este protocolo é usado para transmitir e receber os dados bit a bit em relação aos pulsos de clock em um único fio. O Microcontrolador AVR tem dois pinos: TXD e RXD, que são especialmente usados ​​para transmitir e receber dados em série. Qualquer microcontrolador AVR consiste no protocolo USART com seus próprios recursos.



Comunicação USART no microcontrolador AVR

Comunicação USART no microcontrolador AVR

As principais características do AVR USART

  • O protocolo USART suporta o protocolo full-duplex.
  • Ele gera uma taxa de transmissão de alta resolução.
  • Ele suporta a transmissão de bits de dados seriais de 5 a 9 e consiste em dois bits de parada.

Configuração de pinos USART

O USART do AVR consiste em três pinos:


  • RXD: pino do receptor USART (ATMega8 PIN 2 ATMega16 / 32 pino 14)
  • TXD: pino transmissor USART (ATMega8 PIN 3 ATMega16 / 32 pino 15)
  • XCK: pino de relógio USART (ATMega8 PIN 6 ATMega16 / 32 pino 1)

Modos de operação

O microcontrolador AVR do protocolo USART opera em três modos, que são:

  • Modo Normal Assíncrono
  • Modo de velocidade dupla assíncrona
  • Modo Síncrono
Modos de operação

Modos de operação

Modo Normal Assíncrono

Neste modo de comunicação, os dados são transmitidos e recebidos bit a bit, sem pulsos de clock, pela taxa de transmissão predefinida definida pelo registro UBBR.

Modo de velocidade dupla assíncrona

Neste modo de comunicação, os dados transferidos com o dobro da taxa de transmissão são configurados pelo registro UBBR e configurados pelos bits U2X no registro UCSRA. Este é um modo de alta velocidade para comunicação síncrona para transmissão e recepção de dados rapidamente. Este sistema é usado onde configurações precisas de taxa de transmissão e relógio do sistema são necessárias.

Modo Síncrono

Neste sistema, a transmissão e recepção de dados em relação ao pulso de clock é definida como UMSEL = 1 no registro UCSRC.

Configuração USART no microcontrolador AVR

USART pode ser configurado usando cinco registros, como três registros de controle , um registro de dados e registro de seleção de taxa de transmissão, como UDR, UCSRA, UCSRB, UCSRC e UBRR.

7 etapas para compor o programa

Passo 1: Calcular e definir a taxa de transmissão

A taxa de transmissão de USART / UART é definida pelo registrador UBRR. Este registro é usado para gerar a transmissão de dados na velocidade específica. O UBRR é um registrador de 16 bits. Uma vez que o AVR é ​​um microcontrolador de 8 bits e qualquer tamanho de registro é de 8 bits. Portanto, aqui o registro UBRR de 16 bits é composto por dois registros de 8 bits, como UBRR (H), UBRR (L).

A fórmula da taxa de transmissão é

BAUD = Escuro / (16 * (UBBR + 1))

A fórmula do registro UBRR é

UBRR = Escuro / (16 * (BAUD-1))

A frequência do microcontrolador AVR é ​​16 MHz = 16000000 Vamos supor que a taxa de transmissão seja de 19200 Bps, então

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

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

UBRR = 51.099

Eventualmente, encontre a taxa de transmissão

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

Passo 2: Seleção de modo de dados

O modo de transmissão de dados, bit de início e bit de parada e o tamanho dos caracteres são definidos pelo registro de controle e status UCSRC.

Seleção de modo de dados

Seleção de modo de dados

Etapa 3: Seleção do modo de transmissão de dados

O modo síncrono e assíncrono é selecionado pelo bit UMSEL do registro de status de controle. Se dermos UMSEL = 0, o USART opera em modo assíncrono, caso contrário, opera em modo síncrono.

Seleção do modo de transmissão de dados

Seleção do modo de transmissão de dados

Passo 4: Bit de início e bit de parada

Os bits de início e de parada são uma forma de enviar e receber dados em série. Geralmente, qualquer fama de dados consiste em um bit de estatística e um bit de parada, mas o microcontrolador AVR tem um bit de início e dois bits de parada para processar os dados. O bit de parada extra pode ser útil para adicionar um pouco mais de tempo de processamento de recepção. É especialmente útil para altas taxas de transferência de dados, enquanto a velocidade de transferência de dados é muito alta, então não obtemos dados adequados. Assim, podemos aumentar o tempo de processamento usando dois bits de parada para obter os dados adequados.

Bit de início e bit de parada

Bit de início e bit de parada

O número de bits de parada é selecionado pelo bit USBS de UCSRC - o registro de status de controle. O USBS = 0, para um bit de parada, e USBS = 1, para dois bits de parada.

Passo 5: Defina o tamanho dos caracteres

Como no caso do microcontroladores básicos enviando e recebendo o byte de dados (8 bits) de cada vez, seja em um microcontrolador AVR, podemos escolher um formato de frame de dados em cada frame pelo bit UCSZ do registro UCSRC.

Formato de quadro de dados

Formato de quadro de dados

Passo 6: Armazene os Dados Recebidos

O microcontrolador AVR consiste em um registro de buffer UDR para transmitir e receber dados. O UDR é um registro de buffer de 16 bits em que 8 bits são usados ​​para receber (RXB) os dados e outros bits são usados ​​para transmitir os dados (TXB). A transmissão do registro do buffer de dados será o destino do registro UDR para os dados gravados em sua localização. Receber o registro do buffer de dados retornará o conteúdo do registro UDR.

Passo 7: Habilitação do transmissor e receptor

Os dados transmitidos e recebidos serão permitidos pelos pinos RXC e TXC do microcontrolador, que são configurados pelo registro UCSRA do microcontrolador. Este bit de sinalizador definido pelo microcontrolador para os dados é concluído pela recepção e transmissão (TXC = RXC = 1).

Dobre a taxa de transmissão

Podemos dobrar a taxa de transferência da comunicação USART do AVR microcontrolador de 16 bits a 8 bits efetivamente pelo U2X –bit no registro UCSRA. Este bit afeta apenas a operação assíncrona. Se pudermos definir este bit (U2X = 1), ele reduzirá a taxa de transmissão de 16 bits para 8 bits, dobrando efetivamente a taxa de transferência para comunicação síncrona.

Este é um recurso avançado do microcontrolador AVR para processamento rápido dos dados.

Programa USART

Cada microcontrolador é predefinido com um IDE específico e, com base neste IDE, microcontroladores são programados com C incorporado ou linguagem assembly. A programação do microcontrolador AVR é ​​desenvolvida pelo estúdio AVR. Além disso, se você quiser informações adicionais sobre o etapas para construir projetos baseados em microcontroladores , ou informações detalhadas sobre este tópico, você pode entrar em contato conosco comentando abaixo.