Möglichkeit eines SMBus/PMBus-Geräts mit I2C-Master?

Kann ich mit einem SMBus/PMBus-Gerät mit I2C kommunizieren? Ich habe die Spezifikationen gelesen und bin ziemlich verwirrt. Es scheint mir, dass der einzige Unterschied die Spannungspegel und die Notwendigkeit einer Neustartbedingung sind. Liege ich richtig oder übersehe ich etwas?

SMBUS ist im Grunde eine Obermenge von i2c. Es hat einige zusätzliche Funktionen. Wenn Sie diese zusätzlichen Funktionen nicht benötigen, dann ja.
Haben Sie etwas dagegen, diese zusätzlichen Funktionen für mich zu erklären? Was genau sind sie?
Allgemein: maximintegrated.com/en/app-notes/index.mvp/id/476 oder ti.com/lit/an/sloa132/sloa132.pdf Spezifisch: Sehen Sie sich das Datenblatt Ihres Zielgeräts an.
SMBus ist keine Obermenge von I2C, es gibt große Unterschiede in Geschwindigkeit und Buslänge. SMBus wurde aus der I2C-Spezifikation entwickelt, um insbesondere ACPI-interne Peripherieverwaltungsprobleme im PC-Bereich zu lösen.

Antworten (2)

SMBUS ist im Grunde eine Obermenge von i2c. Es hat einige zusätzliche Funktionen. Wenn Sie diese zusätzlichen Funktionen nicht benötigen, dann ja.

Einige leichte Lektüre zu allgemeinen Unterschieden:

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

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

Einzelheiten zu dem, was das Gerät tut und wie es funktioniert, können dem Datenblatt entnommen werden. Es wird möglicherweise nicht direkt angegeben, welche Funktionen normale i2c-Befehle sind, aber solange Sie verstehen, wie i2c funktioniert, können Sie sie unterscheiden.

SMBUS ist eine restriktive Obermenge von I²C. Es hat einige Funktionen zusätzlich zu I²C. Wenn jedoch ein Host/Gerät behauptet, SMBUS-kompatibel zu sein, kann es möglich sein, beliebige I²C-Daten zu senden oder nicht. Möglicherweise sind Sie auf SMBUS-konforme I²C-Daten beschränkt.

SMBus ist eine bestimmte Teilmenge der I2C-Standards.
Siehe http://www.smbus.org/specs/index.html
Für I2C-Spezifikationen (gepflegt von NXP) siehe hier: http://cache.nxp.com/documents/user_manual/UM10204.pdf

Die Hauptunterschiede für SMBus:

  1. SMBus verwendet nur 7-Bit-Adressierung (dies ist in Übereinstimmung mit der ACPI-Spezifikation definiert), obwohl SMBus ein zusätzliches Register für 10-Bit-Adressen definiert, das derzeit auf keinem mir bekannten ACPI-PC verwendet wird.

  2. Für die Verwendung von ACPI (PC) verwendet SMBus eine Datenrate von mindestens 10 kbps und maximal 100 kbps. Es gibt einen neuen Standard (noch nicht ratifiziert, der die Geschwindigkeit erhöht, aber dieser wird noch nicht als Teil von ACPI eingeführt). I2C spezifiziert den Bustakt auf DC (gestoppt) und kann viel schneller laufen, mit dem neuen Standard bis zu 3,4 Mbps.

  3. SMBus unterstützt eine Low-Power-Bus-Pullup-Spezifikation von 350 uA und einen High-Power-Modus von 3 mA, I2C-Spezies eine Bus-Pulldown-Stromfähigkeit von 4 mA. Dies führt zu einer viel kürzeren Leitungslänge und Leistungskapazität für SMBus.

  4. SMBus-Slaves müssen ein Auto-Reset-Timeout von 35 ms implementieren. Sie finden dies nicht auf I2C-Chips, daher müssen Sie Timeouts in dem überwachen, was den Master antreibt. Dies wirkt sich auf die Verlängerungszeiten der Uhr aus, da der SMBus zurückgesetzt wird, wenn die Uhr länger als 35 ms gehalten wird, während I2C die Uhr technisch unbegrenzt verlängern kann (natürlich keine gute Sache).

Um eine bessere Abdeckung der Unterschiede zu erhalten, lesen Sie Anhang B in der SMBus-Spezifikation und Abschnitt 4 der NXP U10204-Spezifikation.

Sie können meistens I2C-Peripheriegeräte auf einem SMBus verwenden, aber das Gegenteil gilt nicht. SMBus-Peripherieimplementierungen können aufgrund von Problemen mit der Taktverlängerung (die zu Resets führen) oder bei niedrigen Geschwindigkeiten < 10 kbps fehlschlagen.