Darf die I2C-Übertragung gestoppt und wiederhergestellt werden? Ich möchte es in verschiedenen Übertragungsperioden stoppen und dann nach beispielsweise 500 ms den Zustand wiederherstellen, in dem es gestoppt wurde. Ich denke darüber nach, SCL-Übergänge zu aktivieren und zu deaktivieren. Wenn es erlaubt ist, ist es eine schlechte Praxis?
Die minimale Busgeschwindigkeit für alle I 2 C-Modi beträgt 0 Hz. Dies bedeutet, dass es in der I 2 C-Spezifikation gültig ist, das Takten des Takts zu stoppen (statischer Betrieb).
Dies bedeutet jedoch nicht, dass Slaves auch den statischen Betrieb unterstützen müssen; Sie können interne Zeitüberschreitungen haben, die vergehen können, bevor die Kommunikation wieder aufgenommen wird. Überprüfen Sie immer das Datenblatt aller I 2 C-Slave-Geräte, um sicherzustellen, dass sie den statischen Betrieb unterstützen.
Ich denke, jeder I2C muss aufgrund der Taktdehnung ein vollständig statisches Design sein.
BEARBEITEN:
Clock-Stretching ist auch für Master erlaubt. Außerdem spielt es keine Rolle, wer es verursacht hat, sowohl der Herr als auch der Sklave müssen richtig damit umgehen. 5 Stunden sind auch nicht vertretbar - aber noch im Rahmen der Spezifikation.
RBerteig
SCL
bestätigt und niedrig gehalten abgestürzt. Normalerweise gibt es keine Erholung von diesem Zustand. Wenn Sie eine zuverlässige Wiederherstellung auf einem Watchdog benötigen, achten Sie auf solche Geräte.