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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.