I2C
I2C es un protocolo de comunicación serial síncrono que permite la comunicación entre múltiples dispositivos conectados a un bus común utilizando solo dos líneas:
- SDA (Serial Data Line): Línea de datos.
- SCL (Serial Clock Line): Línea de reloj.
Características principales:
- Comunicación maestro-esclavo: Un dispositivo maestro controla el bus y los dispositivos esclavos responden a sus solicitudes.
- Direcciones únicas: Cada dispositivo tiene una dirección de 7 o 10 bits, permitiendo identificar múltiples dispositivos en el bus.
- Velocidades estándar:
- Modo Estándar: Hasta 100 kbit/s.
- Modo Rápido: Hasta 400 kbit/s.
- Modo Alta Velocidad: Hasta 3.4 Mbit/s.
Aplicaciones en IoT:
- Conexión de sensores y periféricos: Ideal para integrar sensores de temperatura, humedad, presión, acelerómetros, memorias EEPROM, entre otros, en proyectos de IoT.
- Expansión de dispositivos: Permite conectar múltiples dispositivos en el mismo bus sin necesidad de pines adicionales.
- Soporte en plataformas populares: Compatible con Raspberry Pi, Arduino y otros microcontroladores, facilitando su implementación mediante bibliotecas específicas.
Ventajas:
- Simplicidad de diseño: Reduce el número de conexiones necesarias al usar solo dos líneas para comunicación.
- Escalabilidad: Facilita la adición de nuevos dispositivos al bus compartido.
- Amplia adopción: Estándar ampliamente utilizado con gran cantidad de dispositivos compatibles disponibles en el mercado.
Limitaciones:
- Distancias cortas: Diseñado para comunicación entre dispositivos cercanos; no es adecuado para largas distancias.
- Velocidad moderada: No es tan rápido como otros protocolos como SPI, lo que puede ser una limitación en aplicaciones que requieren alta velocidad de transferencia.
Página oficial NXP Semiconductors: https://www.nxp.com/docs/en/user-guide/UM10204.pdf