¿Posibilidad de dispositivo SMBus/PMBus con I2C Master?

¿Puedo comunicarme con un dispositivo SMBus/PMBus con I2C? Estuve leyendo las especificaciones y me confundí bastante. Me parece que la única diferencia son los niveles de voltaje y la necesidad de tener una condición de reinicio. ¿Estoy en lo correcto o me estoy perdiendo algo?

SMBUS es básicamente un superconjunto de i2c. Tiene algunas características adicionales. Si no necesita esas características adicionales, entonces sí.
¿Te importaría aclararme esas características adicionales? ¿Qué son exactamente?
General: maximintegrated.com/en/app-notes/index.mvp/id/476 o ti.com/lit/an/sloa132/sloa132.pdf Específico: mire la hoja de datos de su dispositivo de destino.
SMBus no es un superconjunto de I2C, existen grandes diferencias en la velocidad y la longitud del bus. SMBus se creó a partir de la especificación I2C en particular para resolver los problemas de administración de periféricos internos de ACPI en el espacio de la PC.

Respuestas (2)

SMBUS es básicamente un superconjunto de i2c. Tiene algunas características adicionales. Si no necesita esas características adicionales, entonces sí.

Algunas lecturas ligeras sobre las diferencias generales:

https://www.maximintegrated.com/en/app-notes/index.mvp/id/476

http://www.ti.com/lit/an/sloa132/sloa132.pdf

Los detalles sobre lo que hace el dispositivo y cómo funciona se pueden ver en la hoja de datos. Es posible que no indique directamente qué características son los comandos normales de i2c, pero siempre que comprenda cómo funciona i2c, puede diferenciarlos.

SMBUS es un superconjunto restrictivo de I²C. Tiene algunas características además de I²C. Sin embargo, cuando un host/dispositivo afirma que es compatible con SMBUS, puede o no ser posible enviar datos I²C arbitrarios. Es posible que esté limitado a datos I²C compatibles con SMBUS.

SMBus es un subconjunto definitivo de los estándares I2C.
Consulte http://www.smbus.org/specs/index.html
Para conocer las especificaciones I2C (mantenidas por NXP), consulte esto: http://cache.nxp.com/documents/user_manual/UM10204.pdf

Las principales diferencias para SMBus:

  1. 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, actualmente no se usa en ninguna PC ACPI que conozca.

  2. Para el uso de ACPI (PC), SMBus utiliza una velocidad de datos mínima de 10k bps y máxima 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 CC (parado) y puede funcionar mucho más rápido, con el nuevo estándar hasta 3,4 Mbps.

  3. SMBus admite una especificación de extracción de bus de baja potencia de 350 uA y un modo de alta potencia de 3 mA, I2C especies una capacidad de corriente de extracción 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.

  4. Los esclavos SMBus deben implementar un tiempo de espera de reinicio automático de 35 mS. No encuentra esto en los chips I2C, por lo que debe monitorear los tiempos de espera en lo que sea que impulse al maestro. Esto afecta los tiempos de extensión del reloj, ya que si el reloj se mantiene presionado por más de 35 mS, el SMBus se reiniciará, mientras que I2C técnicamente puede extender el reloj indefinidamente (no es algo bueno, por supuesto).

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 de periféricos SMBus pueden fallar debido a problemas de 'extensión de reloj' (que provocan reinicios) o a velocidades bajas < 10k bps.