Hallo, laut Spezifikation ist das Senden eines Stop-Bits gleich nach dem Start-Bit nicht erlaubt. In meiner Anwendung würde ich aber am gleichen Bus auch ein Bauteil ansprechen, das genau diese Abfolge benötigt (In dem Fall würde ich dann immer zwischen I2C <-> GPIO hin und her switchen) Natürlich würde das dann jeder im Bus mitbekommen und wäre vielleicht "verwirrt", aber glaubt ihr dass das vielleicht Probleme bereiten könnte? Danke für eure Tipps....
Für ein Bastelprojekt kann man es testen und wenn es geht, dann ist es ok. Aber für ein kommerzielles Produkt würde ich das nicht tun. Schnell mal muss man auf eine Second Source eines Bauteils oder sonst einen Ersatztyp ausweichen und plötzlich funktioniert gar nix mehr. Dann ist viel, viel unnötige Arbeit angesagt.
Kannst Du nicht versuchen das andere Bauteil so anzuschließen, dass Du eben keine Start/Stop Sequenz erzeugst? Da Du die Bauteile nicht näher spezifizierst, ist es schwer, Dir zu etwas zu raten. Aber kannst Du jenes Bauteil nicht einfach anders herum anschließen, also SCL und SDA tauschen? Dann würdest vielleicht keine gültige Start-Sequenz erzeugen und damit würde die Stop-Sequenz ignoriert. Aber ich würde wirklich versuchen, wenn überhaupt nur eine I2C Leitung für was anderes zu verwenden und nicht beide. Gruß, Ulrich
Hans Wurst wrote: > laut Spezifikation ist das Senden eines Stop-Bits gleich nach dem > Start-Bit nicht erlaubt. Warum soll das nicht erlaubt sein? Start und Stop darf alle n*9 Takte (8Bits+ACK) gesendet werden, also auch nach 0*9 Takten. Peter
Das Signal für Start+anschließendem StopBit benötige ich für den Temperatursensor SHT11 von Sensirion. Die verwenden einen (I2C ähnlichen) eigenen Bus. Zusätzlich habe ich am gleichen Bus die Ultraschallsensoren SRF08. Weitere Leitungen für eine extra Bus-Leitung kann ich leider nicht nutzen, da ich keine freien Pins mehr habe. Allerdings Ulrich's Idee die Leitungen SDA und SCL zu vertauschen finde ich sehr gut. Danke euch für die Hinweise.
Ich habe auch mal die SHT11 Sensoren in einem Projekt verwendet. Allerdings wegen der Inkompatibilität zu I²C über 2 eigene Leitungen für den Sensor. Wenn du das schaffst, die Dinger tatsächlich in den I²C-Buss zu integrieren, wäre ich sehr daran interessiert, wenn du uns hier auf dem laufenden hältst.
@ Klaus: Ich würde in dem Fall einfach nur zwischen I2C und GPIO hin und her schalten, das jeweilige Bauteil somit ansprechen und eventuell eine Art I2C_is_busy_flag verwenden.
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.