Forum: Mikrocontroller und Digitale Elektronik i2c stop start timing


von Fried V. (tich)


Lesenswert?

Frage zun i2c Bus:
Wie lange muß man nach einer STOP condition warten bis man wieder eine 
START condition setzten kann? Mit einem 10 Mhz ATmega16 geht es bei 
400kHz direkt ohne Probleme, also start-stop Telegramm und sofort danach 
nächstes Telegramm. Bei 100 kHz hängt sich der Bus aber auf, der Start 
kommt bevor nach dem Stop SCL und SDA wieder high sind (mit Proteus 
Grafik Simu nachgeprüft). Einige us delay zwischen den Telegrammen 
behebt das Problem.
Ich habe in den Busspezifikationen nirgends gefunden, dass nach einem 
Stop eine "Erhohlzeit" für den Bus erforderlich ist.
Habt ihr diesbezügliche Erfahrungen?

von Peter D. (peda)


Lesenswert?

Laut Philips I2C-Spezifikation muß SDA mindestens 4,7µs auf High 
bleiben.

Die Philips 8051 mit Hardware-I2C machen das richtig, die AVRs aber 
leider nicht.

Daher muß bei den AVRs unbedingt eine Delay-Loop rein.
Trozdem kommt es bei Multimaster-I2C zu Konflikten.


Peter

von Fried V. (tich)


Lesenswert?

Vielen Dank Peter,
hatte mich schon krummgesucht nach diesem Fehler.
Gruß Fried

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.