Gast
#1913138
Hallo zusammen, ich verzweifele langsam an der I2C-Schnittstelle. Ich habe 2 Mikrcontroller die sich über die I2C-Funktion unterhalten (1xMaster und der andere Slave) Ich habe die Slave Lib von Manni genommen und habe mir sehr viel dazu angelesen. Lesen und Schreiben geht, aber nur einzelnt und nicht über ein Repeatet Start miteinander verbunden. Habe dann noch ecplizit den Status des TWI Status Register überprüft per Software überprüft, um da drauf zu reagieren, doch der setzt nie diesen bestimmten Status. Ich weiß einfach nicht warum?! Hab natürlich ein Oszi rangeschlossen und sehe auch die RS-Bedingung. Auch wenn ich über den MKII debugge, dann erkennt das TWI Status Register nicht den Zustand Repeatet Start. Es setzt den Status "Nothing to Do - Everything ist fine" und scheint anscheinend die Clock dauerhaft herunterzuziehen. Jetzt könnte man denken, dass was an meiner Master Lib nicht stimmt, doch wenn ich da nen I2C Eeprom ranhaue, dann kann ich ohne Probs mit Repeatet Start kommunizieren. Kennt ihr einen funktionierenden SourceCode, wo ihr wisst, dass hier die Repeatet Start Kommunikation klappt? Wenn man sich die Application Note von Atmel herunterlädt, dann ist das dort ja eher durch einen dürftigen Workaround gelöst, indem das erste Byte was gesendet wird dem Controller Lesen oder Schreiben sagt..... Beispiel: Sende einfach als erstes zum Beispiel eine 3 und dann weiß der Slave-Controller dass ich nachdem ich alle xx Daten bekomme habe, antworten soll. Bei 1 will der Master nur schreiben und bei 2 nur lesen..... Nen nicht schöner Workaround wie ich finde - da das ja eigentlich I2C abnimmt. PS: Der Source-Code zu dem Thema von RN-Wissen zeigt übrigens das gleiche Verhalten wie Mannis.... :-( Vielen Dank wenn ihr euch mit der doch schon recht tiefen Frage beschäftigt. Schöne Grüße Maik