Forum: Mikrocontroller und Digitale Elektronik SHT11 und I2C Bus gemeinsam nutzen


von Reitl (Gast)


Lesenswert?

Hallo Leute,

Um Pins zu sparen würde ich gerne den SHT11 direkt an den I2C Bus 
hängen.
Ich weis, das er vom Protokoll her nicht kompatibel ist.
Verstell ich mir beim I2C Baustein (RTC, EEPROM, LM75) oder beim SHT11 
etwas, wenn ich einmal mit I2C Befehlen und einmal mit SHT11 Befehlen 
hantiere???
Hat jemand diese Konstellation schon ausprobiert?


mfG
Reitl

von Matthias W. (mawi_pic)


Lesenswert?

Hallo Reitl!

Irgendwie ist mir deine Frage nicht klar. Der SHT11 wird genauso wie der 
LM75 (oder andere Bausteine) über I2C angesprochen und ausgelesen. Jeder 
Baustein hat eine eigene Adresse, über die man Einstellungen vornehmen 
oder Messwerte auslesen kann. Der Charme am I2C-Bus ist ja gerade, dass 
man für mehrere "Geräte" nur eine Daten- und eine Taktleitung benötigt. 
Wenn du natürlich für zwei verschiedene Bausteine die gleiche Adresse 
hast, dann könnte es dazu kommen, dass du mit dem Befehl für den einen 
die Konfiguration des anderen veränderst.
Ein Blick in die Datenblätter verrät, welche Adresse standardmäßig 
eingestellt ist. Sollte der SHT11 zufällig die gleiche Adresse haben, 
wie etwa der LM75 solltest du die ändern. Natürlich ohne den LM75 mit am 
Bus hängen zu haben...

Gruß
mawi_PIC

von Reitl (Gast)


Lesenswert?

Der SHT11 ist eben nicht I2C Protokoll kompatibel.
Er verwendet ein eigenes Protokoll. Kein I2C Protokoll.
Der SHT21 währe I2C kompatibel (Wer ihn löten kann ;-)  ).
Darum auch die Frage, ob jemand damit Erfahrung hat.

Aus Erfahrung kann ich nur sagen, das ihm 2 Pullups (auf Data und Clock) 
nicht stören.

von Matthias W. (mawi_pic)


Lesenswert?

Entschuldige, ich kenne den SHT11 nicht so gut. Verwende gerade Sensoren 
der HYT-Reihe.
Wenn den SHT die Pull-Up-Widerstände nicht stören, dann ist es wohl 
elektrisch kein Problem. Und somit eine Sache der Software, zwischen den 
beiden Protokollen hin- und herzuschalten. Ich würde das einfach mal 
ausprobieren. Das ist meistens am besten.

von (prx) A. K. (prx)


Lesenswert?

Die Datenleitung kannst du gemeinsam mit I2C (oder anderen SHT11) 
verwenden. Musst für die Dauer des SHT11-Zugriffs eben die I2C-Hardware 
im Controller abschalten.

von Frank K. (fchk)


Lesenswert?

Reitl schrieb:
> Hallo Leute,
>
> Um Pins zu sparen würde ich gerne den SHT11 direkt an den I2C Bus
> hängen.
> Ich weis, das er vom Protokoll her nicht kompatibel ist.
> Verstell ich mir beim I2C Baustein (RTC, EEPROM, LM75) oder beim SHT11
> etwas, wenn ich einmal mit I2C Befehlen und einmal mit SHT11 Befehlen
> hantiere???

Hänge doch einfach einen PIC12F1822 als Protokollkonverter zwischen SHT 
und I2C dazwischen. Das ist ein kleiner 8-Pinner mit I2C Hardware.

fchk

von Ulrich P. (uprinz)


Lesenswert?

Wenn Du I2C über Bitbanging machst, kannst Du beide Chips auf SDA legen, 
aber getrennte SCL führen. Damit sparst Du wenigstens eine Leitung.

Ich würde statt des SHT11 den SHT21 nehmen, er lässt sich gut löten, da 
die Pads bis an den Gehäuserand reichen. Leiterbahnen einfach ein gutes 
Stückchen unter dem Gehäuse hervor layouten, sehr sparsam vorverzinnen, 
Flussmittel drauf und Chip auflegen, dann einmal kurz verlöten. Das 
Bottom-Pad muss nicht angeschlossen sein.

Andere Lösung bei meinem Prototypen war ein Stück Lochraster. Dünner 
Fädeldraht an die 4 benutzten kleinen Pads, ein Stück Silberdraht auf 
die Platine und etwas Zinn drauf. Dann den SHT21 mittig längs auf den 
Silberdraht legen und den heiß machen, damit der SHT21 stabil auf dem 
Platinchen sitzt. Dann die 4 Fädeldrähte noch an die üblichen 
Stiftkontakte.

Der SHT21 ist sehr viel angenehmer anzusprechen als der SHT21.
Eine Library dazu gibt es im Nut/OS (www.etherneut.de), sie verzichtet 
komplett auf die libmath, weil sie mit 16-Bit int rechnet, also alle 
Werte *100. Damit sind 24,58°C einfach 2458 oder 15,2% sind 1520.
Die Ausgabe geht dann über printf( "%d.%02d°C\n", temp/100, 
abs(temp%100));

All SHTs, die man direkt auf eine Leitplatte designt, muss man den 
AppNotes entsprechend Abseits postieren, da sie sonst die Wärme der 
Platine annehmen. Ggf den Chip rund herum frei dremeln, ein kleiner Steg 
für die Leiterbahnen zur Schaltung und ein kleiner Steg am anderen Ende 
zur Stabilisierung funktionieren perfekt.

Gruß, Ulrich

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.