You are on page 1of 28

El bus I2C

Microcontroladores

EL BUS INTER-INTEGRATED CIRCUITS I2C

El bus I2C

Microcontroladores

Bus I2C

El Bus I2C

Microcontroladores

Las caractersticas ms importantes del bus I2C son:

Comunicacin serial, utilizando un conductor para manejar los pulsos de reloj (SCL) y otro para intercambiar datos (SDA), que transportan informacin entre los dispositivos conectados al bus.
Los dispositivo puede ser considerado como Maestro (Master) o esclavo (Slave). El Maestro es el dispositivo que inicia la transferencia en el bus y genera la seal de Clock. El Slave (esclavo) es el dispositivo direccionado.

El bus I2C

Microcontroladores

Transmisin de bits
Los bits de datos van por SDA Por cada bit de informacin es necesario un pulso de SCL Los datos slo pueden cambiar cuando SCL est a nivel bajo

El bus I2C

Microcontroladores

Los datos transitan en el flanco de bajada del reloj El dato es recibido en el borde de bajada del reloj El bit ms significativo se enva primero El nodo que recibe debe manejar un acknowledge (bajo en SDA) despus de completado el byte El nodo maestro siempre genera el reloj

El bus I2C

Microcontroladores

Las caractersticas ms importantes del bus I2C son:

Trasferencia de datos:
Los datos y direcciones que se transmiten por SDA son de 8 bits.
.

Tras cada bloque debe recibirse una seal


de reconocimiento (ack).

El bus I2C

Microcontroladores

Las caractersticas ms importantes del bus I2C son:

La cantidad de dispositivos que se pueden


conectar al bus est limitada, solamente, por la mxima capacidad permitida de 400 pF.

El bus permite la conexin de varios Masters,


ya que incluye un detector de colisiones.

El protocolo de transferencia de datos y


direcciones posibilita disear sistemas completamente definidos por software.

El bus I2C

Microcontroladores

Las caractersticas ms importantes del bus I2C son:

Los modos de transferencia de datos del bus I2C


Modo Estndar (S-mode) aproximadamente a 100 kBits/Seg. Modo Rpido (F-mode) aproximadamente a 400kbits/Seg. Modo Alta velocidad (Hs-mode) mas de 3,4 Mbits/Seg.

El bus I2C

Microcontroladores

Formato del Mensaje


Un protocolo orientado a BIT Reconocimiento Bidireccional

El bus I2C

Microcontroladores

RELACIN ENTRE LOS NIVELES DE SDA Y SCL


Todos los maestros deben generar una subida en la lnea SCL (2), leer el nivel en SDA (3) y generar una caida en la lnea SCL (4). El Esclavo no debe cambiar el dato durante el tiempo que SCL es alto ( de lo contrario podra generarse una condicin START o STOP imprevista) .

Durante (1) y (5), el esclavo puede cambiar el estado de la lnea SDA. En total est secuencia debe ser realizada 8 veces para completar el byte dato.

Los bytes siempre son transmitidos con el Bit Ms Significativo primero.

El bus I2C

Microcontroladores

Condiciones de START y STOP:

START:
la lnea SDA cae a cero mientras SCL permanece en nivel alto. A partir de este momento comienza la transferencia de datos.

Una vez finalizada la comunicacin se debe informar de esta situacin (condicin de Stop). La lnea SDA pasa a nivel alto mientras SCL permanece en estado alto.

El bus I2C

Microcontroladores

Maestro enva datos a un esclavo

El bus I2C

Microcontroladores

Inicio de transmisin La transmisin la inicia el maestro Flanco de bajada en SDA con SCL a nivel alto Cuando nadie accede al bus hay un nivel alto en SCL y SDA

El bus I2C

Microcontroladores

Start y Stop
SDA baja antes que SCL

SCL alta antes que SDA

Start SDA baja cuando el reloj (SCL) es alto Stop SDA sube cuando SCL es alto (Normalmente no hay transicin cuando el reloj es alto)

El bus I2C

Microcontroladores

Enviando a un Esclavo

El bus I2C

Microcontroladores

Reconocimiento (Acknowledge) :

El bus I2C

Microcontroladores

Transferencia completa

Maestro lee datos de un esclavo

El bus I2C

Microcontroladores

Eventos del Bus I2C : Recibiendo un byte de un Esclavo


Una vez que el esclavo ha sido direccionado y el esclavo ha reconocido sto, el maestro puede recibir un byte del esclavo si el bit R/W en la direccin se puso en modo READ ( puesto a 1)

La sintaxis del protocolo es la misma que cuando se transmite un byte a un esclavo, excepto que ahora no se le permite al maestro tocar la lnea SDA. Previo al envi por la lnea SCL,de los 8 pulsos de reloj necesarios para el envi del byte , el maestro libera la lnea SDA. Ahora el esclavo tomar el control de esta lnea. La lnea se ir a alto si se desea transmitir un 1 o si el esclavo desea mandar un 0, se mantiene en bajo.

El bus I2C

Microcontroladores

Para operar un esclavo sobre el Bus I2C solo son necesarios seis simples cdigos, suficientes para enviar o recibir informacin.
Un bit de Inicio 7-bit o 10-bit de direccionamiento Un bit R/W que define si el esclavo es transmisor o receptor Un bit de reconocimiento Mensaje dividido en bytes Un bit de Stop

El bus I2C

Microcontroladores

Esquema bsico de conexiones

El bus I2C

Microcontroladores

Esquema bsico de conexiones


Inconvenientes de la conexin en colector abierto Las capacidades de la lnea se cargan a travs del pull-up Se puede solucionar utilizando una carga activa en lugar de un resistor

El bus I2C

Microcontroladores

Terminacin de Bus

El bus I2C

Microcontroladores

Ejemplo de aplicaciones del Bus I2C

El bus I2C

Microcontroladores

Ejemplo de aplicaciones del Bus I2C


Conexin de una EEPROM serial y un Reloj de tiempo real, con bus I2C, para su uso en un lector de smartcards

El bus I2C

Microcontroladores

Ejemplo de aplicaciones del Bus I2C El bus I2C


Conexin de medidores ultrasnico de distancias a un mC PIC usando el bus I2C. El mdulo SRF10 es un medidor ultrasnico de distancias miniatura para robots que representa la ultima generacin en sistemas de medidas de distancias por sonar. El sensor es capaz de detectar objetos a una distancia de 6 m con la facilidad de conectarse al microcontrolador mediante un bus I2C, por lo que se pueden conectar cuantos sensores sean necesarios en el mismo bus. Con una alimentacin unica de 5V, solo requiere 15 mA, para funcionar y 3mA mientras esta en reposo.

El bus I2C

Microcontroladores

Ejemplo de aplicaciones del Bus I2C El bus I2C


Para el programador, el sensor SRF10 se comporta de la misma manera que las EEPROM de las series 24xx, con la excepcin de que la direccin I2C es diferente. La direccin por defecto de fbrica del sensor es 0xE0. El usuario puede cambiar esta direccin con 16 direcciones diferentes: E0, E2, E4, E6, E8, EA, EC, EE, F0, F2, F4, F6, F8, FA, FC o FE, por lo que es posible utilizar hasta 16 sensores sobre un mismo bus I2C. Adems de las direcciones anteriores, todos los sonares conectados al bus I2C respondern a la direccin 0 -al ser la direccin de atencin general. Esto significa que escribir un comando de medicin de la distancia para la direccin 0 de I2C (0x00) iniciar las mediciones en todos los sensores al mismo tiempo.

El bus I2C

Microcontroladores

Ejemplo de aplicaciones del Bus I2C


Esquema del circuito para la conexin de dos sensores ultrasnicos SRF08

You might also like