Frage zu I2C Timing

OP (Firma: Brainit GmbH) #3281304
Lesenswert?
• ▲
▼
Hallo zusammen,

ich hab mal eine (hoffentlich nicht allzu dumme) Frage zum I2C-Timing. 
Hintergrund ist, ich möchte ein ähnliches Protokoll wie I2C nur 
langsamer und mit anderer Adressierung auf einem AVR in Software 
implementieren.

In den Spezifikationen ist immer davon die Rede, dass sich das 
Datensignal nur während der Low-Phase des Clock-Signals ändern darf 
(Ausnahme: Start- und Stop-Condition).

Heisst das nun, "mitten" während der Low-Phase, oder darf man das auch 
quasi gleichzeitig mit dem Ziehen von SCL auf low machen? (also ca. 1 
Taktzyklus nachher)

Anders gefragt: wird der SDA-pegel während der steigenden Flanke 
gemessen, oder während der fallenden, oder wirklich "dazwischen"?

Alle Soft-I2C-Implementierungen die ich bisher gesehen habe, arbeiten 
"an der Flanke"

Da mein Protokoll eh sehr langsam ist (500-5000 Hz) macht es keinen 
Unterschied, die Delays sozusagen "zu vierteln".


Danke, Michi
OP (Firma: Brainit GmbH) #3281329
Lesenswert?
• ▲
▼
Sorry, ich hab mich wohl unklar ausgedrückt: ich möchte Sensoren der 
Firma E+E ansprechen, diese verwenden ein proprietäres "E2-Bus" 
Protokoll, welches aber sehr ähnlich wie I2C funktioniert, nur 
langsamer, und mit einem ganz anderen Adressierung.
#3281340
Lesenswert?
• ▲
▼
Etwas, was mich beim Bau meiner Programmiergeräte für 89C2051 geärgert 
hat: Da wurde im Datenblatt ständig von einem "gleichzeitig" 
ausgegangen.

"gleichzeitig" gibt es eigentlich nicht. Irgendwelche Belastungen von 
SDA oder SCL können die Anstiegszeiten ändern und damit das "davor" oder 
"danach" beim Überschreiten der 0-1-Schwelle. Auch ein Übersprechen von 
SDA auf SCL kann die Flanken zeitlich verschieben.

Die Software muss auf jeden Fall eine Verzögerungszeit enthalten, die 
auf die Anstiegszeiten der Signale auf dem Bus angepasst sind. Mal so 
eine grobe Schätzung: Ein Zehntel der Bitdauer als Zeitabstand sollte es 
schon sein.
Gast #3281746
Lesenswert?
• ▲
▼
>mag noch jemand was zum i2c timing sagen?

Nee, wozu? Du willst doch E2-Bus.
Schau da in die Datenblätter. Da steht mit Sicherheit
drin was du machen musst. Wenn nicht frag den Hersteller
oder dein Osci.

Wozu also soll man sich hier noch zu I2C äussern?
Das ist komplett sinnfrei.

Antwort schreiben

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.

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.