Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este tipo de bus es muy sencillo de utilizar, todos los microcontroladores lo tienen o lo pueden
controlar.
• Con referencia a la velocidad, puede conseguir velocidades altas (estándar son 100kbps,
pero también encontramos dispositivos con 400 kbps o 3.4 Mbps)
• La principal ventaja es que solo necesita dos líneas (dos bits del microcontrolador)
• También se pueden conectar varios dispositivos a la vez.
La idea es la siguiente:
• Etapa del clock o del dato vemos un transistor que cuando lo activamos empieza a fluir
corriente y vemos una bajada de la tensión
• Cuando desactivamos la comunicación, la línea de tensión del transistor vuelve a subir
Estas transmisiones no son inmediatas, sino que dependerán de la capacidad parasita (cuantos
mas dispositivos, mayor capacidad parasita, mas tardara en hacer esta subida o bajada).
Para calcular las resistencias de pull up podemos hacerlo según dos criterios:
Direcciones
Cada fabricante del dispositivo tiene una dirección I2C y lo habitual es que sean direcciones de 7
bits (o 10 bits en modo extenso).
• De la dirección de 7 bits los 4 primeros indican el tipo de dispositivo y los 3 mas bajos
generalmente se utilizan para configurar cuantos dispositivos de estos están conectados.
• F (free) cuando las dos líneas, la SDA y SCL, están en alta impedancia.
• S (Start) o R (Restart) la linia SDA pasa de nivel alto a nivel bajo mientras que SCL se
mantiene en nivel alto.
Esto nos indica que se esta iniciando una transmision
• C (Change) cuando cambiamos los datos de la línea. Cuando el SCL esta en nivel bajo.
• D (Data) cuando el SCL esta en nivel alto y leemos la línea del SDA
• P (Stop) cuando finalizamos la comunicación. La línea SDA pasa de nivel bajo a nivel alto
mientras el SCL se mantiene en nivel alto.
Cada vez que enviamos un dato, enviamos una secuencia de 8 bits, una vez finalizados estos 8
bits, se añade un bit final de acknolegment (ACK) si este es 0 es que no vamos a enviar mas
datos, pero si es 1 significa que se continua la comunicación.
Direcciones I2C
Hay algunas direcciones (de 7 bits, como se ha comentado antes) que tienen los 4 bits altos
configurados con funciones especiales:
Primero el master envía la secuencia de inicio (start), después envía la dirección de 7 bits + un
bit más bajo adicional que indicara con ‘0’ escritura i ‘1’ lectura. Para final la comunicación se
envia la secuencia de stop.
El master envía la secuencia de inicio, envía la dirección del dispositivo + el bit de lectura, lee los
datos de los dispositivos (con el ACK sabremos si ha acabado o no) y acaba con la secuencia de
stop.