¿Una guía completa de arranque AVRs (4 / 10 paso)

Paso 4: USART como un puerto serie


El periférico USART que viene con muchos micros AVR es un puerto flexible que puede actuar como muchos protocolos diferentes.
Algunos micros tienen un UART que mientras que es similar, sólo puede realizar como un puerto serial estándar.

Mientras que puede actuar como muchos tipos de puerto serie, sólo vamos a utilizar como un puerto serie básico, que nos permitirá utilizar fácilmente la radio XBee posteriormente.
También puede usar este puerto serial para conectar a un ordenador antiguo, o a través de un chip FTDI para darle una conexión USB Serial a una computadora nueva.
Es en realidad cuántos arduinos trabajar, utilizan un chip FTDI para proporcionar una conexión USB Serial con el microcontrolador.

Para este ejemplo vamos a micros de ATtimy2313 programa dos para enviar caracteres en serie entre sí.
Construir la placa como se muestra en la imagen.
Llamemos a la izquierda A micro y la segunda B.

Conectar el pin 2 de la A la clavija 3 de B.
Conectar el pin 3 de la A la clavija 2 del B.

El pin 2 es el RXD (recibir) y el pin 3 es TXD (transmitir).

Conecte un LED a B en el pin 11 (PD6) y un botón en una al pin 19 (PB7).

Utilice el código adjunto para programar los dos chips.
El reloj de cada uno de 1MHz
En Chip A descomentar esta línea:
#define transmitir
y comente esta línea:
#define recibir

En el chip B hace lo contrario:
#define transmitir
#define recibir

Ahora, cuando usted presiona el botón en el A, B el LED se encenderá!

Al principio no parece muy impresionante, pero usted podría utilizar esto para hablar a las virutas lejos sobre una radio XBee, o a un ordenador que puede ser útil para ayudar a depurar su código.

Así que, ¿cómo funciona?
Veamos las líneas interesantes:

UBRRH = 0;
UBRRL = 12;

Échale un vistazo a la hoja de datos para el registro UBRR.
Esto es un poco 12 registro, así como el 2313 es una micro de 8 bits, este se divide en dos bytes, alta (UBRRH) y bajo (UBRRL).
El registro agudo no es un registro completo, con la mitad superior (4 bits) reservado (no usado, pero no debe ser tocado para futura compatibilidad).

Si se desplaza hasta la siguiente página, verá una tabla útil de diferentes velocidades dependiendo del reloj de tu micro.
Para este ejemplo queremos 9600 baudios (útil más tarde para el XBee).
Buscando en la tabla 1MHz obtenemos un valor de 6 para el UBRR.
Sin embargo tiene un -7% tasa de error, que es un poco demasiado alto.
Pero si usted busca una columna una tasa de error de 0,2%.
¿Qué es diferente?
Se establece el indicador U2X y el UBRR se establece en 12.

Usaremos y establecido la U2X.
A continuación tenemos diferentes opciones a configurar:
UCSRA = (1 << U2X);
UCSRB = (1 << RXEN) | (1 << TXEN);
UCSRC = (1 << UCSZ1) | (1 << UCSZ0);

Estos 3 registros se describen en la hoja de datos por lo que veremos en ellos sólo brevemente.
U2X se describe como "doble la velocidad de transmisión UART"
RXEN dice la USART para activar el modo de recepción y TXEN es permitir transmitir
UCSZ1 y UCSZ0 se fijan en base en la tabla en la Página 133, ajuste el tamaño del carácter como 8 bits.

A continuación, en el lado de transmisión tenemos esta línea de código:
mientras (! () UCSRA & (1 << UDRE)));
Esto es control de la broca "USART datos Registro vacío" de "Control USART y estado registro A".
Cuando se establece en 1, el bucle sale y puede ejecutar la siguiente línea de código:
UDR = 'F';

Esto está pasando en el carácter 'F' en el búfer de transmisión, esto sólo se puede escribir cuando está claro, por eso tenemos el bucle de espera antes de él.

En el lado de recibir es lo mismo:
mientras (! () UCSRA & (1 << RXC)));

Aquí esperamos para que el búfer de recepción esté vacío y luego leemos UDR para ver qué valor tiene:
Si (UDR == 'F')

Podría apenas como fácilmente poner esto en una variable como así:
char x = UDR;

Tienes que leer UDR para despejarla, y sólo se puede leer una vez (después de que se borra y permite un nuevo personaje en), así que si el valor es importante para usted, asegúrese de guardar una copia del valor de la primera lectura!

Ahora, en este ejemplo se divide en transmitir y recibir, pero usted puede tener ambos en uno, yo sólo quería hacer un ejemplo sencillo

Artículos Relacionados

Cómo hacer una espada: una guía completa de

Cómo hacer una espada: una guía completa de

Escribí la mayoría de esto mientras trabajé en el proyecto. Esta introducción servirá como reflexión general y análisis del proceso, así como una introducción completa como se esperaba.Bueno, aquí es. ¿Que siempre quisiste crear tu propia espada? Y n
Android aplicaciones para usar con un iPhone: una guía completa para instalar 3 aplicaciones en Android usar reloj junto con un iPhone

Android aplicaciones para usar con un iPhone: una guía completa para instalar 3 aplicaciones en Android usar reloj junto con un iPhone

¿Poseer un reloj Android usar con un iPhone?Aprenda cómo puede ampliar sus capacidades mediante la instalación de 3 aplicaciones de partido abajo!Relojes inteligentes son grandes. Tienen un montón de otras características útiles que no puede ofrecer
Etiqueta de polímero de litio: Una guía completa al trabajo con LiPo

Etiqueta de polímero de litio: Una guía completa al trabajo con LiPo

en este Instructable voy sobre los conceptos básicos de la correcta carga, descarga, manejo, uso, almacenamiento y el cuidado de las baterías de polímero de litio por lo que se pueden utilizar con seguridad y eficacia en sus proyectos futuros.  Ahora
Una guía completa de airsoft: principiante / nivel de entrada.

Una guía completa de airsoft: principiante / nivel de entrada.

Mirando el sitio, he visto un montón de instructables. "Airsoft: sobrevivir a la guerra. Guía de airsoft. Una guía para airsoft". Algunos de ellos son buenos, y algunos de ellos parecen que son lanzados juntos en un par de minutos. Por lo tanto,
$2 Arduino. El ATMEGA328 como independiente. Fácil, barato y muy pequeño. Una guía completa.

$2 Arduino. El ATMEGA328 como independiente. Fácil, barato y muy pequeño. Una guía completa.

En este instructable usted aprenderá cómo usar el Arduino ATMEGA328 microcontrolador chip como un microcontrolador independiente.Cuestan sólo 2 dólares, puede hacer lo mismo que tu Arduino y hacer tus proyectos muy pequeños.Cómo cubriremos el esquema
Cómo almacenar su K'nex eficaz: Una guía completa de

Cómo almacenar su K'nex eficaz: Una guía completa de

¡ Hola chicos!¿Quieres hacer tu K'nex construye más rápido, más eficientey mantener una cuenta de tus piezas? Bien, aquí es una manera! Tardará un par de horas, pero esto ahorrará días en su trabajo de construcción.Esta guía completa y sobre todo, te
Cómo obtener una versión completa de minecraft con Mineshafter.

Cómo obtener una versión completa de minecraft con Mineshafter.

Esta guía le mostrará una alternativa al gasto 20 $ por una membresía premium de minecraft.  Este es un servicio gratuito que permite a los usuarios el juego la demo antes de hacer la compra en el sitio minecraft.com. Esta versión de minecraft es idé
Una guía completa de motores K'nex

Una guía completa de motores K'nex

¡ Hola chicos! Ha pasado mucho tiempo desde que publiqué algo, así que decidí compilar información sobre motores de K'nex y poner para arriba para que todos pudieran obtener algún conocimiento acerca de ellos! Este será mi primer y solamente la entra
Construir un cobertizo simple: una guía completa de

Construir un cobertizo simple: una guía completa de

Aquí es un sólido derramado poco construí en el patio de mi casa.Es esencialmente un cubo de 8 pies, que es el tamaño ideal para guardar un montón de bicicletas, una cortadora de césped, carretilla y todas mis herramientas de jardinería.El diseño es
Una guía completa a la observación de aves

Una guía completa a la observación de aves

te has preguntado ¿cómo ver aves sin molestar a su hábitat natural? Esta guía le mostrará cómo.Paso 1: Paso uno: aprender sobre las aves Vivo en el país de América del norte, así que tengo un libro de aves en N.A. aves viven en diferentes regiones, a
Una guía completa de puentes a bordo en el kit del Intel Edison para Arduino

Una guía completa de puentes a bordo en el kit del Intel Edison para Arduino

Kit Intel® Edison para Arduino permite el Edison de Intel® compatible con Arduino shields diseñados para el R3 del UNO. La Junta de expansión de Arduino incluye varias cabeceras de jumper para configurar el tablero con diferentes ajustes como niveles
Una guía completa de vídeo para el cultivo de tomate "Pometa": principio a fin!

Una guía completa de vídeo para el cultivo de tomate "Pometa": principio a fin!

Este video muestra la historia de todo crecimiento de una planta de tomate heirloom 'Krim negro'. Se le mostrará:Cómo transplantar tomatesCómo construir jaulas de casa caliente (para la siembra temprana)Cómo podar los chuponesCómo crear una barrera d
Una guía completa para Airsoft

Una guía completa para Airsoft

han estado jugando Airsoft hace unos 2 años y soy adicto a este deporte. Y sí, es considerado un deporte! No hay suficiente gente lo reconoce como uno, así que quiero mantenerla, Sabe usted. Me encanta Airsoft porque es competitivo, hay mucha estrate
El estudio del galpon. Una reconstrucción completa.

El estudio del galpon. Una reconstrucción completa.

Hi.No soy constructor pero he re-construido nuestras tres casas durante un período de treinta años y a un nivel razonable - ish ;-)Un par de años que decidí hacer proyecto de mi vida a la parte superior de la lista de prioridades - no estoy recibiend