USART
USART
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
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
MICROCONTROLADORES PIC USART Ejemplo: forma de onda de la transmisin serie del dato 25h con 8 y 125h con 9 bits:
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
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. 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.
10
10
Registro de desplazamiento de transmisin Habilitacin de TX TSR vacio (TRMT=1) Habilitacin bit 9 Bit 9 Habilitacin puerto serie
11
11
12
12
Cronogramas de transmisin:
13
13
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).
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
Diagrama de bloques:
17
18
18
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
19
19
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.
21
21