-
        
Thema geschlossen
Ergebnis 1 bis 5 von 5

Thema: Takt beim I2C-Bus

  1. #1
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1

    Takt beim I2C-Bus

    Na dann mal zwischendurch noch eine leichte praxisnahe Aufgabe, Forum Leser müßten es wissen

    Beim I2C-Bus im sogenannten Master Slave Betrieb gibt ja der Master den Takt vor. Ist es dennoch möglich das der Slave den Master bremst oder beschleunigt? Wenn ja, wie geht das?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Ich denke ja mal, das man das was du schreibst, in den Artikeln des Roboternetz-forums nachlesen kann

    Also habe ich da mal geguckt und rausgefunden, das wenn der Slave die Clockleitung länger auf Low hält, das der Master dann folgen muss.

    Somit wird das ganze System verlangsamt...

    Ich hoffe das ist richtig

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1
    Ja so stimmts, soweit, gut mitgelesen Es müsste nur noch erklärt werden wie es gehen kann das der Master die Clock gleichzeitig auf High legt und der Slave die Leitung auf Low. Weshalb geht der Port nicht dadurch kaputt?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    09.06.2004
    Ort
    Rhein-Neckar-Raum
    Beiträge
    504
    Zitat Zitat von Frank
    Weshalb geht der Port nicht dadurch kaputt?
    Weil beim I²C "open-Collector-" oder "open Drain" -Ausgänge verwendet werden (die nur nach Masse schalten können). Der Master legt die Clock-Leitung nicht auf HIGH. Er verhält sich statt dessen (bei HIGH) hochohmig. Der HIGH-Pegel auf der Clock-Leitung (SCL) kommt durch den Pull-Up-Widerstand zustande. Bei der Datenleitung (SDA) ist es genau so.

    Diese Schaltungsart nennt man: "wired and Schaltung"


  5. #5
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1
    Genau so ist es.

    Wie schon gesagt: Weder Master noch Busteilnehmer schalten die Clock-Leitung auf High. Diese wird nur durch die Pullup´s auf High gelegt. Um ein Low Signal zu erzeugen wird dieser geringe Ruhestrom des Pullups auf Masse gezogen.
    Um High zu erzeugen, schaltet der Master also quasi nur auf den Eingangsmode, dadurch wird er hochohmig.

    Beim I2C Bus prüft der Master, nach der Umschaltung auf Eingang, ob denn nun die Leitung auch wirklich auf High ist. Wenn dies nicht der Fall ist weil ein Slave die Leitung ebenfalls auf Masse zieht, hängt er in einer Warteschleife, solange bis alle Slaves die Leitung frei geben (also ebenfalls auf High/hochomig) schalten.

    Dadurch kann ein etwas langsamer Slave den Bus bremsen.

    Die Frage ist somit perfekt gelöst

Thema geschlossen

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •