0% encontró este documento útil (0 votos)
223 vistas7 páginas

Comunicación Serial con PIC18F4550

Este documento describe la comunicación serial UART/USART con el microcontrolador PIC18F4550. Explica que la UART permite la transmisión y recepción de datos de forma bit a bit entre dos microcontroladores o un microcontrolador y una PC. Detalla los registros involucrados en la comunicación UART y los pasos para configurar el baud rate y transmitir y recibir datos, incluyendo el uso de interrupciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
223 vistas7 páginas

Comunicación Serial con PIC18F4550

Este documento describe la comunicación serial UART/USART con el microcontrolador PIC18F4550. Explica que la UART permite la transmisión y recepción de datos de forma bit a bit entre dos microcontroladores o un microcontrolador y una PC. Detalla los registros involucrados en la comunicación UART y los pasos para configurar el baud rate y transmitir y recibir datos, incluyendo el uso de interrupciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

EUSART

Comunicación serial UART, USART, RS232 con el PIC18F4550

DESCRIPCIÓN

La comunicación UART puede transmitir o recibir datos bit a bit, es por eso que recibe el nombre de
comunicación serial, entre dos microcontroladores o también hacia un computador. La conexión a la PC
es bajo el estándar de comunicación RS232, En esta sección se explicaran a detalle todos los registros
involucrados con este tipo de comunicación y se realizaran ejemplos prácticos. A continuación se
describen las características de este módulo UART.

 Operación Síncrona y Asíncrona.

 Operación Full Dúplex en modo Asíncrono.

 Operación Half Dúplex en operación Síncrona Maestro-Esclavo.

 Operación de 8 o 9 bits.

 Generador de Baud-Rate de Alta y Baja

 Calibración Automática de Velocidad de Baudios.

 Detección Automática de Recepción de datos.

 Detección de errores de OverRun y Frame (datos sobrescritos y dato invalido respectivamente).

 2 Interrupciones independientes; TX completado, RX completado.


En las siguientes imágenes se detallaran los registros involucrados al UART
CONFIGURAR BAUD-RATE

Para una correcta Transmisión/Recepción y sin pérdida de datos, es necesario configurar correctamente
el Baud-Rate a través de los registros SPBRGH y SPBRG. En la siguiente tabla se muestra las ecuaciones
para los modos Síncronos y Asíncronos.
 

Vamos a realizar un ejemplo para despejar un poco nuestras dudas. Si tenemos una Fosc=48Mhz y


queremos unos Baudios de 9600 bps. Calcularemos el valor que debemos escribir en el
registro SPBRG en modo 8 bits y baja Velocidad; BRG=0 y BRG16=0,  con la fórmula vista anteriormente.

Como podemos apreciar el resultado no es exacto, esto nos lleva a calcular el error con la siguiente
ecuación.

A continuación se explicarán los PASOS para la Transmisión/Recepción de datos a través de la USART

1. Configurar las líneas pin RX y pin TX como entrada y salida respectivamente, a través del registro
TRISC.

2. Configurar el modo Síncrono o Asíncrono.

3. Configurar el Baud-Rate del USART a través del registro UBRRH y

4. Configurar Tamaño de byte 8/9 bits.

5. Habilitar la Transmisión y Recepción a través de los bits TXEN y RCEN respectivamente.

6. Habilitar la Interrupción de Transmisión/Recepción a través de los


bits TXIE y RCIE respectivamente (opcional).

PROCESO DE TRANSMISIÓN DE DATOS

Para enviar un dato no basta con escribir el valor que se desea enviar en el registro TXREG. Sin
embargo, si se quiere enviar varios datos consecutivos debe tenerse cuidado de NO escribir
un nuevo valor en TXREG antes de que el valor anterior haya sido enviado. Para ello es necesario saber
si el registro TXREG ha quedado libre o está vacío. Esto puede hacerse de 2 formas.
1. Por Sondeo: En este caso el programa debe monitorizar el estado del bit TXIF. Si este bit está
a “1” significa que TXREG está vacío y por tanto podemos escribir el siguiente dato.

2. Por Interrupción: En este caso se habilita la Interrupción a través del bit TXIE, entonces se
producirá una interrupción cada vez que el registro TXREG esté vacío. Por tanto esto nos
permite detectar cuando TXREG está libre para enviar un nuevo dato, sin embargo si
habilitamos dicha Interrupción cuando NO estamos Transmitiendo datos
se generarán Interrupciones continuas mientras TXREG este vacío. Por tanto solo se
debe habilitar esta Interrupción después de haber escrito un nuevo dato en el registro TXREG y
se deshabilitará cuando se ha escrito el ultimo

PROCESO DE RECPCIÓN DE DATOS

Para recibir un dato no basta con leer el valor  en el registro RCREG, es necesario esperar a que la
recepción del dato se haya completado correctamente para poder realizar el proceso de lectura del
registro. Esto puede hacerse de 2 formas.

1. Por Sondeo: En este caso el programa debe monitorizar el estado del bit RCIF. Si este bit está
a “1” significa que el dato recibido podrá ser leído del registro RCREG.

2. Por Interrupción: En este caso se habilita la Interrupción a través del bit RCIE, entonces se
producirá una interrupción cada vez que el registro RCREG posea un nuevo Por tanto esto nos
permite detectar cuando RCREG está listo para ser leído.

También podría gustarte