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