Top Banner
1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interfac USART Peripheral Interfac e e Modo UART Modo UART
46

1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

Apr 11, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

1

USART:UniversalSynchronous/asynchronousreceive/transmit

USART Peripheral InterfacUSART Peripheral InterfaceeModo UARTModo UART

Page 2: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

2

Modos seriales Modos seriales USARTUSART

Sincrónico (SPI)

Asincrónico (UART)

UxCTL Usart Control Register

Page 3: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

3

Esquemático USARTEsquemático USART

Page 4: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

4

Algunas CaracterísticasAlgunas Características

Datos de 7 ó 8 bits

Tx y Rx de LSB primero

Buffers de Tx y Rx separados

Registros de desplazamiento de Tx y Rx

Varios protocolos de comunicación

Page 5: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

5

Algunas CaracterísticasAlgunas Características

Tasa de transmisión programable

Flags de detección y supresión de errores

Interrupción independiente para Rx y Tx

Capacidad de salir de modo bajo consumo,dado un cambio de estado

Page 6: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

6

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Inicialización y reinicio (reset)

Protocolos de comunicaciónDetección automática de erroresHabilitación de recepción

Habilitación de transmisión

Generación de tasa de transferencia

Interrupciones

Page 7: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

7

Inicialización y reinicio Inicialización y reinicio (reset)(reset)

PUC

SWRST=1

UxCTL Usart Control Register

Page 8: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

8

OperaciónOperación

Inicialización y reinicio (reset)

Formato del CharacterFormato del CharacterProtocolos de comunicaciónDetección automática de erroresHabilitación de recepción

Habilitación de transmisión

Generación de tasa de transferencia

Interrupciones

Page 9: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

9

Octavo bit de datoAdress bitBit de

paridadSegundo bit de detención

Formato del characterFormato del character

Page 10: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

10

Protocolos de comunicación

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Protocolos de comunicaciónDetección automática de erroresHabilitación de recepción

Habilitación de transmisión

Generación de tasa de transferencia

Interrupciones

Page 11: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

11

Idle-Line Multiprocessor Format

Address-Bit Multiprocessor Format

2 dispositivosBit MM=0

3 o más dispositivos

Bit MM=1

Protocolos de Protocolos de ComunicaciónComunicación

Page 12: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

12

Tiempo de espera de 10 bits o mas

Tiempo de espera menor a 10 bits

Frame Frame dentro del bloque

Frame dentro del bloque

Primer Frame dentro del bloque es uan

direccion, sigue a un tiempo de espera

Expandido

Protocolos de Comunicación:

Protocolos de Comunicación:Protocolos de Comunicación:Idle-Line Multiprocessor Idle-Line Multiprocessor FormatFormat

Page 13: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

13

Protocolos de Comunicación

TXWAKE=1

Escribir character en UxTXBUFContenido de UxTXBUF es llevado al registro de TXTransmite 11 unos

TXWAKE=0 automaticamente

Idle-Line Multiprocessor FormatIdle-Line Multiprocessor Format Transmisión de datosTransmisión de datos

Page 14: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

14

Protocolos de Comunicación:

Se escribe la dirección en UxTXBUF

Registro tiene que estar listo

Se inicia la transmisión con un character ‘dont care’

Idle-Line Multiprocessor FormatIdle-Line Multiprocessor Format Transmisión de datosTransmisión de datos

Page 15: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

15

Primer frame del bloque es una dirección

AD Bit es cero para dato en el bloque

Expandido

Tiempo de espera

Bloques de frames

Tiempo de espera

Protocolos de Comunicación:

Protocolos de Comunicación:Protocolos de Comunicación: Address-Bit Multiprocessor FormatAddress-Bit Multiprocessor Format

UxRCTL Usart Receive Control Register

Page 16: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

16

Protocolos de Comunicación:Control del address bit para transmisiónControl del address bit para transmisión

Se escribe en bit TXWAKE

Este es cargado en el address bit del carácter transferido

Se limpia automáticamente

Address-Bit Multiprocessor FormatAddress-Bit Multiprocessor Format

UxTCTL, Usart Transmit Control Register

Page 17: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

17

Detección automática de errores

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Detección automática de erroresProtocolos de comunicación

Habilitación de recepción

Habilitación de transmisión

Generación de tasa de transferencia

Interrupciones

Page 18: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

18

Error de framing

Error de paridad

Error de rebalse (receive overrun)

Condición de break

Detección automática Detección automática dedeheroresheroreserroreerrore

ss

UxRCTL Usart Receive Control Register

Page 19: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

19

Habilitación de recepción

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Habilitación de recepción

Protocolos de comunicaciónDetección automática de errores

Habilitación de transmisión

Generación de tasa de transferencia

Interrupciones

Page 20: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

20

Habilitación de recepción

Habilitación de recepciónHabilitación de recepción(Receive Enable)(Receive Enable)

URXEX Habilita o deshabilita recepción de datosSe guardan en el UxRXBUF

Page 21: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

21

Habilitación de recepción

Character recibido

Condición de Interrupción

URXEx=0 URXEx=1

URXEx=1

URXEx=0URXEx=1

URXEx=0

Recepcion

Deshabilitada

Estado de espera

(Recepcion Deshabilitada)

Receptor recibe el character

Incompleto

Bit de inicio inválido

Habilitación de recepción Habilitación de recepción (Receive Enable)(Receive Enable)

UxTCTL, Usart Transmit Control Register

Page 22: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

22

Habilitación de transmisión

Habilitación de recepción

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Habilitación de transmisión

Protocolos de comunicaciónDetección automática de errores

Generación de tasa de transferencia

Interrupciones

Page 23: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

23

Habilitación de transmision

Habilitación de Transmisión Habilitación de Transmisión (Transmit Enable)(Transmit Enable)

UTxEX habilita o deshabilita transmisión de datosSe inicia la transmisión escribiendo en UxTxBUF

Page 24: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

24

Character Transmitido

Condición de Interrupción

UTXEx=0UTXEx=1, Se escribe dato al buffer de transmisión

UTXEx=1

UTXEx=0UTXEx=1

UTXEx=0 y última entrada del buffer es transmitida

Transmisión

Deshabilitada

Estado de espera (Transmisor Habilitado)

Transmisión Activa

IncompletoNo se escribe dato en el buffer de

transmisión

Habilitación de transmision

Habilitación de TransmisiónHabilitación de Transmisión (Transmit Enable)(Transmit Enable)

UxTCTL, Usart Transmit Control Register

Page 25: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

25

Habilitación de transmision

Habilitación de TransmisiónHabilitación de Transmisión (Transmit Enable)(Transmit Enable)

Para transmitir al buffer

UTxEX=1 y UTxIFGX=1

El bit TxEPT=1 indica que la transmisión activa se ha completado, esto evita errores

Page 26: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

26

Generación de tasa de transferencia

Habilitación de transmisión

Habilitación de recepción

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Generación de la tasa de transferencia

Protocolos de comunicaciónDetección automática de errores

Interrupciones

Page 27: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

27

Generacion de la tasa

Generación de la tasa de Generación de la tasa de transferencia (Baude transferencia (Baude rate)rate)La tasa máxima=1/3 BRCKL

Puede generar frecuencias no estándares Baude rate=BRCLK/N

Factor guardado en registros UxBR0 y UxBR1

UxBR0 y UxBR0 , Baud Rate Control Register

Page 28: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

28

Interrupciones

Generación de tasa de transferencia

Habilitación de transmisión

Habilitación de recepción

OperaciónOperación

Inicialización y reinicio (reset)

Formato del Character

Interrupciones

Protocolos de comunicaciónDetección automática de errores

Page 29: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

29

Interrupciones

InterrupcioneInterrupcioness

Vector de interrupciones para transmisión

Vector de interrupciones para recepción

Cuando el buffer está listo

Cuando ya ha transmitido se resetea

Cuando un carácter es recibido y cargado en el buffer

Se resetea cuando ha sido leído o la interrupción ha sido servida

URxIFGX=1

UTxIFGX=1

Page 30: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

30

Interrupciones

InterrupcionesInterrupcionesRegistros de interrupción 1 Registros de interrupción 1 y 2y 2

UTXIFGX, flag de transmisión

URXIFGX, flag de recepción

Page 31: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

31

#include <msp430x14x.h>

#include "MSP430lib.c"

#include "TRcircbuf.c"

void main (void){

/* Inicialización de osciladores (MSP430lib)*/

InitOsc ();

/* Inicialización de puertos Entrada/Salida (MSP430lib) */

InitPorts ();

/* Inicialización de UART (TRcircbuf) */

RS232Init ();

/* Inicialización de LCD (MSP430lib) */

InitLCD ();

Ejemplo de programaciónEjemplo de Programación

Page 32: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

32

/* Loop de recepción */

while (1){

/* Espera la llegada de un byte a la entada serial y lo almacena en el buffer*/

/* Este estado es interrumpido por RXInterrupt */

if ( RS232RXBufferCount() ){

/* Lee el caracter del buffer y lo almacena en una variable */

RxB = cRS232GetChar();

/* Prende el led */

STATUS_LED_ON;

Ejemplo de programación(2)Ejemplo de programación

Page 33: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

33

/* Limpia el LCD */

if (cntr == 0){

SEND_CMD(CLR_DISP);

SEND_CMD(DD_RAM_ADDR);

}

/* Envia el caracter recibido al LCD */

SEND_CHAR(RxB);

if(cntr == 15) SEND_CMD(DD_RAM_ADDR2);

if(cntr++ == 31) cntr = 0;

STATUS_LED_OFF;

}

}

}

Ejemplo de programación(3)Ejemplo de programación

Page 34: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

34

Fin del asuntoFin del asunto

Page 35: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

35

(Aplausos aquí)(Aplausos aquí)

Page 36: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

36

unsigned char RS232RXBufferCount (void)

{

return (RXCharCount);

}

RS232RXBufferCount

Page 37: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

37

void RS232Init (void)

{

RXWriteIndex = RXReadIndex = RXCharCount = 0;

TXWriteIndex = TXReadIndex = TXCharCount = 0;

TXBufferEmpty = BUFFER_EMPTY; // reset empty flag

InitUART0();

}

RS232Init

Page 38: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

38

char cRS232GetChar (void)

{

char Byte;

if (RXCharCount){ /* Verifica si hay char aún disponible */

Byte = RXBuffer[RXReadIndex++]; /* Obtiene byte del buffer */

RXReadIndex &= RXBUFSIZE-1; /* Indice de buffer circular */

RX_INT_DISABLE; /* Inhabilita interrupción (IE2) */

RXCharCount--; /* Lectura de un char decrementa la cuenta */

RX_INT_ENABLE; /* Hecho, se habilita interrupción(IE2) */

return (Byte);

}

else

return (0); /* si no hay nuevo char */

}

cRS232GetChar

Page 39: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

39

InitPorts

void InitPorts(void) {

P1SEL = 0; P1OUT = 0; P1DIR = BIT5 | BIT6; /* enable only Relay outputs */

P2SEL = 0; P2OUT = 0; P2DIR = ~BIT0; /* habilita P2.0 es entrada */ P3SEL |= BIT4 | BIT5; /* enable UART0 */ P3DIR |= BIT4; /* enable TXD0 as output */ P3DIR &= ~BIT5; /* enable RXD0 as input */

P4SEL = 0; P4OUT = 0; P4DIR = BIT2 | BIT3; /* only buzzer pins are outputs */

P6SEL = 0x80; P6OUT = 0; P6DIR = 0x00; /* all output */}

Page 40: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

40

void InitUART0 (void) /* Inicialización UART0 */

{

BCSCTL1 & = ~DIVA0;

BCSCTL1 | = DIVA1; /* ACLK = XT1 / 4 */

UCTL0 = CHAR; /* 8 data bits, sin paridad, 1 bit de detencion*/

UTCTL0 = SSEL0; /* se elige ACLK como reloj para UART */

U0BR0 = 0xd0; /* 2000000:9600=208

U0BR1 = 0x00;

UMCTL0 = 0x00; /* sin modulación*/

ME1 | = UTXE0 | URXE0; /* habilitan modulos de tx y rx UART */

P3SEL | = 0x30; /* define bits de tx y rx P3.4 P3.5 */

P3DIR | = BIT4; /* habilita TXD0 como salida*/

P3DIR & = ~BIT5; /* habilita RXD0 como entrada*/

IE1 | = URXIE0; /* habilita USART0 RX interrupcion*/

IE1 | = UTXIE0; /* habilita USART0 TX interrupcion */

_EINT(); /* habilita interrupción*/

}

InitUART0InitUART0

Page 41: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

41

UxCTL Registro de control USART

Page 42: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

42

UxTCTLUxCTL Registro de control de tx

Page 43: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

43

uxbr0Registro de control de tasa de transferencia

Page 44: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

44

bcsctl

Page 45: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

45

Uxmctl

Page 46: 1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART.

46

me1