ESP 1-wire PullUp's auf beiden Seiten des LevelShifters 3.3V<>5V?

OP #7948887
Lesenswert?

Hallo

ich habe hier verschieden Temp und auch Temp/Feuchte Sensoren wie DS18B20 und DHT Sensoren.

Damit beide stabil laufen sollte man diese mit 5V betreiben. Da ich einen 3.3V ESP nutze den man auch auf der Datenleitung nur mit max 3.3V anfahren sollte, nutze dafür LevelShifter von 3.3V auf 5V.

auf dem Schema von Texas Instruments sah ich das zumindest beim I2C Bus auf beiden Seiten ein Pullup empfohlen wird

Ist das bei einem bi-direktionalen LevelShifter von 3.3V auf 5V auch so dass man auf der 3.3V Seite und auf der 5V Seite einen Pullup setzen sollte?

edit: suche ich hier unter google so gibt mir die KI aus, dass man den PulLUp nur auf der 5V Seite benötigt. Stimmt das?

Angehängte Dateien:
: Bearbeitet durch User
#7948895
Lesenswert?

Hallo Achim,

ich würde einen IIC Levelshifter einsetzen z.B. TCA9517. Du brauchst auf beiden Seiten PullUp Widerstände. Auf der 5V Seite würde ich 4K7 nehmen und auf der 3V3 Seite 3K3. Einen Switch brauchst du meines Erachtens nicht, den brauchst du nur wenn du die Slave Adresse nicht ändern kannst.

Gruß Andreas

#7948904
Lesenswert?

Achim A. schrieb:

edit: suche ich hier unter google so gibt mir die KI aus, dass man den PulLUp nur auf der 5V Seite benötigt. Stimmt das?

Nö. Der Klassiker aus 2 MOSFETs, der auch in sehr ähnlicher Form in vielen integrierten Pegelwandlern stecket, braucht auf jeder Seite einen Pull-Up. Die integrierten haben sie teilweise schon eingebaut, Nomen est Omen!.

Ergo. Zeig mal einen Schaltplan mit konkreten Beuteilen.

#7948928
Lesenswert?

Die DS18B20 tun es ganz hervorragend auch mit 3,3V VCC.

Das Texasdings ist ein Multiplexer und da es da auch die Möglichkeit gibt das keiner der Busse genutzt wird brauchts da an beiden Enden Pullups.

Die normalen Levelshifter für I²C brauchen ebenfalls an beiden Seiten einen. Ob man SHT und DS18B mit einem I²C-Shifter betreiben kann weiß ich nicht nehme es aber an.

#7948974
Lesenswert?

Achim A. schrieb:

Ist das bei einem bi-direktionalen LevelShifter von 3.3V auf 5V auch so dass man auf der 3.3V Seite und auf der 5V Seite einen Pullup setzen sollte?

Das hat nichts mit "sollte" zu tun.

Hast du dich schon einmal mit den Grundlagen vom I2C-Bus beschäftigt? Woher soll bei einem Bus-System mit rezessivem High-Pegel der High-Level kommen, wenn nicht durch einen Pull-Up (oder eine Stromquelle)?

p.s. Was hat das "1-wire" im Titel mit dem I2C-Bus zu tun?

#7948982
Lesenswert?

Rainer W. schrieb:

Woher soll bei einem Bus-System mit rezessivem High-Pegel der High-Level kommen

Da dürfte die Vermutung eines nicht-ganz-so-tiefen-Technikers sein, das der Levelshifter evtl. "durchsichtig" ist?

Rainer W. schrieb:

Was hat das "1-wire" im Titel mit dem I2C-Bus zu tun?

Sowohl der DS18B20 als auch die DHT-Sensoren nutzen ein einstrippiges Protokoll, und der verwendete Levelshifter ist nicht I²C-Protokollspezifisch, wird aber oft so bezeichnet weil er halt 2 Kanäle hat.

OP #7948998
Lesenswert?

Andreas G. schrieb:

ich würde einen IIC Levelshifter einsetzen z.B. TCA9517. Du brauchst auf beiden Seiten PullUp Widerstände. Auf der 5V Seite würde ich 4K7 nehmen und auf der 3V3 Seite 3K3.

Hallo, ich setze hier einen TXS0108 bi-dierktionalen LevelShifter ein, da ich ein paar Ports noch mehr haben wollte als die üblichen 4-Kanal

Ok dann habe ich das so verstanden das man sowohl die 3.3V Seite als auch die 5V Seite auf der Datenleitung mit Pullupos stabilisieren sollte.

Vielen Dank für die Info

OP #7949000
Lesenswert?

Andreas G. schrieb:

ich würde einen IIC Levelshifter einsetzen z.B. TCA9517. Du brauchst auf beiden Seiten PullUp Widerstände. Auf der 5V Seite würde ich 4K7 nehmen und auf der 3V3 Seite 3K3.

Hallo, ich setze hier einen TXS0108 bi-dierktionalen LevelShifter ein, da ich ein paar Ports noch mehr haben wollte als die üblichen 4-Kanal

Ok dann habe ich das so verstanden das man sowohl die 3.3V Seite als auch die 5V Seite auf der Datenleitung mit Pullupos stabilisieren sollte.

Vielen Dank für die Info

Falk B. schrieb:

2 MOSFETs, der auch in sehr ähnlicher Form in vielen integrierten Pegelwandlern stecket

ich vermute mal der von mir genutze TXS0108 ist so ein Mosfet-levelShifter

#7949014
Lesenswert?

Jens M. schrieb:

Sowohl der DS18B20 als auch die DHT-Sensoren nutzen ein einstrippiges Protokoll, ...

Richtig, wobei nur der DS18B20 1-Wire® (Analog Devices, Maxim Integrated, Dallas) verwendet. Der DHT22 nutzt ein eigenes Protokoll. Beide Sensoren können sowohl mit 3,3V als auch mit 5V arbeiten, so dass eine Pegel-Shifterei doch eher überflüssig erscheint. Oder was sind das für "DHT-Sensoren"?

#7949020
Lesenswert?

Achim A. schrieb:

Hallo, ich setze hier einen TXS0108 bi-dierktionalen LevelShifter ein, da ich ein paar Ports noch mehr haben wollte als die üblichen 4-Kanal

Der ist vollintegriert.

Ok dann habe ich das so verstanden das man sowohl die 3.3V Seite als auch die 5V Seite auf der Datenleitung mit Pullupos stabilisieren sollte.

Nein, die hat der IC schon eingebaut, ca. 4k.

2 MOSFETs, der auch in sehr ähnlicher Form in vielen integrierten Pegelwandlern stecket

ich vermute mal der von mir genutze TXS0108 ist so ein Mosfet-levelShifter

Noch viel mehr, da steck viel Know How drin.

OP #7950802
Lesenswert?

Jens M. schrieb:

Die DS18B20 tun es ganz hervorragend auch mit 3,3V VCC.

Das Texasdings ist ein Multiplexer und da es da auch die Möglichkeit gibt das keiner der Busse genutzt wird brauchts da an beiden Enden Pullups.

Die normalen Levelshifter für I²C brauchen ebenfalls an beiden Seiten einen.

Na Ja... die DS18B20 funktionieren aber auch mit 5V und was ich so im Netz gelesen habe, sollen die damit auch stabiler laufen. zumindest wenn man mehr als einen an einem Bus hat und die Kabellänge etwas länger ist

ich glaube auch das ich von dem von mir hier eingesetzten TXS0108 abrücken werde... Ich hatte eigentlich vom LevelShifter erwartet das ich auf der einen Seite mit 3.3V reingehe und auf der anderen mit 5V raußkomme (je nach angelegten Spannungen) so wie eben bei den 08/15 4 Kanal Bi-direktionalen LevelShiftern wenn ich dann aber lese das man bei dem TXS0108 erstmal noch einen OE Pin entweder mit GND oder VCC brücken muss und dann evtl noch mit Pulldown ... was weiss ich nicht für gefühlte 100 Varianten einsetzen kann, zusätzlich dann endlich mal die Sparkfun-Seite lese wo man gleich im Text die Empfehlung bekommt gleich auf den 4-Kanal 08/15 Shifter zu wechseln...wenn man sich nicht sicher ist, ob man auch min 2mA Signal bekommt dass dieses Teil überhaupt funktioniert ... dann spart so ein Billigteil womöglich unnötige Zeit und Ärger und es funzt ganz einfach

Der Hinweis Pullups bei den I2C IO-Expandern beidseitig zu setzen ist wertvoll. Danke

So setze ich nun auf den 4-kanal- billig bi-direktionalen 3.3V und 5V Seite Pullups und auf dem IO-Portexpander der via I2C läuft, auch auf beiden Seiten Pullups (bzw. nur noch auf einer Seite da die i2C-seite die ja von dem Levelshifter kommt, eh schon Pullups bekam.

Anbei ein kleiner Schaltplan

Ps. beim IO-Expander habe ich kein Fritzing-Bauteil gefunden was die I2C und VCC als auch GND Pins drauf hätte und im Datenblatt nachzusehen war ich zu bequem da ich ja eh einen auf einer Platinbe habe ... ich denke aber das es im schaltplan schon deutlich wird.

Angehängte Dateien:
#7950866
Lesenswert?

Achim A. schrieb:

Na Ja... die DS18B20 funktionieren aber auch mit 5V und was ich so im Netz gelesen habe, sollen die damit auch stabiler laufen.

Kann ich nicht bestätigen. Hab einen DS18B20(-Klon?) und einen SHT21(-Klon?) an einem batteriebetriebenen Funk-Sensor, und der sendet seit mehreren Jahren minutlich die Temperaturen und Luftfeuchte, ohne jedes Problem. Der Sensor meldet aktuell 2.60 Volt Betriebsspannung, vermutlich schaffen die Batterien noch ein paar Jahre länger.

Die Temperatur-Messwerte der beiden Sensoren sind nie mehr als ein paar 0.1°C auseinander (aktuell 19,75 vs 19,81°C), insofern gehe ich davon aus dass die niedrige Spannung weder die Zuverlässigkeit noch die Genauigkeit beeinträchtigt.

Wichtig: Wenn man so billige China-Breakout-Boards kauft, nach welchen ohne 3.3V-Spannungsregler suchen. Zum einen hat der einen (im Vergleich zum Sensor selber) großen Ruhestromverbrauch, zum anderen erwärmt er die Platine.

: Bearbeitet durch User
OP #7951013
Lesenswert?

Εrnst B. schrieb:

Wichtig: Wenn man so billige China-Breakout-Boards kauft, nach welchen ohne 3.3V-Spannungsregler suchen. Zum einen hat der einen (im Vergleich zum Sensor selber) großen Ruhestromverbrauch, zum anderen erwärmt er die Platine.

das ist eine wichtige Info Die Erwärmung der Platinen ist ja bei den Sensoren oft ein unterschätztes Thema musste ich auch schon feststellen.

Habe aber gerade noch was zu den LevelShifter gelesen.

Ich habe hier einen Adafruit https://www.adafruit.com/product/757

und einen wie den Sparkfun https://www.berrybase.de/sparkfun-logic-level-konverter-bidirektional?gad_source=1&gad_campaignid=22696911352&gbraid=0AAAAADSQJK7_d7kKXRZn0wvcAw83nCtZt&gclid=Cj0KCQjw6bfHBhDNARIsAIGsqLgNs4mHj4nc9vqGIU8dT53s4DMJC95SUts3qvLX0Cm_60QSmntCxdAaApWBEALw_wcB

bei beiden, dem Adafruit und beim sparkfun sollte man so wie ich es verstanden habe, KEINE Pull-ups mehr verwenden da er schon welche integriert hat.

Wenn ich also einen I2C-Bus mit 5V betreibe wie bei mir der IO-Expander (ich habe hier ja einen 3.3V ESP der nur 3.3V auf den IO-Pins verträgt) so bräuchte ich laut Infos zumindest KEINE PullUp's.

Habe jetzt beide auch mal nachgemessen Beide LevelShifter haben sowohl auf der Low UND auf der High-Seite 10K Pull-ups verbaut

somit brauche ich da also keine PullUps mehr oder? Sonst könnte ich wohl nur Störungen einbauen wenn ich jetzt noch zusätzliche verbaue. ?

zu den Sensoren: ich verwende hier 1x BVME680 (direkt an 3.3V) der ist nahe am ESP's ca 6 x DS18B20 an einem längeren Kabel 3x DHT22 Sensoren auch an teils bis zu 6 Meter Kabellänge

Ich denke die ersten beiden der BME und die DS18B20 könnte ich noch an 3.3V betreiben

Die DHT Sensoren, die müsste ich aber schon an 5V betreiben

Zumindest was ich so im Netz gefunden habe an Infos

Ein Nextion-Display was 5V braucht muss ich auch an den TX/RX anschliessen. Das müsste ich auch über den LevelShifter laufen lassen

OP #7951093
Lesenswert?

Εrnst B. schrieb:

Wenn du am langen Kabel Stabilitätsprobleme mit den Sensoren hast: 100nF jeweils nah an den Sensoren verbessern das oft.

das hatte ich bis jetzt noch nicht probiert. Ich hätte da aber welche Zuhause (aus Keramik) den müsste ich dann parallel mit einem Bein auf die Datenleitung und mit dem anderen Beinchen auf GND legen. korrekt?

edit: und wäre die Größe von 100nF bei einem 5V angetriebenen Sensor gleich wie bei einem 3.3V Sensor?

: Bearbeitet durch User
#7951145
Lesenswert?

Εrnst B. schrieb:

Achim A. schrieb:

den müsste ich dann parallel mit einem Bein auf die Datenleitung und mit dem anderen Beinchen auf GND legen. korrekt?

nein. GND und VCC

nicht bei parasitärer Speisung da muß der arme Pin auch noch im Timing den Zusatzkondensator runterziehen, auf jeden Fall sollte man die beiden Fehlertemperaturen 85°C und 129°C (oder >125°C?) ignorieren und neu lesen, CRC8 ist eh Pflicht. Auch ist Mittelwertbildung empfohlen, denn wenn die Temperatur innerhalb von Sekunden auf über 70°C steigt brennt die Bude eh.

Lange Drähte haben auch mehr Kabelkapazität also ruhig 3mA vorsehen damit die Flanken steil bleiben.

: Bearbeitet durch User
#7951159
Lesenswert?

Joachim B. schrieb:

nicht bei parasitärer Speisung da muß der arme Pin auch noch im Timing den Zusatzkondensator runterziehen

Da nennt man die Datenleitung aber hoffentlich nicht VCC.

Im "Schaltplan" (in Anführungszeichen) von Achim oben war nicht ersichtlich, ob er tatsächlich die DS18B20 parasitär versorgen will, ich würd's nicht empfehlen wenn nicht unbedingt nötig.

Und bei den DHT22 stellt sich die Frage eh nicht.

: Bearbeitet durch User
OP #7951440
Lesenswert?

Jens M. schrieb:

Nein, es schadet nicht zusätzlich welche einzubauen, aber die sollten halt nah bei diesen sein und man muss die Parallelschaltung rausrechnen.

Gut zu wissen ich habe das jetzt so gemacht. Hab auf der Platine nahe dem LevelShifter zusätzliche Stiftleisten und eben die Verbindungen verbaut die dann für die Pullups sind. So kann ich diese entsprechend setzen oder eben weglassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren