Du hast also gar keinen I2C Bus, sondern irgendetwas nicht näher beschriebenes anderes mit RS485 Pegeln. Bist du dir sicher, das das wirklich funktioniert?Bei den Stromversorungskabeln sind 3 Kabeln dabei, die 3,5A PWM modulierten Strom führen, zum dimmen der Lampen. Das hat erstmal garnicht funktioniert. Ich habe dann direkt an die Steuerung eine kleine Schaltung mit CAN Bustreibern gehängt, die den standard I2C Bus auf Differentielle Signalübertragung umwandelt. Direkt beim Terrarium wird es wieder zurückgewandelt.
Der Standard-I2C Bus ist jetzt nur noch auf der Hauptplatine (ca. 30cm) und im Terrarium zu den einzelnen Sensoren (ca. 1,5m geschirmte CAN Kabeln).
Es ist ziemlich schwer, zielführende Ratschläge zum I2C Bus zu geben, wenn du gar keinen hast.
Das wäre ein Hinweis gewesen, passt aber nicht bei RS485 Pegeln.Das Grundproblem von I2C ist halt schon, dass er unsymmetrisch ist und eben auf solche Störungen anfällig
Ich glaube auch nicht an direkte Störungen durch die PWM, die passt nicht zu Minuten. Da geht eher jede Übertragung in die Hose. Ich denke, die ganze Buswandlung funktioniert nicht zuverlässig, und die SCL Leitung hängt. Der Master, der eigentlich den Takt vorgibt, sieht das als Clock-Stretching und hängt dann auch.
Klingt gut, aber wenn dein Bus hängt und damit auch dein I2C Controler, hilft dir das hier nicht.Lieber wäre mir das eleminieren von den Endlosschleifen im Programm
Ohne Tricks und voll in den Specs, reicht ein I2C Bus leicht 5m bei 400kHz. Eingestreute Störungen führen nicht zum Hängen sondern "nur" zu fehlerhaften Daten.
Die häufigsten Probleme entstehen durch "Verbesserungen" wie Pegelwandler oder Buswandler. Die Busleitungen sind nun mal Open Collector und nur nach Low getrieben, und das ist nicht einfach zu machen. Auch fertige Wandlerbausteine haben da ihre Einschränkungen, wie man in den Datenblättern lesen kann.
Das nächste Problem sind die Kabel. Weil bei anderen Übertragungen verdrillte Leitungen eingesetzt werden, wird das auch als gut für I2C angesehen, und dann SDA und SCL als Paar geführt. Die Wirkung ist dann ein quasi Kurzschluß zwischen beiden durch die Kabelkapazität. Da geht dann auch nichts mehr.
Da ich aber immer noch nicht weiß, wie lang dein Bus sein muß, jedenfalls ist er nicht kürzer als 30cm + 1,5m, kann ich dir schlecht einen Rat geben, dein Problem zu lösen.
MfG Klebwax
Lesezeichen