Comencé a trabajar en un proyecto que implica programar el Atmega162 para lograr el resultado deseado. Comencé a escribir código usando Atmel Studio ide, pero me resultó muy difícil trabajar con Atmel Studio ide. Atmel Studio es lento y encuentra errores, etc. También es muy difícil. Entonces decidí cambiar al ide Arduino. Alguien agregó soporte Atmega162 al ide de Arduino, así que lo usé. Para instalar el soporte Atmega162 en su ide Arduino, consulte mi publicación.
Atmega162 con Arduino Ide
Aunque agregó soporte atmega162 al ide Arduino, carece de soporte para interfaz serial (uart). Los comandos de inicialización de UART y envío de datos Seial.begin y Serial.send no funcionaron si utilizó el soporte anterior proporcionado por alguien. Entonces decidí poner en funcionamiento el microcontrolador UART atmega162 mediante la configuración de registros individuales. Creé un archivo de encabezado separado para la inicialización de UART y el trabajo "Uart.h". En uart.hi se definen los valores para registros uart individuales. El código de inicialización de Uart en C++ y el ensamblaje se proporcionan en la hoja de datos de atmega162. Casi todos los microcontroladores de la serie atmega UARTS se inicializan utilizando los mismos registros, los registros son los mismos para casi todos los microcontroladores. Copié el código de inicialización desde allí. Para una descripción completa de los registros y código, recomiendo ver la ficha técnica.
|
Inicialización de Atmega162 uart, fórmula de cálculo del valor de registro.
|
El registro más importante en la inicialización de Uart es UBRR. Es un registro de 16 bits. Dividido en dos registros de 8 bits UBRRL y UBRRH. Para configurar la velocidad en baudios deseada. Tenemos que calcular el valor de este registro. La fórmula para calcular el valor se encuentra en el lado derecho. La “velocidad en baudios” es la velocidad en baudios deseada que necesitamos. Fpb es la frecuencia de reloj/cristal a la que funciona el microcontrolador. UxBRG es un registro UBRR de 16 bits. Después de calcular el valor, cargue los 8 bits más altos en UBRRH y los 8 bits más bajos en UBRRL.
|
Comunicación serie Atmega162 con MAX232 (interfaz Rs232)

Comunicación serie Atmega162 con FT232 (interfaz USB a Uart)

Atmega162 tiene 2 uarts 0 y 1. Estoy usando uart-0 para esta publicación. Puedes usar uart-1 si quieres. Uart-0 está en los pines 10,11 y Uart-1 está en los pines 3,4. En el proyecto de demostración inicialicé la velocidad en baudios a 9600. Estoy enviando el nombre de mi sitio web desde el puerto serie atmega162 a mi PC (computadora personal). Para ver el resultado en mi computadora, estoy usando PuTTY.
Un LED de estado está conectado al pin n.° 25. Parpadea cada segundo. Muestra el estado del programa, ya sea que el hardware esté funcionando o no. Nota: El LED está conectado al pin no. 25 donde como en el código se declara como pin no. 22, esto se debe a que para la programación a los pines se les asignan números diferentes. Recuerde el tutorial superior; consulte este para obtener más aclaraciones.
Mira el vídeo del proyecto aquí.
Comunicación serie mediante Uart del microcontrolador 8051 (89c51,89c52)
Comunicación serie mediante Uart del microcontrolador Microchip Pic16f877
Transmisión de datos en serie mediante comunicación 89c51.
Comunicación serie RS485 entre Arduino Uno y Leonardo
Comunicación serial usando Atmega32A
Datos seriales recibidos desde una PC usando el microcontrolador Microchip Pic
