2 votos

¿SMBus con el AVR?

Estoy estudiando la posibilidad de utilizar algunos sensores que tengan 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 hablar con periféricos SMBus? Si la respuesta es "depende", ¿cuáles son las limitaciones?

2 votos

Wikipedia tiene un buen resumen de las diferencias es.wikipedia.org/wiki/Gestión de sistemas de bus

0 votos

@PeterJ gracias, es una buena referencia; tendré que afinar mis habilidades de wiki-fu para complementar mis habilidades de google-fu

0 votos

Ahora (2019), echa un vistazo a PackProbe: powercartel.com/projects/PackProbe Hay mucha información y una buena utilidad (disponible en GitHub).

6voto

userid53 Puntos 116

El protocolo SMBus se puede utilizar con los microcontroladores AVR, ya sea mediante el cambio de bits del protocolo, o a través del soporte de hardware I2C. Al parecer, algunos dispositivos SMBus han tenido problemas con el protocolo I2C tal y como se implementaba en versiones anteriores de las librerías "wire.h" de Arduino, pero como la pregunta no menciona un Arduino, es de suponer que eso no forma parte del problema. @vicatcu señala que este problema ha sido resuelto en la actual versión de Arduino.

Ver Peter Fleury Interfaz maestro I2C para AVR-gcc como punto de partida. Esto funciona con un par de sensores SMBus que uso.

Además, hay un par de discusiones sobre la implementación de SMBus en el Foro AVR Freaks que puede ayudarle a sortear los baches específicos que se encuentran en el camino del SMBus.

0 votos

Estoy interesado en leer más sobre los problemas con SMBus y Arduino si no te importa elaborar ese punto...

0 votos

@vicatcu Ver esto artículo del blog que menciona " la biblioteca Wire no admite el uso de la función de inicio repetido " y proporciona la alternativa que he mencionado. Véase también este mensaje en Arduino.cc, " Conseguí que funcionara usando una biblioteca diferente. Parece que el cableado (sic) no puede hacerlo ".

0 votos

Gracias por las referencias... aunque esa noción puede estar un poco desfasada. Hubo mucho tráfico en la lista de correo de los desarrolladores sobre la adición de soporte para los inicios repetidos el año pasado. Este hilo parece confirmar... arduino.cc/foro/index.php?topic=137607.0 se ha añadido a la función endTransmission y a la función requestFrom, y los documentos de la API coinciden en que

1voto

Charkel Puntos 50

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 de TI

Tengo un dispositivo i2c y un dispositivo SMBus. Funcionan por separado, pero no juntos. Creo que es un problema de software. El enlace es una buena referencia. :}

0voto

user88784 Puntos 16

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 bien ni un servicio, lee con atención.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X