SMBus-Pullup-Widerstandswert

Hallo, ich muss mit einem Gerät über SMBus kommunizieren. Ich konnte jedoch nicht den richtigen Wert für Pull-up-Widerstände auswählen. Vdd ist 4,9 V und ich verwende SMBus. Unter den gleichen Bedingungen für die I2C-Kommunikation habe ich 2-kOhm-Widerstände verwendet und es hat funktioniert, aber ich bin mir nicht sicher, welcher Wert für SMBus richtig ist. Irgendwelche Ideen?

In seinem Datenblatt steht dies, aber ich konnte es nicht ganz verstehen. Ich denke, es heißt, dass für 5 VI 15 k Widerstände benötigt werden. Wenn ich jedoch 20-k-Widerstände mit 4,9 V Vdd verwende, würde es auch funktionieren?

Dieses Zitat stammt aus „ Application Note: Implementing The SMBus Interface For Use with Bren-Tronics Batteries “:

PULL-UP-ANFORDERUNGEN

Eines der Merkmale von SMBus ist seine Fähigkeit, Systeme mit unterschiedlichen Versorgungsspannungen zu verbinden, durch die Implementierung einer Open-Drain-Schnittstelle mit absoluten (im Gegensatz zu ratiometrischen, relativ zur Versorgungsspannung, wie I2C) Hoch-/Niedrigspannungsschwellenwerten. Vih der SMBus-Schnittstelle beträgt 2,1 V; Die Obergrenze der logisch hohen Spannung beträgt 5,5 V – was den Betrieb mit 3,3 V/5 V Logik erleichtert. Die Pull-up-Bausteine ​​für die Open-Drain-Schnittstelle (einer für jede Leitung – Takt und Daten) werden einfach an die Versorgungsspannung im Host-System angeschlossen.

Der „Buchstabe des Gesetzes“ in SMBus besagt, dass der „stationäre“ niedrige Ausgangsstrom (Iol) auf 350 Mikroampere oder weniger begrenzt werden muss. Dies entspricht Pull-up-Widerständen von 15 kOhm in einem 5-V-System für die einfachste SMBus-Schnittstelle. Die Streukapazitäten, die in der Verdrahtung und/oder den ESD/EMI-Unterdrückungsvorrichtungen von mit dem Bus verbundenen Vorrichtungen vorhanden sind, können jedoch manchmal die Anstiegszeiten über die Spezifikationsgrenze von 1,0 Mikrosekunden hinaus verlängern, wenn resistive Pull-Ups verwendet werden, die der Iol-Grenze entsprechen.

Es gibt eine Reihe von Optionen, die verwendet werden können, um diese Einschränkungen zu beheben.

Aktive Pull-up-Vorrichtungen, die während des Übergangs von niedrig nach hoch einen höheren dynamischen Strom liefern, während sie an anderer Stelle die stationäre Grenze beibehalten, können wie in Abbildung 2.3 der Spezifikation gezeigt implementiert werden.

Ein einfacherer Ansatz besteht darin, niederohmige Pull-ups zu verwenden, wenn Ströme, die höher als die Iol-Grenze sind, von ALLEN an den Bus angeschlossenen Geräten (aktuell und zukünftig) toleriert werden können, ohne die Vil-Spezifikationsgrenze von 0,8 VDC zu verletzen. Dies ist häufig der Fall, da dies eine Technik ist, die häufig in kommerziellen Systemdesigns verwendet wird. In dieser Hinsicht gehen Bren-Tronics-Batterien mit der Fähigkeit, SMBus-Strom auf Niveaus von bis zu 700 Mikroampere oder mehr aufzunehmen, über die Spezifikation hinaus.

Schauen Sie sich die Spezifikationen an. Normalerweise sagen Ihnen die Spezifikationen für das Master-Gerät, was Sie brauchen.
Ich bin das Master-Gerät. Ich versuche, mit einer Batterie zu kommunizieren. Batterie ist der Sklave.
Wollen Sie sagen, dass es mit dem 20k-Widerstand nicht funktioniert hat? Warum nicht einfach 15k verwenden?

Antworten (2)

12k Ohm Pull-up, lassen Sie uns den SMBus eines BT70791 gut funktionieren.

Ich habe versucht, die Pull-up-Spannung von 2,5 V bis auf 5,5 V zu ändern

So erhalten Sie zunächst mit nur 1 Batterie eine Bestätigung vom SMBus-Slave mit einer Spannung über 2,5 V und einem Pull-up-Widerstand von 12 kOhm. (Falls Sie BrenTronics verwenden) Wenn man bedenkt, dass sie 700 mA oder mehr sinken können. Sie können mit einem noch niedrigeren Pull-up-Widerstand davonkommen und die Batterie wird immer noch in der Lage sein, die Leine "niedrig" zu ziehen.

(Ohmsches Gesetz) [Spannung = OHM * Strom]

oder in diesem Fall [(Maximaler Senkenstrom 700 mA) >= Spannung/Widerstand] "Kleiner oder gleich V/R".

Denken Sie daran, dass die 2-Zellen-Batterien von BT 2x SMBus haben. Mit derselben Adresse (0x16) (Übersetzt erscheint dies als 0x0b auf einem Packet-Sniffer, wenn Sie die SCL/SDA-Leitungen beobachten möchten)

Ein weiterer TIPP Halten Sie den maximalen Abstand zwischen Master und Slave unter 50 cm! Die I2C-Leitung und der SMBus sind für kurze Entfernungen ausgelegt. Datenbeschädigung oder kein „ACK“ erscheint zufällig, wenn SDA/SCL-Leitungen die maximale Länge von 50 cm überschreiten

Würden 20K funktionieren?

Vielleicht, es kommt darauf an:

„Allerdings können die Streukapazitäten in der Verkabelung und/oder ESD/EMI-Unterdrückungsvorrichtungen von mit dem Bus verbundenen Geräten manchmal die Anstiegszeiten über die Spezifikationsgrenze von 1,0 Mikrosekunden hinaus verlängern, wenn resistive Pull-Ups verwendet werden, die der Iol-Grenze entsprechen.“

Wenn also Ihre Streukapazität gering ist, kann dies der Fall sein. Probieren Sie es aus und messen Sie Ihre Anstiegszeiten. Sehen Sie, wie viel Spielraum Sie zur Spezifikation haben.

Ansonsten :

„Ein einfacherer Ansatz ist es, niederohmige Pull-ups zu verwenden, wenn Ströme, die höher als die Iol-Grenze sind, von ALLEN an den Bus angeschlossenen Geräten toleriert werden können.“

Überprüfen Sie also die technischen Daten Ihres Geräts auf Iol-Grenzwerte und sehen Sie, wie niedrig ein Wert ist, den Sie verwenden können. Wählen Sie etwas etwas Höheres für die Marge.

Wenn nicht, verwenden Sie einen aktiven Ansatz. Sehen Sie sich Abbildung 2.3 in der Spezifikation an.