Microcontrolador AVR (Atmel 8) Comunicación serie Configuración USART
El microcontrolador es un dispositivo de control que contiene una serie de periféricos como RAM, ROM, temporizadores, comunicación de datos en serie, etc., que son necesarios para realizar algunas tareas predefinidas. Hoy en día, los microcontroladores de tipo avanzado se utilizan en una amplia variedad de aplicaciones según su capacidad y viabilidad para realizar algunas tareas deseadas y estos controladores incluyen el microcontrolador 8051, AVR y PIC. En este artículo, vamos a conocer el microcontrolador avanzado de la familia AVR y su programación.
Microcontrolador AVR
El AVR es un tipo de dispositivo de control fabricado por Atmel Corporation en 1996. El AVR no significa nada, es sólo un nombre. Los microcontroladores AVR constan de la arquitectura Harvard, por lo que el dispositivo funciona muy rápido con un número reducido de instrucciones a nivel de máquina (RISC). Los microcontroladores AVR tienen características especiales en comparación con otros microcontroladores, como 6 modos de suspensión, ADC incorporado, oscilador interno y comunicación de datos en serie, etc. Los microcontroladores AVR están disponibles en diferentes configuraciones de 8, 16 y 32 bits para realizar diversas operaciones.
Comunicación de datos en serie USART en el microcontrolador AVR
Las siglas USART significan receptor y transmisor universal síncrono y asíncrono. Es una comunicación en serie de dos protocolos. Este protocolo se utiliza para transmitir y recibir los datos bit a bit con respecto a los pulsos de reloj en un solo cable. El microcontrolador AVR tiene dos pines: TXD y RXD, que se utilizan especialmente para transmitir y recibir los datos en serie. Cualquier microcontrolador AVR dispone de un protocolo USART con sus propias características.
Las principales características del AVR USART
- El protocolo USART soporta el protocolo full-duplex.
- Genera una tasa de baudios de alta resolución.
- Admite la transmisión de bits de datos en serie de 5 a 9 y consta de dos bits de parada.
Configuración de los pines de la USART
La USART del AVR consta de tres pines:
- RXD: Pin receptor USART (ATMega8 PIN 2; ATMega16/32 Pin 14)
- TXD: pin transmisor USART (ATMega8 PIN 3; ATMega16/32 Pin 15)
- XCK: Clavija de reloj USART (ATMega8 PIN 6; ATMega16/32 Pin 1)
Modos de funcionamiento
El microcontrolador AVR de protocolo USART funciona en tres modos que son
- Modo normal asíncrono
- Modo asíncrono de doble velocidad
- Modo sincrónico
Modo normal asíncrono
En este modo de comunicación, los datos se transmiten y reciben bit a bit sin pulsos de reloj por la velocidad de transmisión predefinida por el registro UBBR.
Modo asíncrono de doble velocidad
En este modo de comunicación, los datos se transfieren al doble de la velocidad en baudios, que se establece en el registro UBBR y se fijan los bits U2X en el registro UCSRA. Este es un modo de alta velocidad para la comunicación sincrónica para transmitir y recibir los datos rápidamente. Este sistema se utiliza cuando se requiere una configuración precisa de la velocidad en baudios y del reloj del sistema.
Modo sincrónico
En este sistema, la transmisión y recepción de los datos con respecto al pulso de reloj se establece UMSEL=1 en el registro UCSRC.
Configuración de la USART en el microcontrolador AVR
La USART se puede configurar mediante cinco registros: tres de control, uno de datos y uno de selección de velocidad de transmisión, como UDR, UCSRA, UCSRB, UCSRC y UBRR.
7 pasos para componer el programa
Paso 1 Calcular y establecer la velocidad de transmisión en baudios
La velocidad en baudios de la USART/UART se establece mediante el registro UBRR. Este registro se utiliza para generar la transmisión de datos a la velocidad específica. El UBRR es un registro de 16 bits. Como el AVR es un microcontrolador de 8 bits y su tamaño de registro es de 8 bits. Por lo tanto, aquí el registro UBRR de 16 bits se compone de dos registros de 8 bits como UBRR (H), UBRR(L).
La fórmula de la tasa de baudios es
BAUD= Fosc/(16*(UBBR+1))
La fórmula del registro UBRR es
UBRR= Fosc/( 16*(BAUD-1))
La frecuencia del microcontrolador AVR es de 16MHz=16000000; supongamos que la velocidad de transmisión es de 19200Bps, entonces
UBRR= 16000000/(16*(19200-1))
UBRR= 16000000/(16*(19200-1))
UBRR= 51,099
Finalmente encuentra la tasa de baudios
BAUD= 16000000/( 16*(51+1))
UBRR= 19230bps
Paso 2: Selección del modo de datos
El modo de transmisión de datos, el bit de inicio y el bit de parada y el tamaño de los caracteres se establecen mediante el registro de control y estado UCSRC.
Paso 3: Selección del modo de transmisión de datos
El modo síncrono y asíncrono se selecciona mediante el bit UMSEL del registro de estado de control. Si damos UMSEL=0, la USART funciona en modo asíncrono, en caso contrario funciona en modo síncrono.
Paso 4: Bit de inicio y bit de parada
El bit de inicio y los bits de parada son una forma de enviar y recibir los datos en serie. Generalmente, cualquier fama de datos consta de un bit de estado y un bit de parada, pero el microcontrolador AVR tiene un bit de inicio y dos bits de parada para procesar los datos. El bit de parada adicional puede ser útil para añadir un poco más de tiempo de procesamiento de la recepción. Es especialmente útil para velocidades de transferencia de datos elevadas, mientras que la velocidad de transferencia de datos es muy alta, por lo que no obtenemos datos adecuados. Así, podemos aumentar el tiempo de procesamiento utilizando dos bits de parada para obtener los datos adecuados.
El número de bits de parada se selecciona mediante el bit USBS de UCSRC, el registro de estado de control. El USBS=0, para un bit de parada, y el USBS=1, para dos bits de parada.
Paso 5: Establecer el tamaño de los caracteres
Como en el caso de los microcontroladores básicos que envían y reciben el byte de datos (8 bits) a la vez, si en un microcontrolador AVR, podemos elegir un formato de trama de datos en cada trama mediante el bit UCSZ del registro UCSRC.
Paso 6: Almacena los datos recibidos
El microcontrolador AVR consta de un registro de memoria intermedia UDR para transmitir y recibir datos. El UDR es un registro de búfer de 16 bits en el que se utilizan 8 bits para recibir (RXB) los datos y otros bits para transmitirlos (TXB). El registro de búfer de datos de transmisión será el destino del registro UDR para los datos escritos en su ubicación. El registro de búfer de datos de recepción devolverá el contenido del registro UDR.
Paso 7: Habilitación del transmisor y del receptor
Los datos transmitidos y recibidos serán permitidos por los pines RXC y TXC del microcontrolador, que son fijados por el registro UCSRA del microcontrolador. Este bit de bandera establecido por el microcontrolador para los datos se completa con la recepción y la transmisión (TXC=RXC=1).
Duplicar la velocidad en baudios
Podemos duplicar la velocidad de transferencia de la comunicación USART del microcontrolador AVR de 16 bits a 8 bits de forma efectiva mediante el bit U2X del registro UCSRA. Este bit sólo afecta al funcionamiento asíncrono. Si podemos establecer este bit (U2X=1), se reducirá la velocidad de transmisión de 16 bits a 8 bits, duplicando efectivamente la velocidad de transferencia para la comunicación sincrónica.
Se trata de una función avanzada del microcontrolador AVR para acelerar el procesamiento de los datos.
Programa USART
Cada microcontrolador está predefinido con un IDE específico, y en base a este IDE, los microcontroladores se programan con lenguaje C o ensamblador embebido. La programación del microcontrolador AVR está desarrollada por el estudio AVR. Además, si quieres información adicional sobre los pasos para construir proyectos basados en microcontroladores, o información detallada sobre este tema, puedes ponerte en contacto con nosotros comentando a continuación.
Si quieres conocer otros artículos parecidos a Microcontrolador AVR (Atmel 8) Comunicación serie Configuración USART puedes visitar la categoría Generalidades.
Deja una respuesta
¡Más Contenido!