I2C PIC ejemplos


Compartir: Share on Facebook2Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on LinkedIn0

Anterior: I2C PIC Comunicación Serial.

I2C PIC ejemplos, en esta sección se realizarán algunos ejemplos realizados con el XC8 sobre la utilización del módulo SSP en modo I2C PIC, esta es la parte práctica de lo que se vio aquí, por lo que se recomienda antes de continuar visitar el enlace indicado. Se utilizará el archivo de cabecera i2c.h que se obtuvo para la transmisión y recepción de datos con el I2C PIC, el microcontrolador PIC para realizar el I2C PIC ejemplos será el PIC16F887A en un inicio, luego se complementará con otros PICS.

El archivo de cabecera i2c.h que se obtuvo para ser utilizado con el PIC16F877A en el que la Fosc=4Mhz y la velocidad de comunicación será a 100Kbps es el siguiente, con algunas pequeñas modificaciones se puede utilizar en cualquier otro PIC16xxx, si se utiliza otra Fosc y/o otra velocidad de comunicación hay que hacer los cálculos con SSPADD=(Fosc/(4*velocidad))-1 para el nuevo valor a cargar en SSPADD.

I2C PIC EJEMPLOS

I2C PIC ejemplos 1 En este primer ejemplo se  realizará la comunicación serial I2C PIC entre el PIC16F877A, y la memoria EEPROM 24LC256 (revisar su hoja de datos) la que está fabricada para ser I2C PIC ejemplos 1 eeprom 24LC256utilizada como esclavo en la comunicación I2C, este integrado trae una dirección de fábrica para ser utilizado como esclavo de 7 bits que es 1010(A2)(A1)(A0) los primeros 4 bits son fijos los siguientes 3 se pueden elegir poniendo los pines A2, A1 y A0 a 0 o a 1, si se utiliza una sola de estas memorias normalmente estos pines se ponen a 0 para que su dirección sea 1010000, aunque se puede elegir otra combinación.

El pin 8 es para la alimentación, el pin 4 es para el negativo, el pin 7 es para bloquear la escritura en la eeprom si se pone a 1, se el pin 7 no se conecta o se pone a 0 se podrá escribir en la eeprom.

El pin 6 SCL se conectará al pin SCL del PIC16F877A y el pin 5 SDA se conectará al pin SDA del PIC.

Las direcciones de los registros de la EEPROM 24LC256 donde se guardarán los datos están constituidos por 2 bytes, en este integrado se pueden almacenar hasta 256Kbites.

El el ejemplo se enviarán o escribirán datos en la EEPROM mediante la comunicación I2C, luego se leerán los datos enviados a la EEPROM y serán vistos en forma binaria en el puerto D del PIC16F877A que será el maestro.

El ejemplo es sencillo para no complicar el código, pero  se puede hacer lo que se quiera mediante la comunicación I2C. La idea es muy similar por no decir la misma si se utiliza otro tipo de dispositivo que se pueda utilizar como esclavo en la comunicación I2C PIC.

En este ejemplo lo que se busca es que se vea como utilizar el archivo de cabecera i2c.h ya que será el utilizado en los siguientes I2C PIC ejemplos.

En la siguiente imagen se ha creado un proyecto llamado i2c_ejemplo_1, con el archivo fuente llamado i2c_ejemplo_1.c, en la parte resaltada Header Files se hace click derecho y en New se selecciona C Header File…, en la ventana que aparece dentro de File Name se le da el nombre de i2c en Extension debe estar selecciona da la opción h, y se pulsa sobre Finish así se creará el archivo llamado i2c.h, luego se hace doble click sobre el archivo i2c.h creado para abrir el editor i2c.h, se borra todo lo que el programa genere, que quede limpio, se copia el contenido mostrado lineas arriba y se pega dentro de i2c.h, el resultado debe ser similar al que se ve en la siguiente imagen.

I2C PIC ejemplos 1 archivo i2c.h

A partir de este momento ya se puede utilizar el archivo de cabecera i2c.h para realizar la comunicación serial con el módulo SSP en modo I2C PIC

El circuito utilizado para el I2C PIC ejemplos 1 es el siguiente:

i2c pic ejemplos 1 circuito

En el código para el PIC16F877A que será el maestro se tiene que crear una función para la escritura y otra función para la lectura de la memoria EEPROM, hay que seguir un orden en cuanto a la lectura y escritura en la comunicación serial I2C PIC, eso se puede ver aquí, será realizado en el XC8, los pasos que se siguen estarán comentados en el código, en caso de utilizar otro dispositivo como esclavo se seguirán los mismos pasos.

La siguiente es una imagen del circuito de prueba realizado para el I2C PIC ejemplos 1

I2C PIC ejemplos 1 imagen

I2C PIC ejemplos 1

Compartir: Share on Facebook2Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on LinkedIn0