microcontroladores pic - eiiab - plan de …edii.uclm.es/~miniesta/usart.pdf · 1 sistemas...
TRANSCRIPT
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
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
3
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3
MICROCONTROLADORES PIC
USART
Diagrama simplificado de transmisión:
4
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 4
MICROCONTROLADORES PIC
USART
Diagrama simplificado de recepción:
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:
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
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
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:
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
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
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
1 2
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 12
MICROCONTROLADORES PIC
USART. Transmisor
Registros asociados en el 16F87x:
1 3
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 13
MICROCONTROLADORES PIC
USART. Transmisor
Cronogramas de transmisión:
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).
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
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
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
1 8
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 18
MICROCONTROLADORES PIC
USART. Receptor
Registros asociados en la MCU 16F87x:
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
2 0
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 20
MICROCONTROLADORES PICUSART.
Ejemplo de programa
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.