Universidad Tecnológica de Querétaro
Laboratorio 6
UART
Asignatura:
Dispositivos Digitales Programables
Nombre del profesor:
José Felipe Aguilar Pereyra
Grupo: ITA58
Presenta:
Cano López Isaac – 2019348055
Santiago de Querétaro, Qro. Octubre 2022.
I. Objetivo de la práctica
El objetivo de este laboratorio es enviar datos a través de la UART. El UART está
conectado a la serie virtual del emulador puerto que se ejecuta sobre el cable USB
de depuración.
(Instrumentos de Texas, 2013).
II. Introducción
En esta práctica, se empleará la comunicación UART para enviar datos de dos
diferentes “Tivas C Series” a dos diferentes terminales dentro de una computadora
en el software “Code composer Studio”, por lo que, se requerirá realizarla en
equipo y se reportarán los resultados obtenidos.
III. Marco teórico
Describe UART Features:
UART significa receptor y transmisor asíncrono universal. Es uno de los protocolos
de comunicación en serie por cable más simples que se utiliza para transferir
datos en serie entre dos dispositivos en aplicaciones de sistemas integrados.
Como su nombre indica, es un protocolo de comunicación asíncrono. Por lo tanto,
no se requiere señal de reloj para la sincronización entre dos dispositivos.
(Microcontrollerslab, 2022).
Describe Block Diagram:
Se utilizan dos pines para transferir y recibir datos, como un pin de transmisión
(Tx) y un pin de receptor (Rx). Otros dos pines son solo pines de fuente de
alimentación, como tierra y Vcc (generalmente una fuente de alimentación del
dispositivo). Pero un punto importante a considerar aquí es que la terminal de
tierra o punto de referencia de ambos dispositivos debe ser común.
Por ejemplo, queremos comunicarnos con dos MCU TM4C123G a través de la
comunicación UART, la conexión de hardware entre dos microcontroladores será
de acuerdo con el diagrama de bloques que se muestra a continuación:
Figura 3.1. Tx y Rx.
(Microcontrollerslab, 2022).
Describe Basic Operation:
La línea de transmisión de un dispositivo se conecta con la línea receptora de otro
dispositivo y viceversa. Por ejemplo, en el diagrama anterior “Figura 3.1. Tx y Rx”,
un dispositivo UART es un LaunchPad Tiva TM4C123G y el otro dispositivo es un
módulo GPS. Queremos recibir las coordenadas de ubicación del módulo GPS. La
placa de desarrollo TM4C123G Tiva C enviará solicitudes de datos al módulo GPS
a través del pin Tx y el módulo GPS lo recibirá a través del pin Rx. De manera
similar, el módulo GPS transmitirá datos a través de su pin Tx y el
microcontrolador TM4C123G recibirá estos datos a través de su pin Rx.
(Microcontrollerslab, 2022).
Describe UART Interrupts:
Interrupción única por módulo, borrada automáticamente.
Condiciones de interrupción:
• Error de desbordamiento.
• Error de ruptura.
• Error de paridad.
• Error de encuadre.
• Tiempo de espera de recepción: cuando FIFO no está vacío y no hay más
datos recibidos durante un período de 32 bits.
• Transmitir: se genera cuando no hay datos presentes (si FIFO está
habilitado, consulte el siguiente deslizar).
• Recibir: se genera cuando se recibe el carácter (si FIFO está habilitado,
consulte la siguiente diapositiva).
Las interrupciones en estas condiciones se pueden habilitar individualmente.
Su código de controlador debe verificar para determinar la fuente del UART
interrumpa y borre la(s) bandera(s).
(Texas Instruments, 2022)
Describe UART FIFOs:
• Se accede a ambos FIFO a través del registro de datos UART (UARTDR)
• Después del reinicio, los FIFO están habilitados*, puede deshabilitarlos
reiniciando el bit FEN en UARTLCRH, e.g.
UARTFIFODesactivar(UART0_BASE);
• Los puntos de activación para las interrupciones FIFO se pueden establecer
en 1/8, 1/4, 1/2, 3/4, 7/8 completo, e.g.
UARTFIFOLevelSet(UART0_BASE,
UART_FIFO_TX4_8,
UART_FIFO_RX4_8);
Figura 3.2 FIFOs.
IV. Desarrollo
Para realizar correctamente esta práctica se contempla una serie de pasos, los
cuales, se muestran a continuación:
1. Diagrama de bloques.
2. Asignación de terminales.
3. Diagrama de flujo.
4. Código desarrollado.
5. Pruebas.
4.1 Diagrama de bloques del TM4C123G.
PC1 PC2
PB0 Rx Tx PB1
CCS CCS
TS. USB PB1 Tx Rx PB0 USB TS.
Tx Rx PA0 PA1 Tx Rx
Rx Tx PA1 PA0 Rx Tx
Figura 4.1.1 Diagrama de bloques del TM4C123G.
4.2 Asignación de terminales del TM4C123G.
Terminal Nombre Función Tipo
17 PA0 U0Rx UART
18 PA1 U0Tx UART
45 PB0 U1Rx UART
46 PB1 U1Tx UART
Figura 4.2.1 Asignación de terminales del TM4C123G.
4.3 Diagrama de flujo.
Figura 4.3.1 Diagrama de flujo del código desarrollado.
4.1 Código desarrollado.
Figura 4.4.1 Código de programación de CCS.
5. Pruebas.
Para realizar las pruebas, se procedió a conectar dos “Tivas C Series” tal y como
dicta el diagrama de bloques, por lo que, las conexiones quedan de la siguiente
forma:
Figura 5.1 Conexiones de las dos “Tivas C Series”.
Una vez realizado lo anterior, se procedió a debuggear el programa en cada una
de las “Tivas C Series”, por lo que, una de las dos “Tivas C Series” tendrá el
código de programación escrito en la “Figura 4.4.1” y el otro tendrá uno similar,
salvo que en la línea 73 el UART será el 1 y en la línea 84 el UART será el 0. Así
mismo, se realizo otra modificación en el código que incluye invertir la línea 112 y
118 del código para que la segunda computadora envié y reciba lo mismo,
obteniendo así una diferencia respecto a la primera computadora que lo que envía
solo lo ve la segunda computadora. A continuación, se muestran las siguientes
figuras que ejemplifican lo que se expresó aquí:
Figura 5.2 Terminal de la primera computadora.
5.3 Terminal de la segunda computadora.
V. Resultados
En cuanto a los resultados obtenidos, se puede observar en las pruebas, que la
transmisión de datos en las dos “Tivas C Series” se llevo a cabo de forma
satisfactoria, ya que, en la primera computadora se puede observar escrito el texto
“HOLA” y en la segunda el mismo texto con el texto recibido, por lo que, este
queda como: “HOLA ¿ ´WDJI¿Hola?”.
VI. Conclusiones
Concluyo que, gracias a esta práctica, logré emplear el UART para transmitir
información mediante el puerto PB1 y PB0 de mi “Tiva C Series” a otra “Tiva C
Series”, sin embargo, he de mencionar que tuve una que otra dificultad a la hora
de realizarlo y esto fue así porque de alguna manera mi terminal para mostrar la
información estaba trabada y lo pude solucionar reiniciando el software “Code
Composer Studio”, así mismo, me confundí un poco a la hora de conectar ambas
“Tivas C Series”, pero gracias al manual que viene con mi “Tiva C Serie” fui capaz
de identificar los puerto que debía conectar y solo me guíe del diagrama de
bloques.
VII. Anexos
Figura 7.1 Diagrama electrónico.
VIII. Bibliografía
Texas Instruments. (2013). Getting Started with the Tiva™ TM4C123G
LaunchPad Workshop Student Guide and Lab Manual. Texas: Texas
Instruments.
Microcontrollerslab. (20 de 10 de 2022). microcontrollerslab.com. Obtenido de
microcontrollerslab.com:
https://microcontrollerslab.com/uart-communication-tm4c123-tiva-c-
launchpad/