Hallo zusammen, ich möchte einen MLX90614 an meinen ESP32 anschließen. Die Leitungslänge sollte mind. 3m haben, besser wären noch 5m. Jetzt erscheint mir das mit einer 3.3V Versorgungsspannung ziemlich lange. Daher möchte ich den Sensor mit 5V Versorgen und dementsprechend die beiden I2C Leitungen mit Hilfe eines Pegelwandler an die 3.3V des ESP32 anpassen. Gibt es hier fertige Bausteine? Oder hatte jemand schon das gleiche Problem? Gleiches Vorhaben habe ich mit dem DS18B20 & DHT22 One-Wire Sensor. Bei einer Versorgungsspannung von 3.3V ist die empfohlene Leitungslänge leider nur 1m. Daher habe ich Ihn mit 5V versorgt und einen Pegelwandler (SN74LV1T34DBVR) dazwischen geschaltet. Außerdem habe ich beide Seiten des Pegelwandlers mit einem Pull Up (nach 3,3V ESP32 seitig und 5V Sensor seitig) versorgt, macht das Sinn und wird das so funktionieren ? (Siehe Anhang) Grüße Waltnus
:
Bearbeitet durch User
Walt N. schrieb: > Die Leitungslänge sollte mind. 3m haben, besser wären noch 5m I2C und solche Leitungslängen? Du wirst dir jede Menge Fehlversuche und/oder Hänger durch Störungseinstreuungen einhandeln. I2C ist zu hochohmig für grosse Leitungslängen. Wie oft hat man hier schon erklärt dass I2C für kurze Verbindungen von Teilnehmern auf einer Leiterplatte gedacht und konzipiert ist.
Zitat PCA9616-Datenblatt (natürlich braucht man zwei davon, einen an jedem Ende des Kabels): The dI2C-bus buffers were designed to solve these problems and are ideally suited for rugged high noise environments and/or longer cable applications, allow multiple slaves, and operate at bus speeds up to 1 MHz clock rate. Cables can be extended to at least three meters (3 m), or longer cable runs at lower clock speeds.
:
Bearbeitet durch User
> besser wären noch 5m. Jetzt erscheint mir das mit > einer 3.3V Versorgungsspannung ziemlich lange. Solche Leitungslaengen sind fuer I2C generell ziemlich lang und koennen FEhler bereiten und dabei ist es vollkommen irrelevant ob du mit 3V oder 5V arbeitest. Vermutlich ist 3V sogar besser weil du du dann die Pullups entsprechend der maximal moeglichen Stromes niederohmiger auslegen kannst. Ich denke aber das es schon auf Bastlerlevel funktionieren kann wenn du die Taktrate niedrig waehlst. I2C funktioniert ja auch mit 10 oder 1khz. Es muessen nicht 400khz sein. Ausserdem muss natuerlich vor ort ein Kondensator an das IC. Also wohl 100nF direkt ans IC und 10uF daneben. PUllup dann bei 3.3V 3.3k, vielleicht sogar 1k. Datenblatt lesen und nicht bloed bleiben. Am Eingang vielleicht noch 10-100R als Serie, muss man mal ausprobieren was geht und wie die Signale aussehen und dann 47pF oder so als Filter. Wenn du dann keine allzu stoerverseuchte Umgebung hast und deine Software keine while(I2C_blabla==true); enthaelt und bei Fehlern wieder aufsetzt, dann koennte das gehen. Vanye
Was mir gerade noch eingefallen ist, man koennte mal probieren anstatt der Serienwiederstaende eine 100MHz Induktivitaet zu verwenden. Also eure schicken OSzi einschalten auf die ihr alle so stolz seit und auch mal pruefen ob ich kein Unsinn erzaehle. :-) Die IDee davon ist die Leitung aus Sicht der 47pF hochomiger zu machen damit der Stoerungen besser wegfiltert. Vanye
Walt N. schrieb: > Gleiches Vorhaben habe ich mit dem DS18B20 & DHT22 One-Wire Sensor. > ... > Daher habe ich ... einen Pegelwandler (SN74LV1T34DBVR) dazwischen > geschaltet. Und wie stellst du dir dabei die Kommunikation mit deinem Sensor vor? One-Wire braucht eine bidirektionale Verbindung. Vanye R. schrieb: > Solche Leitungslaengen sind fuer I2C generell ziemlich lang und koennen > FEhler bereiten und dabei ist es vollkommen irrelevant ob du mit 3V oder > 5V arbeitest. Stimmt - viel wichtiger sind Leitungskapazität und Größe der Pull-Ups. Außerdem müssen SDA und SCL im Kabel halbwegs gut entkoppelt sein, um übermäßiges Übersprechen zu vermeiden (I2C-Specs, Kap. 7.5 Wiring pattern of the bus lines). https://www.nxp.com/docs/en/user-guide/UM10204.pdf Für lange Leitungen bis 30m hilft ein I2C-Bus Extender, wie z.B. der P82B715. Außerdem empfiehlt sich eine nicht zu hohe Taktfrequenz (z.B. 100kHz). Auf jeden Fall ist es immer eine gute Idee, die Form der Signale auf dem Bus mit dem Oszi zu prüfen. https://www.nxp.com/docs/en/brochure/75016527.pdf Wastl schrieb: > Wie oft hat man hier schon erklärt dass I2C für kurze > Verbindungen von Teilnehmern auf einer Leiterplatte > gedacht und konzipiert ist. Lies einfach, was NXP/Philips zu dem Thema schreibt. Die wissen halbwegs, was ihr Bus kann.
:
Bearbeitet durch User
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.