Está en la página 1de 21

MICROCONTROLADORES PIC USART

Universal Synchronous Asynchronous Receiver Transmitter Sncrona o asncrona Recibe y transmite Operacin full duplex asncrona Aplicacin tpica: comunicacin con un PC mediante el protocolo RS232, para lo que necesita un driver para desplazamiento de niveles

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART

Bloques que forman la USART: Generador de la relacin de baudios (BRG) Genera el reloj de transmisin a partir del oscilador de la MCU Determina la velocidad de transferencia Circuito de muestreo Deteccin del nivel lgico en el terminal de RX Sncronizacin del reloj Transmisor asncrono Receptor asncrono

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART

Diagrama simplificado de transmisin:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART Diagrama simplificado de recepcin:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART Ejemplo: forma de onda de la transmisin serie del dato 25h con 8 y 125h con 9 bits:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART. Registros de control

SPBRG Generacin del baud rate BRGH bit en el registro TXSTA SYNC bit en TXSTA TXSTA Control y estado de transmisin RCSTA - Control y estado de recepcin TXREG Registro de transmisin de datos RCREG - Registro de recepcin de datos PIR1 Registro de indicadores (flags) de interrupcin PIE1 Registro de habilitacin de interrupciones

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART. Velocidad de transmisin Formulas para el cculo 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 transmisin: 9600 baudios asncrono Para BRGH = 1 SPBRG = 4000000/(16 x 9600) - 1 = 25.04 Para BRGH = 0 SPBRG = 4000000/(64 x 9600) - 1 = 5.51 Mejor eleccin: BRGH = 1, SPBRG = 25
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART Velocidades de transmisin para: BRGH=0 BRGH=1

Registros asociados con el generador de relacin de baudios:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART. Registros de control TXSTA: Transmit Status and Control Register

bit 7 CSRC: Bit de seleccin de fuente de reloj Modo asncrono: no utilizado Modo sncrono 1 = Modo maestro (reloj generado internamente por BRG) 0 = Modo esclavo (reloj de la fuente externa) bit 6 TX9: Bit de habilitacin de transmisin de 9 bits 1 = Transmisin de 9 bits 0 = Transmisin de 8 bits bit 5 TXEN: Bit de habilitacin de transmisin 1 = Transmisin habilitada 0 = Transmisin no habilitada. bit 4 SYNC: Bit de seleccin de modo en la USART 1 = Modo sncrono 0 = Modo asncrono
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC USART. Registros de control TXSTA: Transmit Status and Control Register

bit 3 No implementado se lee 0 bit 2 BRGH: Bit de seleccin de alta velocidad de trasmisin (High Baud Rate) Modo sncrono: no utilizado Modo asncrono 1 = Alta velocidad 0 = Baja velocidad bit 1 TRMT: Bit de estado del registro de desplazamiento de transmisin 1 = TSR vacio 0 = TSR lleno bit 0 TX9D: Noveno bit del dato a transmitir. Puede ser el bit de paridad.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

10

10

MICROCONTROLADORES PIC USART. Transmisor Diagrama de bloques TXREG vaco si TXIF=1

Buffer del registro de desplazamiento (R/W)


Salida de datos

Registro de desplazamiento de transmisin Habilitacin de TX TSR vacio (TRMT=1) Habilitacin bit 9 Bit 9 Habilitacin puerto serie

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

11

11

MICROCONTROLADORES PIC USART. Transmisor

Registros asociados en el 16F87x:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

12

12

MICROCONTROLADORES PIC USART. Transmisor

Cronogramas de transmisin:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

13

13

MICROCONTROLADORES PIC USART Inicializacin de la transmisin

Inicializar el registro SPBRG con el valor apropiado para la velocidad a utlizar (tener en cuenta el bit BRGH) Habilitar el puerto serie asncrono 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 trasmisin de 9 bits poner a 1 el bit TX9. Habilitar la transmisin con un 1 en el bit TXEN , qu tambin pondr a uno el bit TXIF. Si se utiliza la transmisin de 9 bits cargar el noveno bit en TX9D. Cargar el dato en el registro TXREG (comienza la transmisin).

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

14

14

MICROCONTROLADORES PIC USART. Registros de control RCSTA: Receive Status and Control Register

bit 7 SPEN: Bit de habilitacin de puerto serie 1 = Puerto serie habilitado (configura RX/DT y TX/CK como pines del puerto serie) 0 = Puerto serie inhibido bit 6 RX9: Bit de habilitacin de datos de 9 1 = Recepcin de 9 bits 0 = Recepcin de 8 bits bit 5 SREN: Bit de habilitacin de recepcin sencilla. Modo asncrono: no utilizado Modo sncrono - maestro 1 = Habilitada 0 = Inhibida Se pone a cero cuando se completa una recepcin. Modo sncrono - esclavo: no utilizado
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

15

15

MICROCONTROLADORES PIC USART. Registros de control RCSTA: Receive Status and Control Register

bit 4 CREN: Bit de habilitacin de recepcin continua Modo asncrono 1 = Habilitado 0 = Inhibido Modo sncrono 1 = Habilitado 0 = Inhibido bit 3 No implementado se lee 0 bit 2 FERR: Bit de error de trama 1 = Error de trama (se puede actualizar leyendo el registro RCREG y leyendo el siguiente byte vlido) 0 = Sin error de trama bit 1 OERR: Bit de error de overrun 1 = 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
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

16

16

MICROCONTROLADORES PIC Recepcin continua =1 USART. Receptor Indicadores de error

Diagrama de bloques:

Entrada de datos Registro de desplazamiento de recepcin Habilitacin puerto serie

Datos de 9 bits Recepcin completa Datos no ledo en FIFO

Doble buffer de recepcin (FIFO)


17

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

17

MICROCONTROLADORES PIC USART. Receptor

Registros asociados en la MCU 16F87x:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

18

18

MICROCONTROLADORES PIC USART Inicializacin de la recepcin

Inicializar el registro SPBRG con el valor apropiado para la velocidad a utlizar (tener en cuenta el bit BRGH) Habilitar el puerto serie asncrono 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 trasmisin de 9 bits poner a 1 el bit RX9. Habilitar la recepcin con un 1 en el bit CREN. El bit RCIF se pondr a 1 cuando la recepcin se complete, se generar una interrupcin 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

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

19

19

MICROCONTROLADORES PIC USART. Ejemplo de programa

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

20

20

MICROCONTROLADORES PIC USART. Muestreo El dato en el pin de RX se muestrea tres veces y se determina su nivel (alto o bajo) por mayora.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

21

21

También podría gustarte