Comunicação Serial
Microcontroladores 2
EL08D
Turma M12
Prof. Gabriel Kovalhuk
E-mail: kovalhuk@utfpr.edu.br
Comuinicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Comunicação Serial no
MSP430
Este material foi retirado do livro: “MSP430 Microcontroller Basics”, Jonh Davis e do documento e “MSP430x2xx Family User's Guide”, Texas Intruments
Comunicação Serial
Comunicação Serial
Realiza a comunicação entre o microcontrolador e outros
microcontroladores ou periféricos;
Existem três tipos comuns de comunicação serial: Comunicação Serial Assíncrona (UART);
SPI; I2C;
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Comunicação Serial
A família MSP430 possui dois tipos de interface serial: USI: Interface serial simples:
Suporta comunicação I2C e SPI; USCI: Interface serial universal:
Comunicação Serial
USCI: Interface serial universal A interface USCI possui dois canais:
USCI_A: usada para comunicação serial
assíncrona;
USCI_B: usada para comunicação serial síncrona; Os dois canais são independentes, mas utilizam
alguns recursos em comum (registradores e vetor de interrupção);
Comunicação Serial
USCI: Interface serial universal
A interface USCI_B:
É usada para comunicação serial síncrona; Suporta os protocolos SPI e I2C;
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
USCI_A: Modo UART:
É um protocolo antigo, mas que ainda está em uso; É usada para comunicação serial assíncrona;
Permite a comunicação com modens, terminais
“burros”, impressoras seriais, etc.;
Existem dispositivos modernos que se comunicam
Comunicação Serial
USCI_A: Modo UART: Pode funcionar tanto no modo half-duplex como no
modo full-duplex;
O modo half-duplex realiza uma transmissão ou
uma recepção de cada vez, enquanto o modo full-duplex permite a transmissão e a recepção simultaneamente;
Por ser uma transmissão assíncrona, este tipo de
comunicação não possui clock para sincronizar o transmissor e o receptor;
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
USCI_A: Modo UART:
Para iniciar a transmissão, o transmissor envia um
“start-bit”, que consiste em colocar o sinal de transmissão em
nível baixo (“0”) por um período de tempo. Este período de tempo é definido pelo baud rate.
Depois, seguem 7 ou 8 bits de dados, cada um com o
mesmo período de tempo do baud rate.
Por fim, seguem 1 ou 2 stop-bits, que consiste em deixar o
sinal de transmissão em nível alto por 1 ou 2 períodos de tempo.
Comunicação Serial
USCI_A: Modo UART: Pode-se ainda colocar um bit de paridade (par ou ímpar)
antes dos stop-bits, para detectar erros de transmissão.
Stop Bit Stop Bit P D7 Start Bit Sem transmissão D0 D1 D2 D3 D4 D5 D6 Sem transmissão Protocolo Completo t t t t t t t t t t t t Sem transmissão Stop Bit D7 Start Bit Sem transmissão D0 D1 D2 D3 D4 D5 D6 t t t t t t t t t t Protocolo Simplificado
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
USCI_A: Modo UART:
BAUD RATE é a taxa de transmissão. A grosso
modo, define a quantidade de bits transmitidos por segundo;
Alguns valores padrão de baud rate são: 300, 600,
1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000 e 115200;
Comunicação Serial
USCI_A: Modo UART: No MSP430, a USCI_A possui três modos
operação:
Modo UART padrão;
Modo multiprocessador;
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
USCI_A: Modo UART:
Permite dados de 7 ou 8 bits;
Permite paridade par, ímpar ou sem paridade; Permite recepção e transmissão independentes; Permite selecionar MSB-first ou LSB-first;
Possui flag indicar de erro;
Permite gerar interrupção de recepção e
Comunicação Serial
USCI: Modo UART:Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Configuração do USCI_A no modo UART:
Inicialmente coloca-se o bit SWRST do registrador UxCTL
em 1. Isto mantém a USCI_A no estado de reset;
Em seguida, configura-se os registradores UCA0CTL1 e
UCA0CTL0;
Configura-se o baud rate;
Depois define-se os pinos de recepção e transmissão; Por último libera-se a interface, zerando o bit SWRST;
Habilita-se a(s) interrupção(ões) de recepção (e
Comunicação Serial
Configuração do USCI_A no modo UART: O baud rate é definido pelos registradores UCA0BR0,
UCA0BR1 e UCA0MCTL, as tabelas 15.4 e 15.5 do User Guide contém os valores usados para gerar algumas taxas pardão;
Para uma comunicação de 9600bps, os valores são:
UCA0BR0 = 0x68; UCA0BR1 = 0x00; UCA0MCTL = 0x02;
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Configuração do USCI_A no modo UART: Observe:
I. Na tabela, UCBRx é a união dos registradores
UCA0BR1:UCA0BR0, assim: UCA0BR1 = 0;
UCA0BR0 = 104;
II.UCBRSx é um campo do
registrador UCA0MCTL (bits 3, 2 e 1), como mostra a tabela 1:
UCA0MCTL=UCBRFx*16+UBBRSx*2 +UCAOS16;
Tabela 1. Registrador UCA0MCTL.
7 6 5 4 3 2 1 0
UCBRFx UCBRSx
Comunicação Serial
UART na LaunchPad MSP-EXP430G2 (Rev1.5):
Na placa MSP-EXP430G2 é possível fazer a
comunicação serial através da porta USB. Isto é chamado de Comunicação Serial sobre USB;
Os pinos da interface serial do MSP430 são
conectados ao CI TUSB3410, que “encapsula” o protocolo as UART no protocolo da USB e envia/recebe os dados do PC;
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
UART na LaunchPad MSP-EXP430G2 (Rev1.5):
No PC é necessário verificar em qual porta a interface
foi definida (COM3, Com4, etc.). Isto pode ser visto no Gerenciador de Dispositivos do Windows;
Comunicação Serial
UART na LaunchPad MSP-EXP430G2 (Rev1.5):
Na revisão 1.5, os pinos do J3 possuem uma
configuração diferentes das outras versões;
Para se usar a
USCI_A, deve-se rotacionar os jumpers referentes aos sinais TXD RXD, conforme mostra a figura:
Comunicação Serial
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Atividade Prática – Comunicação com o PC:
Escrever um programa para que o MSP430 se
Comunique com o PC e execute as seguintes tarefas:
Quando for pressionada a tecla [V], o led vermelho
acende;
Quando for pressionada a tecla [v], o led vermelho
apaga;
Quando for pressionada a tecla [C], o led verde
acende;
Quando for pressionada a tecla [c], o led verde
Comunicação Serial
Atividade Prática – Comunicação com o PC:
Quando for pressionada a tecla [C], o led verde
acende;
Quando for pressionada a tecla [c], o led verde
apaga;
Quando for pressionada a tecla [T] apresenta a
temperatura em graus Celsius (ver págs 549 e 550 do User Guide);
Quando for pressionada a tecla [t] apresenta a
temperatura em graus Farenheit;
Quando o botão em P1.3 for pressionado, apresenta
na tela do PC uma mensagem (por exemplo “Alerta!”);
• No PC deve ser usado um programa de comunicação, como por exemplo o putty;
Temporizador / Contador
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Configuração do puTTy:
Temporizador / Contador
Configuração do puTTy:• Configurar a serial para a porta COMx, 9600 e 8N1
Porta → COMx
Baud rate → 9600 Paridade → N
Data bits → 1
Temporizador / Contador
EL08D – Microcontroladores 2
Prof. Gabriel Kovalhuk 2018
Bibliografia:
• [DAVIES], DAVIES Jonh H., MSP430 Microcontroller
Basics, Elsevier 2008.
• [SLAU144J] MSP430x2xx Family User's Guide, Texas Instruments, 2013.