La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "1 USART:Universal Synchronous/asynchronous receive/transmit USART Peripheral Interface Modo UART."— Transcripción de la presentación:

1

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

3 2 Modos seriales USART Sincrónico (SPI) Asincrónico (UART) UxCTL Usart Control Register

4 3 Esquemático USART

5 4 Algunas 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

6 5 Algunas 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

7 6 Operación Inicialización y reinicio (reset) Formato del Character Inicialización y reinicio (reset) Protocolos de comunicación Detección automática de errores Habilitación de recepción Habilitación de transmisión Generación de tasa de transferencia Interrupciones

8 7 Inicialización y reinicio (reset) PUC SWRST=1 UxCTL Usart Control Register

9 8 Operación Inicialización y reinicio (reset) Formato del Character Protocolos de comunicación Detección automática de errores Habilitación de recepción Habilitación de transmisión Generación de tasa de transferencia Interrupciones

10 9 Octavo bit de dato Adress bit Bit de paridad Segundo bit de detención Formato del character

11 10 Protocolos de comunicación Operación Inicialización y reinicio (reset) Formato del Character Protocolos de comunicación Detección automática de errores Habilitación de recepción Habilitación de transmisión Generación de tasa de transferencia Interrupciones

12 11 Idle-Line Multiprocessor Format Address-Bit Multiprocessor Format 2 dispositivos Bit MM=0 3 o más dispositivos Bit MM=1 Protocolos de Comunicación

13 12 Tiempo de espera de 10 bits o mas Tiempo de espera menor a 10 bits FrameFrame 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: Idle-Line Multiprocessor Format

14 13 Protocolos de Comunicación TXWAKE=1 Escribir character en UxTXBUF Contenido de UxTXBUF es llevado al registro de TX Transmite 11 unos TXWAKE=0 automaticamente Idle-Line Multiprocessor Format Transmisión de datos

15 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 Format Transmisión de datos

16 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: Address-Bit Multiprocessor Format UxRCTL Usart Receive Control Register

17 16 Protocolos de Comunicación: Control 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 Format UxTCTL, Usart Transmit Control Register

18 17 Detección automática de errores Operación Inicialización y reinicio (reset) Formato del Character Detección automática de errores Protocolos de comunicación Habilitación de recepción Habilitación de transmisión Generación de tasa de transferencia Interrupciones

19 18 Error de framing Error de paridad Error de rebalse (receive overrun) Condición de break Detección automática de herores errores UxRCTL Usart Receive Control Register

20 19 Habilitación de recepción Operación Inicialización y reinicio (reset) Formato del Character Habilitación de recepción Protocolos de comunicación Detección automática de errores Habilitación de transmisión Generación de tasa de transferencia Interrupciones

21 20 Habilitación de recepción (Receive Enable) URXEX Habilita o deshabilita recepción de datos Se guardan en el UxRXBUF

22 21 Habilitación de recepción Character recibido Condición de Interrupción URXEx=0 URXEx=1 URXEx=0 URXEx=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 (Receive Enable) UxTCTL, Usart Transmit Control Register

23 22 Habilitación de transmisión Habilitación de recepción Operación Inicialización y reinicio (reset) Formato del Character Habilitación de transmisión Protocolos de comunicación Detección automática de errores Generación de tasa de transferencia Interrupciones

24 23 Habilitación de transmision Habilitación de Transmisión (Transmit Enable) UTxEX habilita o deshabilita transmisión de datos Se inicia la transmisión escribiendo en UxTxBUF

25 24 Character Transmitido Condición de Interrupción UTXEx=0 UTXEx=1, Se escribe dato al buffer de transmisión UTXEx=1 UTXEx=0 UTXEx=1 UTXEx=0 y última entrada del buffer es transmitida Transmisión Deshabilitada Estado de espera (Transmisor Habilitado) Transmisión Activa Incompleto No se escribe dato en el buffer de transmisión Habilitación de transmision Habilitación de Transmisión (Transmit Enable) (Transmit Enable) UxTCTL, Usart Transmit Control Register

26 25 Habilitación de transmision Habilitació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

27 26 Generación de tasa de transferencia Habilitación de transmisión Habilitación de recepción Operación Inicialización y reinicio (reset) Formato del Character Generación de la tasa de transferencia Protocolos de comunicación Detección automática de errores Interrupciones

28 27 Generacion de la tasa Generación de la tasa de transferencia (Baude 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

29 28 Interrupciones Generación de tasa de transferencia Habilitación de transmisión Habilitación de recepción Operación Inicialización y reinicio (reset) Formato del Character Interrupciones Protocolos de comunicación Detección automática de errores

30 29 Interrupciones 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

31 30 Interrupciones Interrupciones Registros de interrupción 1 y 2 UTXIFGX, flag de transmisión URXIFGX, flag de recepción

32 31 #include #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ón Ejemplo de Programación

33 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

34 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

35 34 Fin del asunto

36 35 (Aplausos aquí)

37 36 unsigned char RS232RXBufferCount (void) { return (RXCharCount); } RS232RXBufferCount

38 37 void RS232Init (void) { RXWriteIndex = RXReadIndex = RXCharCount = 0; TXWriteIndex = TXReadIndex = TXCharCount = 0; TXBufferEmpty = BUFFER_EMPTY; // reset empty flag InitUART0(); } RS232Init

39 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

40 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*/ }

41 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*/ } InitUART0

42 41 UxCTL Registro de control USART

43 42 UxTCTL UxCTL Registro de control de tx

44 43 uxbr0 Registro de control de tasa de transferencia

45 44 bcsctl

46 45 Uxmctl

47 46 me1


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

Presentaciones similares


Anuncios Google