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?
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.
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.
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.
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?
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.
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.
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.
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"?
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.
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.
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.
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
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?
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.
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.
Ja, da sind Pullups drin, aber 10k. Viel zu wenig für sichere Funktion, aber es tut auf dem Steckbrett.
Nein, es schadet nicht zusätzlich welche einzubauen, aber die sollten halt nah bei diesen sein und man muss die Parallelschaltung rausrechnen.
den müsste ich dann parallel mit einem Bein auf die Datenleitung und mit
dem anderen Beinchen auf GND legen.
so machst du die Datenverbindung unmöglich, hast du dir mal wenigstens das Datentelegramm, Timing und die Funktion angesehen?
Das ist doch kein Ratespiel und kein malen nach Zahlen.
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.