Gast
#1720872
Hi an alle, ich hab ein merkwürdiges Problem, bin grad ziemlich ratlos. Mein I2C hängt sich auf und SDA bleibt komplett auf Masse-Pegel. Man kann den Bus wieder zum leben erwecken, wenn man einmal kurz von Hand SCL nach Masse zieht, dann geht sofort die Kommunikation weiter. Ich hab mit einem Logik Analyzer das ganze mal mit geloggt und muss jetzt feststellen, dass der Master manchmal nur 7 bit sendet, SCL nach Masse geht und der BUS danach nicht mehr ansprechbar ist. Im Anhang gibts davon ein Bild. Hier erstmal die Hardware: Master: 1x TMS320C6713B I2C Pegel: 3,3 V Slaves: 6x LPC2141 I2C Pegel: 5 V hinter dem Master hängt noch ein Pegelwandler von TI PCA9306 Pull-Ups verwende ich jeweils 7x 15k, das gibt dann insgesamt ~ 2k1 Frequenz liegt um die 100 kHz Leitungslänge über alles 1,5 Meter, die Kapazität liegt wohl etwas über den 400pf aus der I2C Spezifikation von Philips Wir haben schon ein ähnliches System aufgebaut mit Master LPC2138 und ATMEGA88 als Slaves, bei denen ich in 5 Jahren nie so einen Fehler gesehen habe. Ich denke auch, dass die Slaves LPC2141 korrekt eingestellt sind und sich richtig verhalten, sicher bin ich mir da allerdings nicht (-; Der C6713 macht mir da schon mehr sorgen, die I2C Schnittstelle ist hier richtig mies umgesetzt, was die Register betrifft und wie man sie behandeln muss. Ist nicht vergleichbar mit LPC und ATMEGA... Jetzt also meine Fragen: a. Hatte schonmal jemand diese Situation, dass nur 7 Bits getaktet werden und danach nichts mehr geht? b. Ich habe schon probiert, den Master-I2C zurückzusetzen, bringt natürlich keinen Erfolg. Hier im Forum wurde ja schon vorgeschlagen, SCL manuell zu Takten, bis SDA wieder auf High ist. Der C6713 lässt das aber irgendwie nicht zu, wenn SDA auf low liegt. Es geht dann kein Takt raus. Hatte schon überlegt, den SCL Pin auf GPIO zu stellen, wie es ja auch bei nem LPC oder AVR geht, aber der SCL Pin hat keine Doppelbelegung. Wie kann ich also den I2C reseten?! c. Hat jemand funktionierenden Code für I2C auf dem C6713? Bin mir nicht sicher ob ich hier alles richtig mache... Vielen dank schonmal! mfg fabi
