Está en la página 1de 5

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica y


Eléctrica
“Zacatenco”

Alumno: Peña Hidalgo Brandon

Reporte de Clase 8 “UART”

Asignatura: Microcontroladores

Profesor: Juan Carlos Iglesias Rojas

Grupo: 7CM3
¿Qué es la UART?
Transmisor-Receptor Asíncrono Universal, es el dispositivo que controla los
puertos y dispositivos serie. Se encuentra integrado en la placa base o en
la tarjeta adaptadora del dispositivo.
Los puertos del microcontrolador se pueden conectar de manera directa al
otro dispositivo y viceversa.
Se usa una comunicación FULL DUPLEX ya que se tiene el transmisor y
receptor.
Físicamente, es una señal TTL (niveles de tensión) significa que el “0”
lógico se representa como GND o cercano a ella y “1” lógico se representa
con 3.3 v para nuestro microcontrolador.
La conexión debe estar de manera cruzada, Tx con Rx y viceversa, solo
GND con GND.
La comunicación se lleva a cabo de la siguiente manera:

A través del estado de espera, es un estado lógico de “1”, se va a


permanecer en ese estado hasta que algo lo modifique o se transmita un
dato.
Empieza la transmisión mediante un flanco de bajada, es decir, de “1” a “0”
bit start (bit de comienzo), de manera serial asíncrona.
Considerando que debe ser la misma velocidad de transmisión y recepción.
que por lo regular es 9600 bit/segundos apegado al estándar.
Después de empieza a transmitir un byte, es decir, bit por bit, del mas
significativo al menos significativo a través de un muestreo uno por uno, es
decir, un registro de corrimiento de paralelo a serie y viceversa.
Por último, el bit de paro es opcional, para regresar al estado inicial de
espera.
Opcionalmente se puede asignar un bit de paridad, esto sirve para la
detección de errores, por ejemplo, si hay una interferencia en la transmisión
de un dato mediante el cable, el dato enviado cambia de “1” a “0” y
viceversa por lo tanto hay errores de comunicación. Se basa en la paridad
de los bits, es decir, si es par o impar el bit que se envió, si detecta que lo
que se envió no es lo que recibe hay un error y se vuelve a enviar.
En aplicaciones reales no se utiliza esto, sino se ocupan mas byte’s para la
redundancia de errores.

Para poder utilizar la UART se configuran mediante el wizard y general esta


línea de código, donde se puede ver que el Tx esta en el puerto C6 y el Rx
en el C7, a una velocidad de 19200 bit/segundos, se recomienda usar el
hardware ya que se pueden generar UART’s por software, pero genera
memoria en CPU.
Utilizando la función kbhit() nos va a retornar un falso o un verdadero
dependiendo de si tiene o no un dato en el buffer de recepción, se debe
ejecutar constantemente, es decir, en un loop.
Si la función es verdadera, hay un dato, se procede a leer mediante getc y
se asigna a una variable de 8 bit no signada, dummy1.
Después se habilita la máscara y la interrupción global.

Se crea una función de interrupción de recepción de la UART, si se llega


aquí es que ya llego un dato, se procede a leer dicho dato y se compara el
dato con un carácter, si el dato que se lee es igual al carácter entonces se
imprime y se manda a través de la UART a la computadora. Y si envió una
T me va a imprimir la hora.
Aquí cada ves que se presione la letra V se va a imprimir el voltaje, esto a
través del microcontrolador, se va variando a través del potenciómetro. Así
mismo con la hora, pero presionando la letra T, si yo presiono otra tecla no
transmite nada.

También podría gustarte