Hallo alle zusammen, beim Auslesen eines Sensors wird nach dem Senden der Startbedingung kein Takt auf SCL erzeugt. SCL und SDA sind mit 4,7 als Pullup beschalten (5V). Als Quellcode habe ich bereits mehrere Varianten getestet und auch den Controller habe ich bereits gewechselt (AT90CAN). Merkwürdig erscheint mir folgendes: 1.) SCL geht ziemlich zeitgleich mit SDA auf LOW 2.) Beim Senden der Adresse wechselt SDA auf High - SCL bleibt weiterhin LOW Um Auszuschließen das der Sensor einen Treffer hat, habe ich 2 AT90CAN miteinander verbunden. Der Effekt bleibt der gleiche - SCL wird nicht generiert!! Wo kann nur der Fehler liegen ? Der Controller läuft als Master Receiver mit folgenden Quellcode: int main(void) { DDRB = 0xff; PORTB = 0xff; i2c_init(); // 100kHz bei 16Mhz Systemtakt while(1){ i2c_start_wait(0x78+I2C_READ); i2c_readAck(); i2c_stop(); } Die Funktionen basieren auf der Lib von Peter Fleury
Sven E. schrieb: > 1.) SCL geht ziemlich zeitgleich mit SDA auf LOW was heißt ziemlich? ist die Lib als Software-I2C? wenn ja hab ich die auch in Verwendung und sie funkt. Hast du vielleicht irgendwo Kurzschlüsse? oder SDA und SCL falsch definiert?
einen hab ich noch: hast du die Wartezeiten auf 16MHz angepasst?
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.