44
Sistemas Microprocessados sato<at>utfpr<dot>edu<dot>br http://pessoal.utfpr.edu.br/sato/ Elaborado por Gilson Yukio Sato

Sistemas Microprocessados - UTFPR

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Microprocessados - UTFPR

Sistemas Microprocessados

sato<at>utfpr<dot>edu<dot>br

http://pessoal.utfpr.edu.br/sato/

Elaborado por Gilson Yukio Sato

Page 2: Sistemas Microprocessados - UTFPR

USART do ATmega8

sato<at>utfpr<dot>edu<dot>br

Elaborado por Gilson Yukio Sato

Page 3: Sistemas Microprocessados - UTFPR

Sobre o material

• Essas transparências foram baseadas no manual do ATmega8 da Atmel e no site da Atmel

Elaborado por Gilson Yukio Sato

Page 4: Sistemas Microprocessados - UTFPR

Serial X Paralela

Elaborado por Gilson Yukio Sato

TX RX

Paralela

TX RX

Serial

Clock

Page 5: Sistemas Microprocessados - UTFPR

Síncrona X Assíncrona

Elaborado por Gilson Yukio Sato

Clock

Data D0 D1 D2 D3 D4 D5 D6 D7

Síncrona

D0 D1 D2 D3 D4 D5 D6 D7StartBit

StopBit

Assíncrona

Page 6: Sistemas Microprocessados - UTFPR

USART do ATmega8

• Full-duplex

– Registros independentes para TX e RX

• Assíncrona e Síncrona

• Gerador de Taxa de transmissão (baud rate)

• Frames de 5 a 9 bits de dados com 1 ou 2 stop bits

• Paridade par ou impar

Elaborado por Gilson Yukio Sato

Page 7: Sistemas Microprocessados - UTFPR

Elaborado por Gilson Yukio Sato

Page 8: Sistemas Microprocessados - UTFPR

USART do ATmega8

• Três partes principais

– Gerador de clock

– Transmissor

– Receptor

• Registradores de controle – UCSRA

– UCSRB

– UCSRC

Elaborado por Gilson Yukio Sato

Page 9: Sistemas Microprocessados - UTFPR

Blocos

• Gerador de Clock – Modo síncrono: sincronização com o clock

externo (pino XCK)

– Gerador de Baud Rate

• Transmissor – Buffer (UDR: escrita)

– Shift register

– Gerador de paridade

– Controle

Elaborado por Gilson Yukio Sato

Page 10: Sistemas Microprocessados - UTFPR

Blocos

• Receptor – Buffer duplo (UDR: recepção)

– Shift Register

– Unidade de recuperação para dados e clock (assíncrona)

– Verificador de paridade

– Controle

Elaborado por Gilson Yukio Sato

Page 11: Sistemas Microprocessados - UTFPR

Gerador de Clock

• Gera o clock para o transmissor e o receptor

• Possui quatro modos de operação – Assíncrono

– Assíncrono com velocidade dupla

– Síncrono master

– Síncrono slave

Elaborado por Gilson Yukio Sato

Page 12: Sistemas Microprocessados - UTFPR

Assíncrono X Síncrono

Elaborado por Gilson Yukio Sato

URSEL UMSEL UPM1 UPM0 UCSRC USBS UCSZ1 UCSZ0 UCPOL

Bit 6 Descrição

UMSEL USART Mode Select: - Se UMSEL=0 então Modo Assíncrono - Se UMSEL=1 então Modo Síncrono

Page 13: Sistemas Microprocessados - UTFPR

Velocidade normal ou Dupla

Elaborado por Gilson Yukio Sato

RXC TXC UDRE FE UCSRA DOR PE U2X MPCM

Bit 1 Descrição

U2X

Double the USART Transmission Speed: - Só tem efeito na comunicação assíncrona - Deve ser 0 na comunicação síncrona - Se U2X=1 dobra a velocidade de comunicação

Page 14: Sistemas Microprocessados - UTFPR

Pino XCK

• Ativo somente nos modos síncronos

• DDR_XCK

– Data Direction Register

– Master: saída

– Slave: entrada

Elaborado por Gilson Yukio Sato

Page 15: Sistemas Microprocessados - UTFPR

Elaborado por Gilson Yukio Sato

Page 16: Sistemas Microprocessados - UTFPR

Gerador de Baud Rate

• Usado no modo assíncrono e no síncrono master

• Entrada: fosc

• Prescaler

– UBRR + contador regressivo

– UBRR armazena valor inicial

– Contador gera clock quando chega em zero

Elaborado por Gilson Yukio Sato

Page 17: Sistemas Microprocessados - UTFPR

Gerador de Baud Rate

• Prescaler

– Saída = fosc/(UBRR + 1)

– Dependo do modo a saída é dividida por 2, 8 ou 16

– O modo depende de UMSEL, U2X e DDR_XCK

Elaborado por Gilson Yukio Sato

Page 18: Sistemas Microprocessados - UTFPR

Cálculo do Baud Rate

Elaborado por Gilson Yukio Sato

Page 19: Sistemas Microprocessados - UTFPR

Formato de Frame

• Frame é um caractere formado por bits de dados, bits de sincronização e bits de detecção de erros

– Sincronização: Start e Stop bits

– Detecção de erros: bit de paridade

– Modo depende de UMSEL, U2X e DDR_XCK

Elaborado por Gilson Yukio Sato

Page 20: Sistemas Microprocessados - UTFPR

Formato de Frame

• Combinações possíveis

– 1 start bit

– 5, 6, 7, 8 ou 9 bits de dados

– Sem paridade, paridade par ou impar

– 1 ou 2 stop bits

• Sequência

– Start bit, menos significativo até mais significativo, paridade, stop bit(s)

Elaborado por Gilson Yukio Sato

Page 21: Sistemas Microprocessados - UTFPR

Formato de Frame

• Configuração (UCSRB e UCSRC)

– UCSZ2 ... UCSZ0

– UPM1 e UPM0

– USBS

• Transmissão e recepção usam a mesma configuração

Elaborado por Gilson Yukio Sato

Page 22: Sistemas Microprocessados - UTFPR

Tamanho do Caractere

Elaborado por Gilson Yukio Sato

RXCIE TXCIE UDRIE RXEN UCSRB TXEN UCSZ2 RXB8 TXB8

URSEL UMSEL UPM1 UPM0 UCSRC USBS UCSZ1 UCSZ0 UCPOL

UCSZ2

UCSZ1

UCSZ0

Tamanho do Caractere

0 0 0 5 bits

0 0 1 6 bits

0 1 0 7 bits

0 1 1 8 bits

1 0 0 Reservado

1 0 1 Reservado

1 1 0 Reservado

1 1 1 9 bits

Page 23: Sistemas Microprocessados - UTFPR

Paridade

Elaborado por Gilson Yukio Sato

URSEL UMSEL UPM1 UPM0 UCSRC USBS UCSZ1 UCSZ0 UCPOL

UPM1 UPM0 Modo de funcionamento do bit de Paridade

0 0 Desabilitado

0 1 Reservado

1 0 Habilitado, paridade par

1 1 Habilitado, paridade impar

Page 24: Sistemas Microprocessados - UTFPR

Stop Bits

Elaborado por Gilson Yukio Sato

URSEL UMSEL UPM1 UPM0 UCSRC USBS UCSZ1 UCSZ0 UCPOL

Bit 3 Descrição

USBS Stop Bit Select: - Se USBS=0 então usa-se um Stop Bit - Se USBS=1 então usa-se dois Stop Bit

Page 25: Sistemas Microprocessados - UTFPR

Inicialização da USART

• Inicialização necessária

– Baud rate

– Formato do frame

– Habilitação da transmissão/recepção

– Habilitação da interrupção (se for usada)

Elaborado por Gilson Yukio Sato

Page 26: Sistemas Microprocessados - UTFPR

Transmissão

• Habilitação da transmissão

– A USART deve estar inicializada

– Setar o TXEN do UCSRB habilita a transmissão

– O pino TxD é a saída de dados

– No modo síncrono XCK opera como pino de clock da comunicação

Elaborado por Gilson Yukio Sato

Page 27: Sistemas Microprocessados - UTFPR

Habilitação da Transmissão

Elaborado por Gilson Yukio Sato

Bit 3 Descrição

TXEN Transmitter Enable: - Se TXEN=0 então o transmissor está desabilitado - Se TXEN=1 então o transmissor está habilitado

RXCIE TXCIE UDRIE RXEN UCSRB TXEN UCSZ2 RXB8 TXB8

Page 28: Sistemas Microprocessados - UTFPR

Transmissão

• Flags

– Flag UDRE: USART Data Register Empty

– Flag TXC: Transmission Complete

– Ambos podem ser usados para gerar interrupção

Elaborado por Gilson Yukio Sato

Page 29: Sistemas Microprocessados - UTFPR

Flags

Elaborado por Gilson Yukio Sato

RXC TXC UDRE FE UCSRA DOR PE U2X MPCM

Bit 5 Descrição

UDRE

USART Data Register Empty: - Quando o HW faz UDRE=1 então o buffer de transmissão está pronto para receber um novo dado - Quando o HW faz UDRE=0 então o buffer de transmissão tem dados que ainda não estão no shift register

Bit 6 Descrição

TXC

Transmission Complete: - Quando o HW faz TXC=1 então o buffer de transmissão está vazio e o dado do shift register foi transmitido - O HW faz TXC=0 quando a interrupção é atendida ou quando SW faz TXC=0

Page 30: Sistemas Microprocessados - UTFPR

Transmissão

• Interrupção

– Habilitação no bit UDRIE (UCSRB): USART Data Register Empty Interrupt

– Habilitação no bit TXCIE (UCSRB): Transmission Complete Interrupt

– Ambos precisam que o I(SREG) esteja setado (Interrupções habilitadas)

Elaborado por Gilson Yukio Sato

Page 31: Sistemas Microprocessados - UTFPR

Interrupções

Elaborado por Gilson Yukio Sato

Bit 5 Descrição

UDRIE USART Data Register Empty Interrupt: - Se I(SREG)=1 e UDRIE=1 a interrupção está habilitada - Se o UDRE for para 1, então ocorre a interrupção

Bit 6 Descrição

TXCIE Transmission Complete Interrupt: - Se I(SREG)=1 e TXCIE=1 a interrupção está habilitada - Se o TXC for para 1, então ocorre a interrupção

RXCIE TXCIE UDRIE RXEN UCSRB TXEN UCSZ2 RXB8 TXB8

Page 32: Sistemas Microprocessados - UTFPR

Recepção

• Habilitação da recepção

– A USART deve estar inicializada

– Setar o RXEN do UCSRB habilita a Recepção

– O pino RxD é a entrada de dados

– No modo síncrono XCK opera como pino de clock da comunicação

Elaborado por Gilson Yukio Sato

Page 33: Sistemas Microprocessados - UTFPR

Habilitação da Recepção

Elaborado por Gilson Yukio Sato

Bit 4 Descrição

RXEN Receiver Enable: - Se RXEN=0 então o receptor está desabilitado - Se RXEN=1 então o receptor está habilitado

RXCIE TXCIE UDRIE RXEN UCSRB TXEN UCSZ2 RXB8 TXB8

Page 34: Sistemas Microprocessados - UTFPR

Recepção

• Flags

– Flag RXC: Reception Complete

– Flag FE: Frame Error

– Flag DOR: Data OverRun

– Flag PE: Parity Error

• O flag RXC pode ser usado para gerar interrupção, os demais não

Elaborado por Gilson Yukio Sato

Page 35: Sistemas Microprocessados - UTFPR

Flags

Elaborado por Gilson Yukio Sato

RXC TXC UDRE FE UCSRA DOR PE U2X MPCM

Bit 7 Descrição

RXC

Reception Complete: - Quando o HW faz RXC=1 então o buffer de recepção tem um dado a ser lido - Se o RXC=0 então o buffer de recepção está vazio

Page 36: Sistemas Microprocessados - UTFPR

Recepção

• Interrupção

– Habilitação no bit RXCIE (UCSRB): Reception Complete Interrupt

– Precisa que o I(SREG) esteja setado (Interrupções habilitadas)

Elaborado por Gilson Yukio Sato

Page 37: Sistemas Microprocessados - UTFPR

Interrupções

Elaborado por Gilson Yukio Sato

Bit 7 Descrição

TXCIE Reception Complete Interrupt: - Se I(SREG)=1 e RXCIE=1 a interrupção está habilitada - Se o RXC for para 1, então ocorre a interrupção

RXCIE TXCIE UDRIE RXEN UCSRB TXEN UCSZ2 RXB8 TXB8

Page 38: Sistemas Microprocessados - UTFPR

Flags

Elaborado por Gilson Yukio Sato

RXC TXC UDRE FE UCSRA DOR PE U2X MPCM

Descrição

FE Frame Error: - O HW faz FE=1 porque houve um problema no stop bit

DOR

Data OverRun: - O HW faz DOR=1 quando tanto o buffer quanto o shift register de entrada estão com dados não lido e chega um novo start bit

FE Parity Error: - O HW faz PE=1 porque houve ocorreu um erro de paridade

Page 39: Sistemas Microprocessados - UTFPR

Frames de 5 a 8 bits

• Transmissão

– Início = SW escreve no UDR

– Quando Shift Register pronto: UDR Shift Register

– Shift Register pino TxD

Elaborado por Gilson Yukio Sato

Page 40: Sistemas Microprocessados - UTFPR

Frames de 5 a 8 bits

• Recepção

– Início = start bit no pino RxD

– Dados via RxD Shift Register até o primeiro stop bit

– Shift Register UDR

Elaborado por Gilson Yukio Sato

Page 41: Sistemas Microprocessados - UTFPR

Frames de 9 bits

• Transmissão

– 9° bit bit TXB8 (UCSRB)

– Início = SW escreve no UDR

– Quando Shift Register pronto: UDR Shift Register

– Shift Register pino TxD

Elaborado por Gilson Yukio Sato

Page 42: Sistemas Microprocessados - UTFPR

Frames de 9 bits

• Recepção

– Início = start bit no pino RxD

– Dados Shift Register até o primeiro stop bit

– 9° bit bit RXB8 (UCSRB)

– Shift Register UDR

Elaborado por Gilson Yukio Sato

Page 43: Sistemas Microprocessados - UTFPR

Nono Bit

Elaborado por Gilson Yukio Sato

Descrição

RXB8 Receive Data Bit 8: - Nono bit do caractere recebido pela USART - Deve ser lido antes do UDR

TXB8 Transmit Data Bit 8: - Nono bit do caractere a ser transmitido pela USART - Deve ser escrito antes do UDR

RXCIE TXCIE UDRIE RXEN UCSRB TXEN UCSZ2 RXB8 TXB8

Page 44: Sistemas Microprocessados - UTFPR

Sobre o material

• Essas transparências foram baseadas no manual do ATmega8 da Atmel e no site da Atmel

Elaborado por Gilson Yukio Sato