SMBus es un subconjunto definido de los estándares I2C.
Consulte enlace
Para las especificaciones de I2C (mantenidas por NXP) vea esto: enlace
Las principales diferencias para SMBus:
-
SMBus solo usa direccionamiento de 7 bits (esto se define de acuerdo con la especificación ACPI), aunque SMBus define un registro adicional para la dirección de 10 bits que actualmente no se usa en ninguna PC ACPI que conozca.
-
Para el uso de ACPI (PC), SMBus utiliza un mínimo de 10k bps y una velocidad máxima de datos de 100k bps. Hay un nuevo estándar (aún no ratificado que aumenta la velocidad, pero aún no se ha introducido como parte de ACPI). I2C especifica el reloj del bus a DC (detenido) y puede funcionar mucho más rápido, con el nuevo estándar de hasta 3.4 Mbps.
-
SMBus es compatible con una especificación de extracción de bus de baja potencia de 350 uA y un modo de alta potencia de 3 mA; I2C permite una capacidad de corriente desplegable de bus de 4 mA. Esto da como resultado una longitud de línea y una capacidad de potencia mucho más cortas para SMBus.
-
Los esclavos SMBus deben implementar un tiempo de espera de reinicio automático de 35 mS. No encuentras esto en los chips I2C, por lo que debes monitorear los tiempos de espera en las unidades que controlan el maestro. Esto afecta a los tiempos de extensión del reloj, ya que si el reloj se mantiene por más de 35 mS, el SMBus se reiniciará, mientras que I2C técnicamente puede extenderse indefinidamente (por supuesto, no es algo bueno).
Para obtener una mejor cobertura de las diferencias, lea el Apéndice B en la especificación SMBus y la sección 4 de la especificación NXP U10204.
En su mayoría, puede usar periféricos I2C en un SMBus, pero lo contrario no es cierto. Las implementaciones periféricas de SMBus pueden fallar debido a problemas de "extensión del reloj" (que causan reinicios) o a bajas velocidades < 10k bps.