Master-slave con PIC18F4550


En este ejercicio vamos a realizar la creación de un circuito simulado en ISIS-PROTEUS de dos pic 18F4550. Antes de realizar el estudio del ejercicio realizaremos una pequeña explicación de aplicación en el desarrollo SPI:

 


 

 

 

 

Como podemos observar el sistema de comunicación SPI tiene cuatro tipos distintos de líneas de comunicación. Estas líneas de comunicación son capaces de transmitir paquetes de datos de 8 bits de tamaño y su comunicación es de tipo full-duplex, esto es, puede transmitir y recibir la información al mismo tiempo. Las líneas a utilizar son las líneas SDI, SDO,SS y SCL. Las líneas SDI y SDO hacen posible que sea full dúplex pues mientras una envía datos la otra recibe datos. La línea SS es la encargada de activar el chip para la transmisión. Debe haber un momento inicial en el que solo debe estar activo nuestro maestro, que se encargará de sincronizarse con los chips esclavos, por tanto es denominada como una tarea de inactividad. Esto lo denominamos estado idle.

 

 

Ahora veamos el desarrollo de nuestro ejercicio:

 

 


Como observamos en la imagen superior, nuestro sistema se basa en la creación de un contador master-slave en el que el master realizará un conteo que leerá el Slave y que saldrá por un Display de siete segmentos por su puerto D. Podemos observar en la tabla del DEBUGGER, los tiempos de ejecución que procesa por cada incremento o cambio de estado. Y en la parte superior vemos el proceso de las variables y su almacenamiento en CPU tanto del Master como del Slave.

 

 


 

 


 

 


 

 


 

Realizando una ejecución paso a paso en nuestro entorno proteus y sacando el analizador de nuestro depurador, podemos observar nuestro progreso de estados de nuestra comunicación SPI con respecto a los tiempos y número hexadecimal de comunicación de bits.


 


Comenzando por el bit de menos peso, observamos el proceso de ejecución en Hexadecimal y vemos así, dentro de nuestros 8 bits de transferencia, como al inicio, el master envía 3F en líneas de datos o lo que es lo mismo, sus 5 bits de menos peso y como el Slave, hace lo propio enviando 1B o 11011 en MSB así como los tiempos de procesamiento de esta transferencia.

Realizando varios steps, mientras incrementamos la ejecución de nuestro maestro, vemos como va aumentando el mismo. Esto es por el incremento en la transferencia de datos.

Dentro de la línea de código cabe destacar:


 


 

Las funciones de llamada a la comunicación SPI en las que vemos que realiza primero la orden | flanco ascendente| divisor de reloj 1/16bytes.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s