0% encontró este documento útil (0 votos)
121 vistas18 páginas

ITA58 Lab 6 CRJC

Cargado por

Juan CR
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)
121 vistas18 páginas

ITA58 Lab 6 CRJC

Cargado por

Juan CR
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

Universidad Tecnológica de Querétaro

Tarea 4
LAB4
Asignatura:

DDP

Nombre del profesor:

José Felipe Aguilar Pereyra

Grupo: ITA58

Presenta:

Campos Ramírez Juan Carlos – 2019348182

Santiago de Querétaro, Qro. Septiembre 2022


Contenido
Objetivo de la práctica:........................................................................................................3

Fundamento Teórico:.......................................................................................................... 4

Planteamiento del problema................................................................................................6

Materiales............................................................................................................................ 7

Requisitos del Cliente:.........................................................................................................8

Diagrama de bloques.......................................................................................................... 9

Asignación de terminales..................................................................................................10

Diagrama electrónico........................................................................................................ 11

Diagrama de flujo..............................................................................................................12

Código desarrollado.......................................................................................................... 13

Pruebas............................................................................................................................. 16

Resultados........................................................................................................................ 17

Bibliografía........................................................................................................................ 18
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).
Fundamento 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:

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);
Planteamiento del problema
1. Leer el Workbook sección UART
2. Importar el proyecto CCS Lab12 UART como Laboratory_05
3. Configurar el UART0 a 115200 Bauds
4. Configurar las E/S a utilizar como RX/TX
5. Construir, cargar y ejecutar el programa.
6. Incorporar la interrupción del UART0
7. Construir, cargar y ejecutar el programa.
Materiales
Tiva C Series TM4C123G Evaluation Kit

PC con Code Composer Studio y Tivaware


Requisitos del Cliente:
Enviar el texto: “Enter Text Matrícula Nombre(s) Apellido paterno”
Diagrama de bloques
Asignación de terminales

Terminal Asignación
PB0 RX
PB1 TX
Diagrama electrónico
Diagrama de flujo
Código desarrollado
Finalmente el código que se realizo fue el siguiente

/* Documentación del Proyecto


@Company
Universidad Tecnológica de Querétaro

@Project Name
Laboratory2

@File Name
main.c

@Author Campos Ramirez Juan Carlos

@Summary
This is the generated main.c using TM4C123G MCU.

@Description
This source file initialize the clock system and the GPIO peripheral using
TivaWare.
We’ll then use the GPIO output to blink an LED on the evaluation board.

Generation Information :
Product Revision : TM4C123GXL - 1.168.0
Device : TM4C123GH6PM7
The generated drivers are tested against the following:
Languaje : C ANSI C 89 Mode
Compiler : TIv16.9.6LTS
CCS : CCS v7.4.0.00015
*/

/*
(c) 2020 Campos Ramirez Juan Carlos. You may use this
software and any derivatives exclusively with Texas Instruments products.

THIS SOFTWARE IS SUPPLIED BY Campos Ramirez Juan Carlos "AS IS". NO


WARRANTIES, WHETHER
EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
PARTICULAR PURPOSE, OR ITS INTERACTION WITH TEXAS INSTRUMENTS PRODUCTS,
COMBINATION
WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.

Campos Ramirez Juan Carlos PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR
ACCEPTANCE OF THESE
TERMS.
*/
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
uint8_t ui8Data0;
uint8_t ui8Data1;
int main(void) {
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);

//CONFIGURACION DE PERIFERICOS//

//CONFIGURACION DEL UART0//


SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);

GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);


UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(), 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));

//CONFIGURACION DEL UART1//


SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinConfigure(GPIO_PB1_U1TX);

GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);


UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
//Fin De La Comunicacion

UARTCharPut(UART0_BASE, 'E');
UARTCharPut(UART0_BASE, 'n');
UARTCharPut(UART0_BASE, 't');
UARTCharPut(UART0_BASE, 'e');
UARTCharPut(UART0_BASE, 'r');
UARTCharPut(UART0_BASE, ' ');
UARTCharPut(UART0_BASE, 'T');
UARTCharPut(UART0_BASE, 'e');
UARTCharPut(UART0_BASE, 'x');
UARTCharPut(UART0_BASE, 't');
UARTCharPut(UART0_BASE, ':');
UARTCharPut(UART0_BASE, ' ');
UARTCharPut(UART0_BASE, 'j');
UARTCharPut(UART0_BASE, 'u');
UARTCharPut(UART0_BASE, 'a');
UARTCharPut(UART0_BASE, 'n');
UARTCharPut(UART0_BASE, ' ');

while (1) //let interrupt handler do the UART echo function


{
//Recepcio Por UART0 Transmision Por UART1
if (UARTCharsAvail(UART0_BASE)) // so existe un dato disponble en el uart0
{
ui8Data0=UARTCharGet(UART0_BASE);
UARTCharPut(UART1_BASE, ui8Data0); UARTCharPut(UART0_BASE, ui8Data0);
}
//Recepcion Por UART1 Transmision Por UART0
if (UARTCharsAvail(UART1_BASE)) // so existe un dato disponble en el uart0
{
ui8Data1=UARTCharGet(UART1_BASE);
UARTCharPut(UART0_BASE, ui8Data1);
}

}
}
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

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 realizó 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í:
Resultados
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?”.
Bibliografía
Texas Instruments. (2013). Getting Started with the Tiva™

También podría gustarte