Banco de pruebas para comunicaciones seriales SPI dedicado al trabajo con microcontroladores Atmel
Enviado por Pablo Turmero
El objetivo del proyecto es desarrollar e implementar un banco de ejercicios claves que permitan comprender toda la teoría y el funcionamiento referente al protocolo de comunicación SPI.
INTRODUCCION Tratando de darle un uso adecuado y diversificado a los ejercicios, aprovechando las diferentes herramientas que dispone el AVR Butterfly y demás elementos, y así tener una visión más amplia, acertada y completa de lo que involucra esta interfaz de comunicación serial.
En la mayoría de los circuitos modernos se necesitan microcontroladores que se comuniquen entre sí. Una manera muy fácil y sencilla es haciendo uso del protocolo SPI.
DESCRIPCION GENERAL DEL PROYECTO El SPI minimiza el consumo de espacio y pines en los proyectos a implementarse, y funciona mediante el envío de ceros y unos de forma secuencial sobre tres cables.
SPI es un subsistema de comunicaciones seriales independiente, que le permite al microcontrolador comunicarse síncronamente con otros dispositivos. INTERFAZ PERIFERICA SERIAL Cada dispositivo puede actuar como transmisor y receptor al mismo tiempo, por lo que este tipo de comunicación serial es full dúplex.
Tiene mayor velocidad de transmisión que I²C o SMBus. Su implementación en hardware es simple, aunque no permite control de flujo y sólo funciona en las distancias cortas.
El SPI necesita dos dispositivos para la comunicación. Un maestro, aquel que inicia la transferencia de información sobre el bus y genera las señales de reloj y control. Un esclavo, un dispositivo controlado por el maestro a través de una línea selectora llamada Chip Select o Select Slave. INTERFAZ PERIFERICA SERIAL
INTERFAZ PERIFERICA SERIAL SPI en el AVR Butterfly utiliza cuatro pines con diferentes funcionalidades:
El software que se utilizará para la programación de los microcontroladores es el AVR Studio 4, el cual es un Entorno de Desarrollo Integrado para escribir y depurar aplicaciones AVR en el entorno de Windows y posee dos compiladores para los lenguajes Assembler y C usados para la creación de los códigos. Requerimientos para el proyecto
También se utilizará el software de simulación PROTEUS 7.7 Service Pack 2, el cual permite implementar en forma simulada los códigos hechos en lenguaje C con los integrados y sus conexiones.
Requerimientos para el proyecto
El hardware que se utilizará para desarrollar el proyecto principalmente es el AVR Butterfly, el cual es un Kit de desarrollo, entrenamiento y aprendizaje de microcontroladores Atmel. Requerimientos para el proyecto
El AVR Butterfly expone las siguientes características principales: Diseño de bajo consumo de energía. Periféricos: – Controlador LCD, Memorias. Interfaces de comunicación: – UART, SPI, USI. Métodos de programación – Self-Programming/Bootloader, SPI, Paralelo, JTAG. Convertidor Analógico Digital (ADC). Timers/Counters: RTC, PWM. AVR BUTTERFLY
El kit además contiene: un microcontrolador ATmega169V, LCD, Joystick, altavoz, cristal de 32 KHz, DataFlash de 4 Mbit, convertidor de nivel RS-232, interfaz USART, USI, sensor de temperatura, de luz, ADC, conectores para acceso a periféricos, y Batería de 3 V.
AVR BUTTERFLY El Atmega169 es un microcontrolador CMOS de bajo consumo de 8-bits basado en la arquitectura RISC de los AVR. Mediante la ejecución de instrucciones de gran alcance en un solo ciclo de reloj, permite al sistema diseñado optimizar el consumo de energía frente a la velocidad de procesamiento.
Cada uno de los ejercicios se desarrollará con tres elementos en común , por lo cual se construyó una plataforma que funcione para todo el proyecto. Estos elementos son:
Protoboard
AVR Butterfly
Pilas AA PLATAFORMA DEL PROYECTO
Rotación de Leds El AVR Butterfly trabaja como el maestro del SPI y realiza la rotación de 8 leds conectados en el Puerto D, al mismo tiempo que se transmiten estos datos al registro de desplazamiento 74HC595, el cual trabaja como el esclavo de la comunicación y realiza la misma rotación de leds conectados en su salida.
Descripcion de los ejercicios
Movimiento de las piezas de Ajedrez El AVR Butterfly recibe la lectura de 4 botoneras conectadas al Puerto B y que corresponden a las piezas de ajedrez: Peón, Caballo, Alfil y Torre. Cuando se presiona una de las botoneras se muestra el nombre de la pieza escogida por el LCD. El esclavo de la comunicación recibe la información de la botonera seleccionada y simula los movimientos de la pieza de ajedrez respectiva en el tablero.
Descripcion de los ejercicios
Contador de dos dígitos Dependiendo de la botonera seleccionada en el Puerto B del AVR Butterfly, el cual funciona como maestro, se incrementa o decrementa el contador. El dígito de las unidades se muestra en un display conectado al Puerto D del Butterfly. El esclavo de la comunicación SPI recibe el dato del dígito de las decenas y lo muestra en su Puerto D.
Descripcion de los ejercicios
void SPI_masterinit(void) { DDRB=0x07; // MOSI, SS y SCK como salida SPCR=(1