Practica I2C INFIND2 2aCONV

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Informática Industrial I Práctica I2C

PRÁCTICA I2C

BUS I2C

1. Objetivos.

Objetivo de la práctica:

- Conocer las características principales del bus de comunicación I2C.

- Analizar el datasheet de varios dispositivos configurables mediante I2C.

2. Conceptos básicos.

QUE ES EL BUS I2C

Se trata de un bus bidireccional que utiliza dos líneas, una de datos serie (SDA) y otra de reloj serie (SCL).

Ambas necesitan resistencias de polarización a positivo (RPA también conocidas como Pull-up). La línea de

reloj SCL se utiliza para sincronizar los datos que van por la línea de datos SDA.

Ambas líneas deberán estar conectadas a todos los dispositivos a controlar mediante el bus I2C. Los

dispositivos son capaces de hacer que las líneas estén a nivel BAJO, pero no a ALTO, por lo que es

necesario conectar ambas líneas a una tensión de 5V mediante unas resistencias de Pull-Up. Sólo se

necesitan un par para el bus y no un par por dispositivo. La alimentación del sistema debe tener una masa

común y la alimentación puede estar compartida o ser individual.

Los dispositivos en el I2C pueden ser máster (maestro) o esclavos. El maestro es el que se encarga de

controlar la señal SCL. Los esclavos son los que responden a las llamadas del maestro. Un esclavo no podrá

iniciar una transmisión, solamente el maestro podrá. Esto no quiere decir que los esclavos puedan transmitir

datos, sino que necesitarán el permiso del maestro para realizar dicha operación.

Figura 1. Esquema general de conexión I2C

Las direcciones de un bus I2C pueden ser de 7 bits (los hay de 8 bits) o de 10 bits. En este caso nos

centraremos en el direccionamiento de 7 bits.


Florida Universitaria Departamento de Ingeniería 1
Informática Industrial I Práctica I2C

Dado que 2^7 = 128, se tiene que podremos conectar hasta 128 dispositivos al bus, desde la posición 0 a la

127. Por otro lado, el bus reservará 16 direcciones, por lo que el número de dispositivos final será de hasta

112 teóricos. Aun así, existe también la limitación por la capacidad total de los buses de 400pF, por lo que en

la práctica la distancia máxima entre dispositivos será de unos pocos metros.

Figura 2. Señales en I2C (1)

Figura 3. Señales en I2C (2)

Aunque se ha dicho que la dirección enviada es de 7 bits, en realidad son enviados 8 bits. El octavo bit se

utiliza para informar al esclavo si el maestro está escribiendo o leyendo de él. Si dicho bit es 0, el maestro

escribe en el esclavo. Si el octavo bit es 1, el maestro lee del esclavo.

Existen redes I2C multi-maestro, así como direccionamientos de 10 bit, pero no son tan comunes como las de

un maestro y 7 bits de direccionamiento.

Los mensajes de 7 bits tienen la siguiente forma:

Florida Universitaria Departamento de Ingeniería 2


Informática Industrial I Práctica I2C

Figura 4. Direccionamiento en I2C

Dónde:

- A0, A1 y A2 son utilizados por el usuario para definir parte de la dirección del dispositivo.

- A3, A4, A5 y A6 vienen dados por el fabricante del dispositivo.

- El ‘Start Bit’ es el bit que inicia la comunicación.

- El ‘Read/Write Bit’ indica si se va a leer o escribir en el dispositivo.

- El ‘Acknowledge Bit’ indicará si la transmisión se ha llevado a cabo con éxito.

Tal y como ya se ha dicho, existen direcciones reservadas por el bus, las cuales son:

Figura 5. Direcciones reservadas

QUE ES TWI

Es otra forma de referirse al bus I2C (el cual tenía patente).

Sus características son:

- Velocidad estándar de 100Kbit/s (100kbaudios). Se puede cambiar al modo de alta velocidad (400Kbits/s).

- Configuración maestro/esclavo. La dirección del esclavo se configura mediante software.

- Solo se necesitan dos líneas:

o SDA: Línea de datos


Florida Universitaria Departamento de Ingeniería 3
Informática Industrial I Práctica I2C

o SCL: Línea de reloj, la cual marca el tiempo de R/W.

o Se supondrá una masa común a todos los dispositivos.

- La comunicación siempre tiene la siguiente estructura:

o Transmisor: Byte de datos (8-Bit)

o Receptor: Bit llamado ACK de confirmación.

Las conexiones se realizan:

- El SDA y el SCL van a su pin correspondiente en cada dispositivo, de forma que éstos quedan

conectados en paralelo.

- Las líneas SDA y SCL se conectan de forma independiente a dos resistores Pull-Up que se

encargan de que el valor lógico sea ALTO siempre y cuando un dispositivo no lo ponga a nivel bajo.

Tipo de comunicación:

- Comunicación de tipo ‘half duplex’: Comunicación bidireccional por una misma línea pero no de

forma simultánea.

Estructura de la comunicación:

1. Condición de START (lo envía el maestro)

2. 7 Bits de dirección del esclavo (lo envía el maestro)

3. 1 Bit de R/W: 0 para leer y 1 para escribir. (lo envía el maestro)

4. 1 Bit de ‘Acknowledge’. (lo envía el esclavo)

5. Byte de dirección de memoria. (lo envía el maestro)

6. 1 Bit de ‘Acknowledge’. (lo envía el esclavo)

7. Byte de datos (Maestro/Esclavo (Escritura/Lectura))

8. 1 Bit de ‘Acknowledge’ (Esclavo/Maestro (Escritura/Lectura))

9. Condición de STOP. (lo envía el maestro)

3. Ejercicios. Lectura de datasheet.

PROBLEMA 1. Medición de la temperatura

Queremos utilizar el sensor de temperatura digital DS1631+ para realizar una sola medición de la

temperatura. Para ello configuraremos el sensor con los siguientes parámetros:

- TOUT activo en nivel bajo.

- Resolución de 10 bits.

- Nivel de temperatura máximo de trabajo de 37,5º. En caso de superar esta temperatura, el integrado

deberá darnos una señal de aviso.

Florida Universitaria Departamento de Ingeniería 4


Informática Industrial I Práctica I2C

- Nivel de temperatura mínimo de trabajo de 35,25º. En caso de estar por debajo de esta temperatura, el

integrado deberá resetear la señal de aviso.

Indica que registros han de ser configurados y con qué valores. Enumera también paso a paso el orden en el

que deben ser enviados los mensajes para poder comunicarnos con el DS1631, es decir, llamada al esclavo,

parada de la comunicación, envío o lectura de datos, bits de reconocimiento, etc. La dirección del esclavo

queda a cargo del grupo. Adjuntar también el esquema eléctrico de conexiones de la Raspberry Pi Pico con el

DS1631+.

PROBLEMA 2. Módulo de expansión de entradas y salidas

Queremos utilizar el módulo de expansión de entradas y salidas MCP23017 para tener disponibles en nuestra

tarjeta más entradas y salidas digitales. Para ello configuraremos el módulo con los siguientes parámetros:

- El puerto A serán salidas digitales a nivel alto.

- El puerto B serán entradas digitales con la resistencia de Pull-Up activa.

- Los demás parámetros de configuración del MCP23017 se dejarán en su valor por defecto.

Indica que registros han de ser configurados y con qué valores. Enumera también paso a paso el orden en el

que deben ser enviados los mensajes para poder comunicarnos con el MCP23017, es decir, llamada al

esclavo, parada de la comunicación, envío o lectura de datos, bits de reconocimiento, etc. La dirección del

esclavo queda a cargo del grupo.

Florida Universitaria Departamento de Ingeniería 5

También podría gustarte