Está en la página 1de 15

Universidad de Santiago de Chile

Facultad de Ingeniería
Departamento de Ingeniería Eléctrica

Informe Experiencia N°3
UART

Asignatura: Tópicos de Microprocesadores
Profesor: Ing. Felipe Garrido S.
Alumnos: Sebastián Díaz. – Guillermo Bobadilla.

Lunes, 13 de junio de 2016

..11 5.................................. 7 3...................................................................2.....................................................................................2 Diagrama de bloque desarrollo actividad 2...................... 13 5........................................................................................................................................................................................1 Actividad 1........................... 3 1......................... 4 2 Actividades ejemplo.............................................................................................................................. 8 4 Conclusiones...................2 Funciones a utilizar........................ 3 1...... 9 5 Anexos.......................................................1 Diagrama de bloque desarrollo actividad 1.................................................................................................................................................3 Fotografías mostrando el funcionamiento de la placa con las funciones solicitadas.................3 Función Transmitir carácter...............2...2 Función Recibir carácter...... 11 5.....................................3............................................................................................. 5 2..................2 Desarrollo actividad 2........................................................................................................ 4 1.............................................................. 3 1....................................................1 Función Inicializar UART........................................................2........................................4 1...1 Desarrollo ejemplo 1.... 7 3..............................3....................2......................................................2 Actividad 2............................................................................................................................................2 Desarrollo ejemplo 2......13 5.... 5 2..............................3 1...........................................................................................................................................................................12 5............4 Función Transmitir string...............................................Contenido 1 Introducción................. 6 3 Actividades desarrollo................................................ 14 2 ..................................................1 Objetivos.......................................................1 Desarrollo actividad 1.............................................

ambas USARTs pueden ser usadas de manera directa en modo asíncrono (es decir. estos existen en dispositivos Bluetooth (SPP). 1. WiFi. como UARTs) y ello otorga inmediata compatibilidad con infinidad de equipos que usan estos estándares. La UART0 está alambrada a un convertidor TTL/RS232. que pueden ser operados en modo síncrono o asíncrono.2 Funciones a utilizar. 1.1 Objetivos. se muestran las funciones para el manejo del UART. Estas funciones permiten manejar el UART del microcontrolador. inicialmente mediante el desarrollo de programas básicos. Estas funciones se encuentran implementadas en el Proyecto Base del programa principal. dispositivos de audio y video. Lo anterior. Ejemplo: serial_init (9600).1 Introducción Hoy en día es muy común el uso de comunicación serial UART en sistemas embebidos y proyectos de aplicación en electrónica.1 Función Inicializar UART. A continuación. En esta experiencia se manejó el periférico UART del microcontrolador. el cual permitirá realizar los ejemplos expuestos en este laboratorio y el desarrollo de las actividades propuestas. caracteres y variables a través del puerto serial desde un emisor (Computador). conversión a USB. permitió la familiarización con este periférico. 3) Recibir datos. Las funciones a utilizar en esta experiencia se encuentran declaradas en el formulario UART. caracteres y variables a través del puerto serial hacia un receptor (Computador). En la placa CADmega128. //Inicializa la UART junto con establecer la transmisión de datos (baudrate). 1. void serial_init(baudrate). El presente informe detalla las actividades realizadas en la tercera experiencia del Laboratorio de Tópicos de Microprocesadores. //Inicializa UART0 a 9600 8-N-1 3 . que permite enviar y recibir datos desde un computador hacia el microcontrolador a través del puerto de comunicación serial RS 232 integrada en la placa de desarrollo CADmega 128-B. La CPU ATmega128 posee 2 canales de comunicación serial (USARTs).c y CADmega 128-Bbase. y posteriormente el desarrollo de problemas planteados través de un programa ideado para ser visualizado tanto en la pantalla de un computador. Los objetivos que se quieren alcanzar en esta experiencia de laboratorio es: 1) Familiarizarse con el estándar RS 232. Ethernet. como en la pantalla LCD de la placa de entrenamiento CADmega 128-B. 2) Enviar datos.c. de modo que sus señales aparecen listas para conectarse a un PC u otro equipo compatible con EIA232.2.

2.2 Función Recibir carácter. // Microcontrolador espera recibir un byte por el puerto serial y lo retorna.3 Función Transmitir carácter. Ejemplo: uart_putc('A'). unsigned char serial_rx_uchar ().2. uart_puts(). 4 . 1. // espera recibir carácter o byte desde PC lcd_char(c). Ejemplo: uart_puts(“HOLA!\n”). uart_putc().1. 1. c=serial_rx_uchar(). Ejemplo: ucharc.2. // lo envía directamente al LCD.4 Función Transmitir string.

0). //Set interrupt. Se actualiza los códigos a la base presentada este semestre. lcd_pos(12. goto ciclo_princ. 2. Como primera actividad se revisaron dos ejemplos propuestos que permite comprender el funcionamiento del UART del microcontrolador. lcd_char(dato). lcd_num_dec(dato).0). //regresa a ciclo principal. serial_init(9600). lcd_char('h'). ciclo_princ: dato= serial_rx_uchar(). //dato es el carácter recibido if(dato!=10 && dato!=13) //si el dato es distinto al terminador de línea entonces que lo muestre: { lcd_clear().1 Desarrollo ejemplo 1. se muestra el desarrollo: lcd_init(). } _delay_ms(500).0). Estas actividades tienen como fin poseer los conocimientos necesarios para realizar lo solicitado en el informe. sei(). 5 . lcd_pos(0. habilita todas las interrupciones del micro.2 Actividades ejemplo. a continuación. lcd_num_hex(dato). uchar dato. lcd_pos(5.

ciclo_princ: if (sw_flanco(1)) { uart_putc('*').//Set interrupt. uart_putc(13). uart_putc(13).2.2 Desarrollo ejemplo 2. 6 . Se actualiza los códigos a la base presentada este semestre. habilita la interrupción int n=0. a continuación. sei(). } if (sw_flanco(2)) { uart1_puts_p(“hola mundo”). se muestra el desarrollo: serial_init(9600). } if (sw_flanco(3)) { serial_num(71).

En caso de recibir el carácter “a”."Cuenta: "). //imprime en LCD el valor cuenta en decimal serial_num('c'). Este número ira incrementándose desde 1 a 255 cada 500ms y se debe desplegar en el LCD es la esquina superior izquierda. } if (sw_flanco(4)) { serial_num_float(3.5). //Tiempo de retardo } goto clcp.0.c<255. } goto ciclo_princ. desactivar la alarma (desplegar mensaje: “Normal”) y apagar el LED. _delay_ms(500). desplegar en el LCD el mansaje “Alarma activa” y encender en la placa el LED0. uart_putc(13). { serial_init(9600). sei(). lcd_init(). 3 Actividades desarrollo. } 7 . uart_putc(13). int c=0. //Se declara valor que utilizará el contador clcp: for(c=0. //envía valor cuenta en decimal al puerto serie. lcd_num_dec(c). A partir de los conocimientos expuestos el alumno debe: Crear un código que envíe un número al PC desde el micro por el puerto serial. uart_putc(13). Enviar caracteres del PC al micro por el puerto serial.c++) { lcd_text (0.14159. En caso de recibir el carácter “n”. 3.1 Desarrollo actividad 1. //************************ ACTIVIDAD 1 *********************** int main().

uchar valor. set_led(1. // mensaje mostrado si condición se cumple.0).1). // limpia la pantalla lcd_text(0.0. cplp: valor= serial_rx_uchar(). } 8 . //Declara variable de tipo unsigned character."Alarma Activada"). //************************ ACTIVIDAD 2 *********************** serial_init(9600). // limpia la pantalla lcd_text(0. sei(). set_led(1. // apaga Led } goto cplp.3.0.//valor es el carácter recibido if(valor!=10 && valor!=13) // Si el dato es distinto al terminador de línea entonces que muestre: if(valor =='a') // Ciclo IF para ejecutar ciclo si el valor es 'a') { lcd_clear(). // enciende Led } if (valor=='n') // Segunda condición impuesta. { lcd_clear(). // mensaje mostrado si condición se cumple."normal"). lcd_init().2 Desarrollo actividad 2.

Se utilizará la UART#0. precisamente por su sencillez sigue siendo muy utilizado en módems. etc. Guillermo Bobadilla Al utilizar un dispositivo tan avanzado como un microcontrolador. su facilidad de uso. parada y los bits de datos. que está convertida a RS-232 y lista para usarse por el conector DB-9 de la izquierda de la placa. con una gran ventana que contiene todos los datos recibidos y una línea de edición para escribir las cadenas para transmitir. equipos industriales y de producción. para esto utilizamos comunicación RS232 con el UART (Receptor/Transmisor Universal Asíncrono) que se encuentra incluido en el microcontrolador. Sin embargo. Se ratifica el diseño del microcontrolador para la ejecución eficiente del código C compilado. Todo lo anterior. Esta configuración se conoce popularmente como 8-N-1. La comunicación se realizó bajo las siguientes condiciones: 1) 19200 bps. Utiliza una interfaz similar a la de los programas de "chat" "mensajero ". posee numerosas limitaciones (velocidad de transmisión. falta de corrección de error. 2) Sin paridad. Por otra parte.4 Conclusiones.h proveen toda esta funcionalidad. El protocolo supone que tanto el transmisor y el receptor están configurados de la misma manera. 8 bits de datos y 1 bit de parada. no es multipunto. etc. por supuesto.c y uart. Las librerías uart. Aspectos destacados de esta herramienta son la facilidad de instalación (posiblemente con ajustes pre configurados) mediante una búsqueda del puerto COM adecuado y. 9 . se requieren de interfaces para evaluar los datos o enviar comandos al microcontrolador. a través de la herramienta Termite. es decir. Esto permite al micro: 1) Transmitir datos que van mucho más lentos que la velocidad del mismo micro (buffer de transmisión). El software Termite es una herramienta que facilita el uso y configuración del terminal RS232. La comunicación por RS-232 tiene ya más de 40 años y por su antigüedad. permite una mayor comprensión de la manipulación del puerto serie (UART) del microcontrolador. además dispone de LEDs para mostrar transmisión y recepción. Tanto la transmisión como la recepción de datos están bufferizadas y utilizan interrupciones. 2) Recibir varias decenas de bytes o caracteres del computador “en segundo plano: sin necesidad de paralizar al micro para esperar la recepción (buffer de recepción).). seguir las mismas definiciones para la partida. PLCs. es decir permite enviar y recibir caracteres por el puerto serial. a través de rutinas de programación en C. el cual permite cambiar la continuidad de ejecución de un programa para atender una necesidad. adicionalmente se complementa con el manejo de interfaz display alfanumérico para mostrar mensajes de texto desde el micro al PC y viceversa. como se mencionó. hubo una aproximación al recurso “interrupciones”.

Esta aplicación es útil para microcontroladores que requieran una señal externa desde un PC para activar algún dispositivo.c y uart. tomar registros en el tiempo). labor que el micro se comporta correctamente. Aun así. Esta actividad que.h facilita el uso de los microcontroladores con microprocesador Atmel. como también el uso del microcontrolador para la adquisición de datos para un análisis mayor (si se integran sensores a un microcontrolador. De este modo.exe). 10 . La segunda actividad se solicita enviar datos desde el microcontrolador hacia el PC. el uso del software AVR STUDIO para compilar y depurar el código. Esta comunicación permite reflejar datos directamente en la pantalla LCD disponible en el microcontrolador. En el desarrollo de la experiencia en la primera actividad se comprueba el envío de datos desde un PC hacia la placa. por ejemplo. el microcontrolador enviaba datos erróneos al terminal usado para leer los bytes (termite. seguridad. Se sospecha que el adaptador USB a RS232 presenta problemas.Sebastián Díaz. El uso de la comunicación serie por el puerto RS232 es objetivamente más sencillo que otros tipos de comunicación. lamentablemente por algún error de comunicación. entre otros. Además. El microcontrolador una vez más demostró su versatilidad. estos datos también se utilizan para encender un led. usos en domótica. de manera que se pueden activar dispositivos de manera remota. la información enviada desde el microcontrolador puede ser utilizada para integrar éste a un sistema mayor. si se pudo programar. el código compila por lo que asumiendo que el código funciona como es esperado se concluye que el microcontrolador es un dispositivo con comunicación bidireccional capaz de enviar y recibir información. Este estándar que tiene más de 40 años se caracteriza por ser de fácil programación y rápido para las necesidades de microcontroladores comunes. el uso del lenguaje de alto nivel más las librerías uart. así el uso del microcontrolador se abre a usos a distancia.

5.1 Diagrama de bloque desarrollo actividad 1 11 .5 Anexos.

5.2 Diagrama de bloque desarrollo actividad 2 12 .

1 Actividad 1 13 .5.3.3 Fotografías mostrando el funcionamiento de la placa con las funciones solicitadas 5.

3.2 Actividad 2 14 .5.

15 .