Estoy buscando usar algunos sensores que tienen una interfaz SMBus. La señalización se parece mucho a I2C.
¿Cuáles son las principales diferencias entre I2C y SMBus? ¿Puede el hardware TWI de un AVR comunicarse con los periféricos SMBus? Si la respuesta es "depende", ¿cuáles son las limitaciones?
El protocolo SMBus se puede utilizar con microcontroladores AVR, ya sea mediante el bit-banging del protocolo o a través del soporte de hardware I2C. Aparentemente, algunos dispositivos SMBus han tenido problemas con el protocolo I2C implementado en versiones anteriores de las bibliotecas "wire.h" de Arduino, pero dado que la pregunta no menciona un Arduino, presumiblemente eso no es parte del problema. @vicatcu señala que este problema se ha resuelto en la versión actual de Arduino.
Consulte la biblioteca de interfaz maestra I2C de Peter Fleury para AVR-gcc como punto de partida. Esto funciona con un par de sensores SMBus que uso.
Además, hay un par de debates sobre la implementación de SMBus en el foro de AVR Freaks , que podrían ayudarlo a sortear los baches específicos que se encuentran en el camino de SMBus.
Tengo más preguntas, pero he localizado un documento de TI que es específico en las diferencias entre los dos en términos eléctricos y de software.
Diferencias i2c y SMBus por TI
Tengo un dispositivo i2c y un dispositivo SMBus. Trabajan por separado, pero no juntos. Creo que es un problema de software. El enlace es una buena referencia. :}
Ahora (2019), echa un vistazo a PackProbe: https://powercartel.com/projects/PackProbe/
Mucha información allí y una buena utilidad de Arduino (disponible en GitHub).
@DaveTweed: Esto no es un obsequio o un servicio, lea atentamente.
PedroJ
vicatcu
Codebeat