Top Banner
1 SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 1 MICROCONTROLADORES PIC USART Universal Synchronous Asynchronous Receiver Transmitter Síncrona o asíncrona Recibe y transmite Operación full duplex asíncrona Aplicación típica: comunicación con un PC mediante el protocolo RS232, para lo que necesita un driver para desplazamiento de niveles
21

Usart PIC config LANDA

Jan 13, 2015

Download

Career

Dave

Like & Coment pls (; by Landa
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: Usart PIC config LANDA

1

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 1

MICROCONTROLADORES PIC

USART

Universal Synchronous Asynchronous Receiver Transmitter• Síncrona o asíncrona• Recibe y transmite• Operación full duplex asíncrona• Aplicación típica: comunicación con un PC mediante el

protocolo RS232, para lo que necesita un driver para desplazamiento de niveles

Page 2: Usart PIC config LANDA

2

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 2

MICROCONTROLADORES PIC

USART

Bloques que forman la USART:• Generador de la relación de baudios (BRG)

Genera el reloj de transmisión a partir del oscilador de la MCUDetermina la velocidad de transferencia

• Circuito de muestreoDetección del nivel lógico en el terminal de RXSíncronización del reloj

• Transmisor asíncrono• Receptor asíncrono

Page 3: Usart PIC config LANDA

3

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3

MICROCONTROLADORES PIC

USART

Diagrama simplificado de transmisión:

Page 4: Usart PIC config LANDA

4

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 4

MICROCONTROLADORES PIC

USART

Diagrama simplificado de recepción:

Page 5: Usart PIC config LANDA

5

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 5

MICROCONTROLADORES PIC

USART

Ejemplo: forma de onda de la transmisión serie del dato 25h con 8 y 125h con 9 bits:

Page 6: Usart PIC config LANDA

6

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 6

MICROCONTROLADORES PIC

USART. Registros de control

SPBRG – Generación del ‘baud rate’BRGH bit en el registro TXSTASYNC bit en TXSTA

TXSTA – Control y estado de transmisiónRCSTA - Control y estado de recepciónTXREG – Registro de transmisión de datosRCREG - Registro de recepción de datosPIR1 – Registro de indicadores (‘flags’) de interrupciónPIE1 – Registro de habilitación de interrupciones

Page 7: Usart PIC config LANDA

7

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 7

MICROCONTROLADORES PIC

USART. Velocidad de transmisión

Formulas para el cáculo de los baudios

Baudios = Fosc/(16(SPBRG+1)), BRGH=1

Baudios = Fosc/(64(SPBRG+1)), BRGH=0

Formulas para SPBRG

SPBRG = (Fosc/(16 x Baud rate)) - 1, BRGH=1

SPBRG = (Fosc/(64 x Baud rate)) - 1, BRGH=0

Ejemplo:•Oscilador: 4MHz oscillator•Velocidad de transmisión: 9600 baudios asíncrono

Para BRGH = 1SPBRG = 4000000/(16 x 9600) - 1 = 25.04

Para BRGH = 0SPBRG = 4000000/(64 x 9600) - 1 = 5.51

Mejor elección: BRGH = 1, SPBRG = 25

Page 8: Usart PIC config LANDA

8

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 8

MICROCONTROLADORES PIC

USARTVelocidades de transmisión para:

BRGH=0 BRGH=1

Registros asociados con el generador de relación de baudios:

Page 9: Usart PIC config LANDA

9

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 9

MICROCONTROLADORES PIC

USART. Registros de control

bit 7 CSRC: Bit de selección de fuente de relojModo asíncrono: no utilizadoModo síncrono

1 = Modo maestro (reloj generado internamente por BRG) 0 = Modo esclavo (reloj de la fuente externa)

bit 6 TX9: Bit de habilitación de transmisión de 9 bits1 = Transmisión de 9 bits0 = Transmisión de 8 bits

bit 5 TXEN: Bit de habilitación de transmisión1 = Transmisión habilitada 0 = Transmisión no habilitada.

bit 4 SYNC: Bit de selección de modo en la USART1 = Modo síncrono0 = Modo asíncrono

TXSTA: Transmit Status and Control Register

Page 10: Usart PIC config LANDA

1 0

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 10

MICROCONTROLADORES PIC

USART. Registros de control

bit 3 No implementado se lee 0bit 2 BRGH: Bit de selección de alta velocidad de trasmisión (High Baud Rate)Modo síncrono: no utilizadoModo asíncrono

1 = Alta velocidad 0 = Baja velocidad

bit 1 TRMT: Bit de estado del registro de desplazamiento de transmisión1 = TSR vacio0 = TSR lleno

bit 0 TX9D: Noveno bit del dato a transmitir. Puede ser el bit de paridad.

TXSTA: Transmit Status and Control Register

Page 11: Usart PIC config LANDA

1 1

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 11

MICROCONTROLADORES PIC

USART. Transmisor

Diagrama de bloques

Buffer del registro de desplazamiento (R/W)

TXREG vacío si TXIF=1

Habilitaciónde TX

Bit 9

Habilitación bit 9

Registro de desplazamientode transmisión

TSR vacio(TRMT=1)

Habilitaciónpuerto serie

Salida de datos

Page 12: Usart PIC config LANDA

1 2

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 12

MICROCONTROLADORES PIC

USART. Transmisor

Registros asociados en el 16F87x:

Page 13: Usart PIC config LANDA

1 3

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 13

MICROCONTROLADORES PIC

USART. Transmisor

Cronogramas de transmisión:

Page 14: Usart PIC config LANDA

1 4

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 14

MICROCONTROLADORES PIC

USARTInicialización de la transmisión

• Inicializar el registro SPBRG con el valor apropiado para la velocidad a utlizar (tener en cuenta el bit BRGH)

• Habilitar el puerto serie asíncrono poniendo a 0 el bit SYNC y a 1 el bit SPEN.

• Para utilizar interrupciones poner a 1 los bits TXIE, GIE y PEIE.• Para una trasmisión de 9 bits poner a 1 el bit TX9.• Habilitar la transmisión con un 1 en el bit TXEN , qué también pondrá a

uno el bit TXIF.• Si se utiliza la transmisión de 9 bits cargar el noveno bit en TX9D.• Cargar el dato en el registro TXREG (comienza la transmisión).

Page 15: Usart PIC config LANDA

1 5

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 15

MICROCONTROLADORES PIC

USART. Registros de control

RCSTA: Receive Status and Control Register

bit 7 SPEN: Bit de habilitación de puerto serie1 = Puerto serie habilitado (configura RX/DT y TX/CK como pines del puerto

serie) 0 = Puerto serie inhibido

bit 6 RX9: Bit de habilitación de datos de 91 = Recepción de 9 bits 0 = Recepción de 8 bits

bit 5 SREN: Bit de habilitación de recepción sencilla.Modo asíncrono: no utilizadoModo síncrono - maestro

1 = Habilitada0 = Inhibida Se pone a cero cuando se completa una recepción.

Modo síncrono - esclavo: no utilizado

Page 16: Usart PIC config LANDA

1 6

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 16

MICROCONTROLADORES PIC

USART. Registros de control

RCSTA: Receive Status and Control Register

bit 4 CREN: Bit de habilitación de recepción continua Modo asíncrono

1 = Habilitado 0 = Inhibido

Modo síncrono1 = Habilitado 0 = Inhibido

bit 3 No implementado se lee 0bit 2 FERR: Bit de error de trama

1 = Error de trama (se puede actualizar leyendo el registro RCREG y leyendo el siguiente byte válido) 0 = Sin error de trama

bit 1 OERR: Bit de error de overrun1 = Error de overrun (se puede ‘borrar’ poniendo a cero CREN) 0 = Sin error de overrun

bit 0 RX9D: Noveno bit recibido. Puede ser el bit de paridad

Page 17: Usart PIC config LANDA

1 7

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 17

MICROCONTROLADORES PIC

USART. Receptor

Diagrama de bloques:

Registro de desplazamientode recepción

Doble buffer de recepción (FIFO)

Indicadores de error

Habilitaciónpuerto serie

Recepción continua =1

Recepción completaDatos no leído en FIFO

Entrada de datos

Datos de 9 bits

Page 18: Usart PIC config LANDA

1 8

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 18

MICROCONTROLADORES PIC

USART. Receptor

Registros asociados en la MCU 16F87x:

Page 19: Usart PIC config LANDA

1 9

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 19

MICROCONTROLADORES PIC

USARTInicialización de la recepción

• Inicializar el registro SPBRG con el valor apropiado para la velocidad a utlizar (tener en cuenta el bit BRGH)

• Habilitar el puerto serie asíncrono poniendo a 0 el bit SYNC y a 1 el bit SPEN.

• Para utilizar interrupciones poner a 1 los bits TXIE, GIE y PEIE.• Para una trasmisión de 9 bits poner a 1 el bit RX9.• Habilitar la recepción con un 1 en el bit CREN.• El bit RCIF se pondrá a 1 cuando la recepción se complete, se generará

una interrupción si RCIE esta activado.• Leer RCSTA para coger el noveno bit si es necesario y determinar si ha

ocurrido algun error. • Recoger el dato recibido del registro RCREG.• Si se ha producido algun error poner a cero el bit .CREN

Page 20: Usart PIC config LANDA

2 0

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 20

MICROCONTROLADORES PICUSART.

Ejemplo de programa

Page 21: Usart PIC config LANDA

2 1

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 21

MICROCONTROLADORES PICUSART.Muestreo

El dato en el pin de RX se muestrea tres veces y se determina su nivel (alto o bajo) por mayoría.