Está en la página 1de 16

UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS

FECHA: 17/06/2019 MICROPROCESADOS 2

COMUNICACIÓN I2C – 1 MAESTRO 2 ESCLAVOS


Contero Román Katherine Mishelle
e-mail: kcontero@est.ups.edu.ec
De la Torre Trujillo Israel Sebastián
e-mail: idel2@est.ups.edu.ec
Ortiz Guerra Karolain Mishell
e-mail: kortizg1@est.ups.edu.ec

RESUMEN: el siguiente informe presenta el control Similar a la comunicación serie en modo SPI, la
de dos “esclavos” y un “maestro” mediante la transmisión de datos en modo I2C es síncrona y
comunicación I2c para una aplicación de envió de bidireccional. Esta vez sólo dos pines se utilizan
datos. para transmisión de datos. Éstos son los pines de
SDA (Datos seriales) y SCL (Reloj serial).
PALABRAS CLAVE: Microcontrolador, Master
Clear, Ocsilador, Display, LCD, interrupciones, El usuario debe configurar estos pines como
conversión entradas o salidas por los bits TRISC. Al observar
las reglas particulares (protocolos), este modo
1. OBJETIVOS habilita conectar simultáneamente de una manera
simple hasta 112 diferentes componentes al utilizar
1.1. OBJETIVO GENERAL sólo dos valiosos pines de E/S.

▪ Desarrollar un circuito y software en el que Funcionamiento del sistema: El reloj, necesario


permita la comunicación I2C en el cual se para sincronizar el funcionamiento de ambos
apliquen el envío y recepción de datos dispositivos, siempre es generado por un
elaborados con los conocimientos adquiridos en dispositivo maestro (un microcontrolador) y su
clases mediante el uso el Pic 18f4550. frecuencia directamente afecta a la velocidad de
transmisión de datos.
1.2. OBJETIVO ESPECÍFICO
Aunque hay un protocolo que permite como
▪ Establecer una comunicación mediante los máximo una frecuencia de reloj de 3,4 MHz (así
registros de I2C establecidos para él envió de llamado bus I2C de alta velocidad), este libro cubre
datos y recepción de los mismos. sólo el protocolo utilizado con más frecuencia, con
▪ Conocer cómo funciona la comunicación I2C una frecuencia de reloj limitada a 100 KHz.
por medio de una aplicación con otros
dispositivos tanto analógicos como digitales. La frecuencia mínima no está limitada. Cuando
▪ Identificar las diferentes funciones para que la los componentes maestro y esclavo están
comunicación I2C se pueda dar para cuatro sincronizados por el reloj, el maestro siempre inicia
pic´s 18F4550. cada intercambio de datos. Una vez que el módulo
MSSP se ha habilitado, espera que ocurra una
condición de arranque (Start condition).
2. MARCO TEÓRICO
El dispositivo maestro primero envía el bit de
1.1. MODO I2C arranque (está a cero) por el pin SDA, luego la
dirección de 7 bits del dispositivo esclavo
El modo I2C (Bus de circuito inter-integrado) es seleccionado, y, por último, el bit que requiere al
adecuado para ser utilizado cuando el dispositivo escribir (0) o leer (1) el dato enviado. En
microcontrolador debe intercambiar los datos con otras palabras, los ocho bits se desplazan al
un circuito integrado dentro de un mismo registro SSPSR después de ocurrir una condición
dispositivo. de arranque.

Éstos son con frecuencia otros Todos los dispositivos esclavos que comparten
microcontroladores, o los circuitos integrados la misma línea de transmisión recibirán
especializados y baratos que pertenecen a la simultáneamente el primer byte, pero sólo el que
nueva generación de así llamados "periféricos contiene la dirección coincidente recibirá el dato
inteligentes" (memorias, sensores de temperatura, entero.
relojes de tiempo real etc.)
Revisar: [Anexo1]

1
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Una vez que el primer byte se ha enviado (sólo necesario esperar a que los circuitos de control
se transmiten datos de 8 bits), el maestro se pone internos indiquen con una señal que todo esté
en modo de recepción y espera el reconocimiento preparado para transmisión de datos: o sea, que el
del dispositivo receptor acerca de la dirección bit SSPIF del registro PIR1 se haya puesto a uno.
coincidente. Si el dispositivo esclavo envía un bit de
reconocimiento (1) la transmisión de datos Después de poner este bit a cero por software,
continuará hasta que el dispositivo maestro el microcontrolador está listo para intercambiar los
(microcontrolador) envíe el bit de parada (Stop). datos con los periféricos.

Revisar: [Anexo2]

Esto es una explicación simple de cómo se


comunican dos componentes. Este
microcontrolador es capaz de controlar las
situaciones más complicadas cuando están
conectados 1024 diferentes componentes
(dirección de 10 bits), compartidos por varios
dispositivos maestros diferentes. Por supuesto,
estos dispositivos se utilizan pocas veces en la
práctica por lo que no es necesario hablar de ellos
detalladamente. La siguiente figura muestra el Fig1. I2C en modo Maestro ajustes de bits [2]
diagrama de bloques del módulo MDSSP en modo
I2C. 1.2.1. TRANSMISIÓN DE DATOS EN
MODO MAESTRO I²C
Revisar: [Anexo3]
La transmisión de datos en el pin SDA se inicia
En una operación I2C con el módulo MSSP con un cero lógico (0) que aparece al poner a uno
intervienen seis registros. Algunos de ellos se el bit SPEN del registro SSPCON2. Sin embargo,
muestran en la Figura anterior. aunque está habilitado, el microcontrolador tiene
▪ SSPCON que esperar cierto tiempo antes de iniciar la
▪ SSPCON2 comunicación.
▪ SSPSTAT
Se le denomina 'Condición de Inicio' durante la
▪ SSPBUF
que se realizan las preparaciones y verificaciones
▪ SSPSR
▪ SSPADD [1] internas. Si se cumplen con todas las condiciones,
el bit SSPIF del registro PIR1 se pone a uno y la
transmisión de datos se inicia en cuanto se cargue
1.2. I2C EN MODO MAESTRO
el registro SSPBUF.
El caso más común es que un microcontrolador
funciona como maestro y un periférico como
esclavo.

Es la razón por la que esta libreria sólo trata


este modo. Se da por entendido que la dirección
consiste en 7 bits y el dispositivo contiene un solo Fig2. Secuencia de Transmisión de Datos en Modo
microcontrolador (dispositivo con maestro único). Maestro [1]

Para habilitar el módulo MSSP en este modo, Como máximo 112 circuitos integrados
siga las siguientes instrucciones: (dispositivos esclavos) pueden compartir
simultáneamente la misma línea de transmisión.
Revisar: [Anexo4]
El primer byte de datos enviado por el
Ajuste la velocidad de transmisión (registro dispositivo maestro contiene la dirección que
SSPADD), desactive el control de velocidad de coincide con una sola dirección del dispositivo
rotación (al poner a uno el bit SMP del registro esclavo.
SSPSTAT) y seleccione el modo maestro (registro
SSPCON). Todas las direcciones se enumeran en las hojas
de datos respectivas. El octavo bit del primer byte
Después de finalizar todos los ajustes y habilitar de datos especifica la dirección de transmisión de
el módulo (registro SSPCON: bit SSPEN), es datos, o sea si el microcontrolador va a enviar o

2
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

recibir los datos. En este caso, como se trata de 1.2.3. I2C ES UN PROTOCOLO
transmisión de datos, el octavo bit se pone a cero SÍNCRONO.
(0).
Al igual el protocolo SPI, el protocolo I2C trabaja
Revisar: [Anexo5]
de forma síncrona. Esto quiere decir que el envío
Cuando ocurre la coincidencia de direcciones, de bits por la vía de comunicación SDA está
el microcontrolador tiene que esperar a que el sincronizado por una señal de reloj que comparten
dispositivo esclavo envíe el bit de reconocimiento, tanto el maestro como el esclavo a través de la vía
o sea que se ponga a cero el bit ASKSTAT del SCL.
registro SSPCON2. Una vez que la coincidencia de
Tabla1. Ficha técnica del protocolo I2C.
direcciones ha ocurrido apropiadamente, todos los
bytes de datos se transmiten de la misma manera.
NÚMERO DE VÍAS O
2
La transmisión de datos termina al poner a uno CABLES
el bit SEN del registro SSPCON2. Ocurre la Modo Estándar (Sm) =
100 kbps
condición de parada (STOP), lo que habilita que el Modo Rápido (Fm) =
pin SDA reciba una secuencia de pulsos: Inicio - 400 kbps
Dirección - Reconocimiento - Dato - VELOCIDAD MÁXIMA
Modo High Speed (Fm+)
Reconocimiento .... ¡Dato - Reconocimiento - = 3.4 Mbps
Parada! Modo Ultra Fast (Hs-
Mode) = 5 Mbps
1.2.2. RECEPCIÓN DE DATOS EN SÍNCRONO O
Síncrono
MODO MAESTRO I²C ASÍNCRONO
PARALELO O SERIAL Serial
Las preparaciones para recibir los datos son NÚMERO MÁXIMO DE
Ilimitado
similares a las de transmitir los datos, con MAESTROS
excepción de que el último bit del primer byte NÚMERO MÁXIMO DE
1008
enviado (el que contiene la dirección) se ponga a ESCLAVOS
uno lógico (1).
Con el protocolo I2C la información viaja en
Eso especifica que el dispositivo maestro mensajes.
espera recibir los datos del dispositivo esclavo
direccionado. Los mensajes van divididos en tramas de datos.
Cada mensaje lleva una trama con una dirección la
Con respecto al microcontrolador, ocurre lo cuál transporta la dirección binaria del esclavo al
siguiente: Después de hacer las pruebas internas y que va dirigido el mensaje, y una o más tramas que
poner a uno el bit de arranque (START), el llevan la información del mensaje. También el
dispositivo esclavo envía byte por byte. Estos bytes mensaje contiene condiciones de inicio y paro,
se almacenan en el registro serial SSPSR. lectura y escritura de bits, y los bits ACK y NACK.
Todo esto va entre cada sección de datos.
Después de recibir el último - octavo bit, cada
dato se carga en el registro SSPBUF del que se Para que pueda quedar más claro aquí se
puede leer. ilustra un mensaje enviado a través del protocolo
I2C. [3]
Al leer este registro, se envía automáticamente
el bit de reconocimiento, lo que significa que el 3. MATERIALES Y EQUPOS
dispositivo maestro está listo para recibir los
nuevos datos. Al igual que en el caso de la ▪ Fuente de alimentación 5VDC
transmisión, la recepción de datos termina al poner ▪ Protoboard
a uno el bit de parada (STOP): ▪ 3 microcontrolador PIC18F4550
▪ 4 cristales de 4MHz
Revisar: [Anexo6]
▪ resistencias
Inicio - Dirección - Reconocimiento - Dato - ▪ 1 módulo de resistencias de 100 Ω
Reconocimiento .... Dato - Reconocimiento - ▪ 1 potenciómetro 1 kΩ
¡Parada! ▪ 1 multímetro
▪ 1 módulo GLCD 128x64
En esta secuencia de pulsos, el bit de ▪ 1 tarjeta programadora para microcontroladores
reconocimiento se envía al dispositivo esclavo. ▪ Cables de conexión
▪ Elementos electrónicos varios

3
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

4. DESARROLLO Y 4.2. DESARROLLO DEL


PROCEDIMIENTO EJERCICIO

4.1. PASOS DEL PROTOCOLO I. Se diseñó el diagrama de flujo para tener


facilidad de la programación y entendimiento
I2C EN LA EJECUCIÓN. del enunciado planteado acerca del sistema de
control vehicular para un parqueadero.
La comunicación I2C se realizó de la siguiente
manera: Revisar: [Anexo7], [Anexo8], [Anexo9]
▪ La señal del pin SDA del maestro pasó de un
II. Se implementó del circuito en el software
alto a un bajo mientras la señal de pin SCL
Proteus y verificar que su conexión cumpla con
estuvo en un alto, esto es el inicio de la
las condiciones iniciales.
comunicación I2C, al iniciar la comunicación se
generó una señal de reloj por el pin SCL del
Revisar: [Anexo10], [Anexo11], [Anexo12]
maestro y se empezó a enviar los datos por el
pin SDA en grupos de 8 bits o un byte, que es
lo mismo. III. Se desarrolló la programación mediante MikroC
▪ El maestro envió primero la dirección de y cargarla al microcontrolador del simulador
identificación del esclavo con el que se quiera Proteus y hacer sus respectivas
comunicar junto con el bit de escritura lectura, configuraciones para cumplir con el paso.
si el maestro quiere enviar o escribir un dato
este bit será 0, si el maestro quiere leer o recibir IV. Para realizar el parte del armado en software se
un dato este bit será 1, la dirección del esclavo tomó en consideración los materiales.
normalmente fue de 7 bits aunque también hay
direcciones de 10bits. V. Se identificó la configuración de los canales
▪ Cada vez que el esclavo recibió un byte el para la conexión del GLCD Touch para su
esclavo respondió enviando un bit en bajo o 0 respectiva activación.
al maestro para indicar que se ha establecido la
comunicación, este es un bit de confirmación de VI. Se comprobó el funcionamiento y se procedió
que hay comunicación y se le llama ACK, si la armar el circuito en Hardware correspondiente
comunicación no se establece el valor del bit a protoborad y se guardó la programación al
ACK fue un 1. respectivo microcontrolador mediante el PICkit
▪ Luego el maestro envió el dato si lo que se 2 v2.61.
quiere es enviar o escribir un dato en el registro
del esclavo, el esclavo respondió enviando al VII. Se polarizó con una fuente DC pura y regulable
maestro el bit de confirmación ACK; pero si lo para su funcionamiento exacto ya que por
que se quiere es que el maestro recibirá o lea tratarse de canales analógicos necesita de una
algún dato desde algún registro del esclavo, fuente exacta.
ocurrirá que si la recepción es correcta es
maestro enviará al esclavo el bit de 5. ANÁLISIS Y RESULTADOS
confirmación ACK.
▪ Luego el maestro envió el dato si lo que se Aunque a primera vista parece muy complicado
quiere es enviar o escribir un dato en el registro utilizar la comunicación I2C, en realidad se utilizan
del esclavo, el esclavo respondió enviando al 2 hilos a lo que se conoce como bus I2C, a estos
maestro el bit de confirmación ACK; o de lo hilos se conectan los dispositivos que se puedan
contrario se recibiriá algún dato si se quiere leer comunicar mediante el protocolo I2C, por uno de
o recibir un dato del registro del esclavo, si la los hilos se enviará una señal de reloj para la
recepción es correcta es maestro enviará al sincronización y por el otro hilo se enviarán o
esclavo el bit de confirmación ACK. recibirán datos.
▪ Por último y para finalizar la comunicación la
señal del pin SDA pasó de un bajo a un alto Análisis 1: Se configura la GLCD para su conexión
mientras la señal de reloj en el pin SCL estuvo con el PIC en se vio la necesidad de sincronizar el
en un alto, en ese momento se dejó de generar funcionamiento de los puertos de E/S con la
la señal de reloj y la comunicación terminó. organización interna del microcontrolador de 8 bits,
▪ Las conexiones se hicieron de tal manera que ellos se agrupan, de manera similar a los registros,
los nombres de los pines coincidan, al ser en cinco puertos denotados con A,B, C, D y E, para
utilizado el PIC como maestro, con otros otros este caso la conexión se da hacia el PORT B Y D
dos pics capaces de comunicarse con el con la finalidad de optimizar el uso de los puertos
protocolo I2C. analógicos ya que todos deben ser digitales.

4
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Análisis 2: Esta constate es la que nos permite el 7. RECOMENDACIONES


redireccionamiento al pic que actúa como esclavo,
ya que de esta manera es la que permite el ▪ Para la práctica se debe verificar el suministro
reconocimiento del mismo, nos permite localizar los de energía al sistema, las malas conexiones en
dos hilos en los cuales este reloj en el cual, hace el Protoboard, en los conectores de batería o en
que el pic entre en sincronía. los terminales de entrada de tensión, la
inversión de polaridad al conectar la fuente de
Análisis 3: Esta es la función en la que se encarga alimentación, todo esto puede llevarnos a
de enviar los datos al esclavo, en la cual contiene perder mucho tiempo hasta descubrir el
el reconocimiento del I2C, especificando si es de problema.
lectura o de escritura, en este caso está enviando ▪ Para evitar cualquier tipo de errores en el
el dato, de igual forma como interrupciones la montaje del circuito, se recomienda usar
bandera debe apagarse o finalizarse, de este diferentes colores de cables en las
mismo modo actúa este módulo. interconexiones.
Análisis 4: Para que la comunicación tenga su
debió sincronismo es necesario de los bits de 8. REFERENCIAS
interrupción ya que estos permiten, en un lapso de
tiempo, enviar los datos al maestro, de la misma
manera leer el dato recibido, de acuerdo a la
necesitad del programa. [1 MikroElektronika, «MikroElektronika,»
] MikroElektronika d.o.o., 2019. [En línea].
6. CONCLUSIONES Available:
https://www.mikroe.com/ebooks/microcontrola
▪ Pines SDA y SCL - Cuando el módulo SSP está dores-pic-programacion-en-c-con-
habilitado, estos pines se vuelven a las salidas ejemplos/modulos-de-comunicacion-serie.
de Drenaje Abierto. Esto significa que deben [Último acceso: 06 01 2019].
estar conectados a resistencias conectados a la
otra punta al polo positivo de la fuente de [2 ElectronicWins, «ElectronicWins,»
alimentación. Sin estas resistencias no hay ] ElectronicWins, 2019. [En línea]. Available:
valores lógicos porque no cierra el circuito. https://www.electronicwings.com/pic/pic18f455
0-i2c. [Último acceso: 17 06 2019].
▪ Cuando el microcontrolador se comunica con
un periférico, puede ocurrir un fallo en la [3 MrElberni, «MICROCONTROLADORES,»
transmisión de datos por alguna razón. En este ] 2019. [En línea]. Available:
caso, es recomendable comprobar el estado de http://microcontroladores-mrelberni.com/i2c-
algunos bits que pueden aclarar el problema. pic-comunicacion-serial/. [Último acceso: 15 06
En la práctica, el estado de estos bits se 2019].
comprueba al ejecutar una pequeña subrutina
después de transmisión y recepción de cada
byte (por si acaso). WCOL (SPCON,7) - Si
intenta escribir un dato nuevo al registro
SSPBUF mientras que otra
transmisión/recepción de datos está en
progreso, el bit WCOL se pone a uno y el
contenido del registro SSBUF se queda sin
cambios. No hay escritura. Luego, el bit WCOL
debe ser borrado por el software. BF
(SSPSTAT,0) - Al transmitir los datos, este bit
se pone a uno durante la escritura en el registro
SSPBUF y se queda puesto a uno hasta que el
byte en formato serial se desplace del registro
SSPRS. En modo de recepción, este bit se
pone a uno al cargar un dato o una dirección al
registro SSPBUF. Se pone a cero después de
leer el registro SSPBUF.

5
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

9. ANEXOS
9.1. IMÁGENES MARCO TEÓRICO

Anexo1. Direccionamiento y control de Maestro – Esclavos con Protocolo I2C. [1]

6
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Anexo2. Protocolo I2C – Transferencia de Datos [1]

7
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Anexo3. Diagrama de funcionamiento Protocolo I2C [1]

Anexo4. Protocolo I2C registros a Utilizar para comunicación [1]

8
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Anexo5. Direccionamiento de datos comunicación I2C [1]

9
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Anexo6. Recepción de datos en Modo Maestro I²C [1]

10
UNIVERSIDAD POLITÉCNICA SALESIANA
SISTEMAS
FECHA: 17/06/2019
MICROPROCESADOS 2
DIAGRAMA DE FLUJO

Anexo7. Diagrama de flujo 1

11
UNIVERSIDAD POLITÉCNICA SALESIANA
SISTEMAS
FECHA: 17/06/2019
MICROPROCESADOS 2

Anexo8. Diagrama de flujo 2

12
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Anexo9. Diagrama de flujo 3

13
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

9.2. SIMULACIÓN

Anexo10. Circuito de Comunicación I2C 1 MAESTRO - 2 ESCLAVOS Primera Parte [De la Torre Israel]

14
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

Anexo11. Circuito de Comunicación I2C 1 MAESTRO - 2 ESCLAVOS Segunda Parte [De la Torre Israel]

15
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS
FECHA: 17/06/2019 MICROPROCESADOS 2

9.3. CIRCUITO IMPLEMENTADO

Anexo12. Circuito Implementado [Ortiz Karolain]

16

También podría gustarte