.
-
Tabita Quilumbaquin Edwin Ruiz
12de junio de 2012
1. TEMA:“ MANEJO DE COMUNICACIÓN USART ” 2. OBJETIVOS 2.1 OBJETIVO GENERAL: Realizar una aplicación de comunicación usart entre dos micros controladores
2.2 OBJETIVOS ESPECÍFICOS: Configurar el usart para la comunicación entre dos micro controladores en modo de transmisión y recepción (bidireccional).
3. Descripción Se utilizará dos micro controladores cada uno con un pulsador y un led, al momento de presionar el pulsador de un micro controlador deberá prender el led del micro controlador 2 y viceversa.
Una de las herramientas que nos ayudara a la realización de esta práctica es el conocimiento del funcionamiento de protocolo de comunicación usart (universal synchronous asynchronous receiver transmitter) es uno de los dos puertos series de los que dispone los Atmega 324pa Puede funcionar de forma síncrona (half duplex) o asíncrona (full dúplex). Modo asíncrono: 1. Modo full-duplex (bidireccional). 2. Utiliza los pines: (PCINT24/RXD0) PD0:): Recepción (entrada). (PCINT25/TXD0) PD1: Transmisión (salida). (PCINT26/RXD1/INT0) PD2: Recepción (entrada). (PCINT27/TXD1/INT1) PD3: Transmisión (salida). Por lo tanto el micro controlador posee un Usart1 y un usart 2, estas son algunas de las características que se puede mencionar: Puede generar interrupciones al recibir dato o después de enviarlo. Puede operar en modo Spi maestro. La velocidad de transmisión de datos es configurable por el usuario. Los datos pueden ser de 5, 6,7,8,o 9 bits Puede trabajar con uno o más bits de Stop.
Los registros a configurarse son :
Transmisión de datos: El dato que el Usart transmitirá debe ser previamente cargado en el registro UDRO, con ello el dato pasara al registro de desplazamiento transmisión si es que esta vacio, luego el dato saldrá bit a bit por el pin TDX, pero si el registro de desplazamiento se encuentra transmitiendo un dato previo, el nuevo dato permanecerá en el UDRO, hasta que el registro de desplazamiento quede disponible, en este lazo de tiempo el registro UDRO no podrá aceptar otro dato. Es posible escribir en UDR0 hasta dos datos sin pausa intermedia, el primero ira al registro de desplazamiento y el segundo se quedara en UDR0, así se puede decir que el USART0 tiene un buffer FIFO de transmisión de dos niveles. El UDRO: El usart tiene dos buffer para la transferencia de datos: un buffer de transmisión donde se carga los datos a transmitir y un buffer de recepción, donde se almacenan los datos recibidos. Mediante el UDRO se accede a ambos buffers. UCSR0A, UCSR0B, UCSR0C: son los registros de control de estado del usart UBR00L y UBRR0H: son los registros generadores de velocidad de transmisión
Recepción de datos: Los datos seriales que llegan, ingresan bit a bit por el Registro RXD0 y se van depositando en el registro de desplazamiento de recepción. Cuando este completo, cuando llegue a su bit de parada, pasara paralelamente al registro UDR0. Luego podremos leer el dato del registro UDR0. Pero si el registro UDR0 esta ocupado con datos precios que no han sido leído por el procesador, el nuevo dato permanecerá en el registro de desplazamiento hasta que haya espacio.
El registro UCR0A: RXC0: este bit vale 1 cuando hay datos no leídos en el buffer de recepción y vale 0 cuando el buffer de recepción esta vacio. Si el buffer de recepción esta deshabilitado, el buffer de recepción será liberado y el bit RXc0 se pondrá en cero TXC0: Este bit se pone a uno cuando un dato completo ha terminado de salir del Registro de desplazamiento de transmisión y no hay ningún dato presente en el registro UDR0. El bit TXC0 se limpia automáticamente cuando de ejecuta la función de interrupción o se limpia por software escribiendo uno sobre él. UDRE0: indica si el buffer de transmisión esta listo paras recibir un nuevo dato. FE0: este bit se pone en uno si el siguiente carácter en el buffer de recepción tuvo un error de trama en la recepción de datos. UOR0: este bit se pone en uno cuando detecta una condición de desbordamiento de dato, ocurre esto cuando el buffer de recepción está lleno. UPE0: Se pone a uno al detectar un error de paridad en el buffer de recepción. U2X0: Solo en el modo de operación asincrónica. MPCM0: Es habilitado en el modo de comunicación multiprocesador. El registro UCSR0B: RXCIE0: Habilita la interrupción de recepción completada cada vez que se active el Flag RXC0. TXCIE0: Habilita la interrupción de transmisión completa cada vez que se active el Flag TXC0. UDRIE0: Habilita la interrupción al activarse la bandera UDRE0. RXEN0; Habilito el modulo receptor del UART TXEN0: Habilito el modulo transmisor del USART. UCSZ02: Conbinado con le UCSZ01 y UCSZ00 del registro UCSRC establece el numero de bits de datos
RXB00: Es el noveno bit del dato recibido cuando se trabaja con datos de 9 bits.
EL registro UCSR0C: UMSEL01y UMSEL00 seleccionan el modo de operación del USART como se muestra en la figura
UPM01y UPM00 Habilitaran y configuran la generación y comparación del bit de paridad.
USBS0: Este bit selecciona el numero de bits que utilizara el transmisor . el receptor ignora esta configuración.
UCSZ01y UCSZ00 se combinan con el UCSZ02 del registro UCSR0B para establecer el n umero de bits de los datos que utilizara el transmisor y e l receptor.
- Lista de componentes: Micro controlador atmega 324p. Cables. Protobooar Fuente de 5 v Led , pulsadores y resistencias
7.
#include
#define F_CPU 8000000UL //definicion de osilador 10. #include //libreria de retardos 11. int dato =0; 12. int dato2=0; 13. #include 8. 9.
14.
ISR(INT0_vect) { 17. dato =1;//cargo el dato con 1 TransmitByte(dato); 18. _delay_ms(200); 19. 20. dato=0; 21. } 15. 16.
22.
//--------Función para recibir un byte-----unsigned char ReceiveByte( void ) 25. { while ( !(UCSR0A & (1<
36. 37.
int main(void) {
38. 39.
PORTD=0x04;//puerto D como entrada
DDRB=0X01;//puerto B como salida 41. //--------configuracion de interupciones-----------42. sei(); //habilito interupcion blobal 43. EIMSK|=(1<
55.
dato2=ReceiveByte(); TransmitByte(dato);
56. 57. 58.
PORTB=dato2;
59. 60. 61. 62.
}
63. 64.
}
La configuración del depende esencialmente del modo de comunicación que vayamos a utilizar, el tamaño de bits de datos y sobre todo de la aplicación que se desee realizar. El micro controlador con el que estamos tr abajando posee dos vías de comunicación, el Usart0 y el Usart1, para la utilización de los mismos se deberá deshabilitar las otras funciones que cumple el pin.
.
Collaguazo, Gerardo, Sistemas Basados En Microprocesadores Tutorial avr, biblioteca personal. http://www.slideshare.net/lmzurita/usart Datasheet atmega 324p