I2C: Unterbrechung einer Sendesequenz?

Gast #109311
Hallo allerseits !

Was passiert eigentlich, wenn eine Sendesequenz auf dem I2C-Bus durch
einen Interrupt unterbrochen wird ? Sind die Slaves ohne weiteres in
der Lage beim nächsten Clock zu erkennen, dass es weitergeht oder muss
hierzu ein bestimmtes Timing eingehalten werden?
Sollten IRs generell deaktiviert werden, wenn auf dem I2C-Bus gesendet
wird ?

Viele Grüsse
Jan
Gast
I2C ist timingunkritisch, d.h. du kannst die Übertragung komplett
einstellen und später fortsetzen. Die Slaves werten nur die Daten bei
Flankenwechsel der Clockleitung aus. Diese können beliebig langsam
kommen.
IRQs deaktivieren nicht notwendig.

----, (QuadDash).
Das Timing ist schon kritisch, d.h. die Minimalzeiten dürfen nicht
unterschritten werden.

Aber es gibt keine Maximalzeiten, Du kannst also ein Start senden und
ein Jahr später das Adreßbyte.

Allerdings wird in Multimasternetzen gerne ein Timeout von 1ms
eingebaut. D.h. wenn der Bus länger als 1ms belegt ist, ohne das sich
SCL geändert hat, wird davon ausgegangen, daß was schief gelaufen ist
und alle Teilnehmer resetten ihr I2C-Interface.

Und 1ms ist ja für Interrupts eine wahnsinnig lange Zeit, d.h. solange
sollten auch Interrupts den I2C nicht verzögern dürfen.


Peter
Genau wie ichs sagte, der Bus befindet sich irgendwo zwischen Start und
Stop, aber auf SCL tut sich nichts >1ms.

Aber das ist nur ne reine Softwarefrage, ob man das implementiert oder
nicht.
Z.B. der P87C751 hat dafür extra einen 1ms Timeoutzähler.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.