Forum: Mikrocontroller und Digitale Elektronik I2C: abichtlich Stop-Bit gleich nach Start-Bit senden. Schlimm?


von Hans W. (hans_wurst)


Lesenswert?

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....

von Johnny (Gast)


Lesenswert?

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.

von Ulrich P. (uprinz)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Hans W. (hans_wurst)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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.

von Hans W. (hans_wurst)


Lesenswert?

@ 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
Noch kein Account? Hier anmelden.