www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C durch SM-Bus ersetzen


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kennt sich hier jemand mit der Einbindung eines Sm-Bus aus?
hier mal ein kleiner Vergleich von I2C und Sm-Bus

                    I²C                      SMBus

Timeout             No                       Yes
Minimum Clock Speed DC                       10kHz
Maximum Clock Speed 100kHz od. 400kHz        100kHz
VHIGH               0.7 × VDD, 3.0V Fixed    2.1V
VLOW                0.3 × VDD, 1.5V Fixed    0.8V
Max I               3mA                      350μA
Clock Nomenclature  SCL                      SMBCLK
Data Nomenclature   SDA                      SMBDAT
General Call        Yes                      Yes
Alert#              No                       Yes

Habe ein fertiges Programm mit I2C für ein LCD Display. I2C und Sm-Bus 
ist ja anscheinend kompatibel. Was heisst das denn ganz genau?
Würde das mit Blick auf den Vergleich oben bedeuten, dass ich einfach wo 
jetzt noch bei Clock Nomenclature(vom I2C) SCL steht, einfach durch 
SMBCLK vom SM-Bus in meinem Programm abändere?
Grüße

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mal Wikipedia zitieren darf: "Der SMBus basiert auf dem 
I²C-Serienbusprotokoll von Philips."
Also: Im Prinzip muß im Programm nichts geändert werden, wenn der Takt 
schnell genug ist und die Signalpegel kein Problem, die 
Pull-Up-Widerstände nicht zu klein sind, dann kann man direkt SMBCLK als 
SCL anschließen und SMBDAT als SDA.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anstatt TTL sind basiert der SMB auf CMOS I/O, speziell der 0.8/0.6/...
low pegel kann zu Problemen führen. Was du natürlich einführen solltest
ist das SMB-Timeout. Sonst kann es passieren, daß dein I2C Slave den
ganzen Bus lahmlegt, ohne Ausweg. Was SMB auch noch hat, ist eine
dynamisch Adressvergabe der Bausteine, denke aber nicht, daß du das
implementieren musst.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
arbeite mit 100kHz. also von dem her kein Problem.
Kenne mich halt noch nicht so aus in der Materie. Meinst du also das ich 
den Code, z.B.: SCL in SMBCLK abändern müsste oder einfach alles so 
lassen?
Wie bekomme ich das denn mit den Spannungen hin?

Minimum Pullup Resistor Values per Bus Specifications

           3V VDD       5V  VDD
I²C Bus    > 1k        > 1.6k
SMBus      > 8.5k      > 14k

Kannst du mit den Werten etwas anfangen?
Gruß

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ich dir raten würde, den Timeout einzubauen. Alles andere kannst du 
in SW lassen. Die Spannung, nimm CMOS I/O´s, viele uC nutzen das auch
bei I2C, sonst brauchst du einen Buffer. Die Pull-ups sind die 
Wiederstände, welche zu 3V oder 5V geführt werden, damit der I2C slave 
startet.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
müsste ich somit auf Seite des Mikrocontrollers und auf der anderen 
Seite des Sm-Buses die Pull ups anlegen?
hab ja schon einen Controller, den LPC2129.
Was meinst mit CMOS I/O's?

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie baue ich denn den Timeout in das Programm ein?Chris: Was meinst du 
mit SW? Könntest du mir evtl noch erklären wie man das mit den pull ups 
macht?
gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.