Ich möchte einige Sensoren verwenden, die über eine SMBus-Schnittstelle verfügen. Die Signalisierung sieht sehr nach I2C aus.
Was sind die Hauptunterschiede zwischen I2C und SMBus? Kann die TWI-Hardware eines AVR mit SMBus-Peripheriegeräten kommunizieren? Wenn die Antwort "es kommt darauf an" lautet, wo liegen dann die Einschränkungen?
Das SMBus-Protokoll kann mit AVR-Mikrocontrollern verwendet werden, entweder durch Bit-Banging des Protokolls oder durch die I2C-Hardwareunterstützung. Einige SMBus-Geräte hatten anscheinend Probleme mit dem I2C-Protokoll, wie es in früheren Versionen der Arduino-Bibliotheken "wire.h" implementiert wurde, aber da in der Frage kein Arduino erwähnt wird, ist dies vermutlich nicht Teil des Problems. @vicatcu weist darauf hin, dass dieses Problem in der aktuellen Arduino-Version behoben wurde.
Siehe Peter Fleurys I2C Master Interface- Bibliothek für AVR-gcc als Ausgangspunkt. Dies funktioniert mit ein paar SMBus-Sensoren, die ich verwende.
Außerdem gibt es im AVR Freaks-Forum einige Diskussionen über die SMBus-Implementierung , die Ihnen helfen könnten, bestimmte Schlaglöcher entlang der SMBus-Straße zu umgehen.
Ich habe weitere Fragen, habe aber ein Dokument von TI gefunden, das die Unterschiede zwischen den beiden sowohl in Bezug auf die Elektrik als auch auf die Software genau beschreibt.
Unterschiede i2c und SMBus von TI
Ich habe ein i2c-Gerät und ein SMBus-Gerät. Sie arbeiten getrennt, aber nicht zusammen. Ich denke es ist ein Softwareproblem. Der Link ist eine gute Referenz. :)
Schauen Sie sich jetzt (2019) PackProbe an: https://powercartel.com/projects/PackProbe/
Dort gibt es viele Informationen und ein nettes Arduino-Dienstprogramm (verfügbar auf GitHub).
@DaveTweed: Dies ist kein Goody oder Service, lesen Sie es sorgfältig durch.
PeterJ
Vicatcu
Codebeat