Hallo, ich hätte gern gewusst warum der I2C Bus bei dem Board mit "digitalen" Pegelwandler funktioniert? Das dürfte doch eigentlich ohne Pullups und ohne Mosfet-Levelshifter gar nicht funktionieren. Pololu verwendet einen TI XS0108 Pegelwandler. Das Pololu Board ist an einem Arduino Nano ESP32 angeklemmt zum rumspielen. Es sind nirgends "versteckte" Pullups im Spiel. https://www.pololu.com/product/3419 https://www.pololu.com/product/3419#lightbox-picture0J12382
Wer Datenblätter lesen kann, ist ... "7 Detailed Description 7.1 Overview The TXS0108E device is a directionless voltage-level translator specifically designed for translating logic voltage levels. The A-port accepts I/O voltages ranging from 1.4V to 3.6V. The B-port accepts I/O voltages from 1.65V to 5.5V. The device uses pass gate architecture with edge rate accelerators (one shots) to improve the overall data rate. The pull-up resistors, commonly used in open-drain applications, have been conveniently integrated so that an external resistor is not needed. While this device is designed for open-drain applications, the device can also translate push-pull CMOS logic outputs." Analog für NXS0108 ...
Veit D. schrieb: > TI XS0108 Wenn ich da ins Datenblatt schaue, sehe ich da einige Rpub in der Schema Zeichnung. Andreas B. schrieb: > The pull-up resistors, > commonly used in open-drain applications, have been conveniently > integrated so that > an external resistor is not needed. Übersetzt: Die Klimmzüge, Widerstände, häufig in Open-Drain-Anwendungen verwendet, wurden bequem integriert so Ein externer Widerstand wird nicht benötigt. Auch die MosFET sehe ich da.
:
Bearbeitet durch User
Hallo, gut, hatte ich ignoriert. Sorry. Nur wenn der Pullup zwischen 40k und 4k wechselt, ist das für I2C nicht gerade förderlich. Würde jemand wirklich diesen Baustein für I2C verwenden?
Veit D. schrieb: > gut, hatte ich ignoriert. Sorry. Nur wenn der Pullup zwischen 40k und 4k > wechselt, ist das für I2C nicht gerade förderlich. Würde jemand wirklich > diesen Baustein für I2C verwenden? Ich würde davon abraten. Ein Kollege ist mit so einem ähnlichen Ding mal bei One Wire auf die Nase gefallen. Die langsamen Flanken eines ICs haben zu komischen Schwingungen geführt, welche die Kommunikation sporadisch gestört haben. Ich glaube es war der MAX3394E. Ich würde bei One Wire und I2C beim Klassiker mit einem MOSFET als BSS138 bleiben. Da schwingt nix, alles millionenfach bewährt. TXS0108E 8-Bit Bi-Directional, Level-Shifting, Voltage Translator for Open-Drain and Push-Pull Applications Maximum data rates: – 110Mbps (push pull) – 1.2Mbps (open drain) Ist dort bei denn EINHUNDERTZEHN Mbps eine Null zuviel oder meinen die das Ernst? Wenn ja, Finger weg! Diese Dinger sind viel zu schnell und machen potentiell mehr Probleme als sie lösen! Man fährt auch nicht mit dem Formel 1 Auto zum Einkaufen!
:
Bearbeitet durch User
Hallo, das erklärt vielleicht die seltenen Init Probleme des ToF Sensor. Selten aber hin und wieder schon. Dabei werden erstmal Unmengen an Konfigdaten in den Sensor übertragen. Wolfang hatte bei seinen ToF Tests auch Probleme bemerkt. https://wolles-elektronikkiste.de/vl53l0x-und-vl53l1x-tof-abstandssensoren Da dachte ich fragst lieber nach. Ich möchte nämlich eine eigene Platine mit dem ToF bauen und werde herkömmliche bzw. bewährte Bauteile für I2C Leveshifter verwenden. Danke.
:
Bearbeitet durch User
Veit D. schrieb: > Nur wenn der Pullup zwischen 40k und 4k wechselt, ist das für I2C nicht > gerade förderlich. Spart Strom. > Würde jemand wirklich diesen Baustein für I2C verwenden? Ja (der TXS0102 ist identisch mit dem TCA9406). Der "One Shot Accelerator" schaltet den Pullup kurz auf 0,05 kΩ; damit werden steigende Flanken ordentlich beschleunigt. Das Problem mit dem TXS ist, dass er eine steigende Flanke erkennt, wenn die Spannung am Eingang ca. 30 % von VCC erreicht. Störungen auf der Leitung erzeugen falsche Trigger (was auf SCL böse endet); mit großem Überschwingen erhälst du einen Oszillator. Der TXS ist für viel schnellere Protokolle optimiert; für I²C wäre z.B. der LSF0102/PCA9306 oder LSF0002 eine bessere Lösung.
:
Bearbeitet durch User
Hallo, auch das würde die seltenen Probleme erklären. Nur sind die LSF0102 und LSF0002 nicht zu schnell? Der PCA9306 wäre erstmal interessant. Danke. Damit könnte man zusätzlich den Bus an/abklemmen. Muss ich mir überlegen ob ich das Experiment eingehe. Aktuell bin ich gedanklich bei diskreten Bauteilen. ;-) Den Platz habe ich.
Falk B. schrieb: > Ich würde davon abraten. Ein Kollege ist mit so einem ähnlichen Ding mal > bei One Wire auf die Nase gefallen Veit fragte aber nach I2C mit genau diesem Ding. OneWire ist anders, Probleme nicht übertragbar.
Michael B. schrieb: >> Ich würde davon abraten. Ein Kollege ist mit so einem ähnlichen Ding mal >> bei One Wire auf die Nase gefallen > > Veit fragte aber nach I2C mit genau diesem Ding. OneWire ist anders, > Probleme nicht übertragbar. Onewire hat EXAKT wie I2C Open Drain Signale! Die Datenrate ist geringer. Also sehr wohl vergleichbar!
Die Low-Pegel sind das Problem! Ich habe dann TCA9517 als Pegelwandler genommen, das geht perfekt! Siehe Thread: Beitrag "Problem mit VL53L0X über P82B96" Ich habe ein Print entworfen für den VL53L3CX, die scheinen aber alle das gleiche Pinout zu haben. Wenn Dich das Projekt interessiert, kann ich es hier reinstellen! Gruss Chregu
Veit D. schrieb: > sind die LSF0102 und LSF0002 nicht zu schnell? LSF0102 und PCA9306 sind identisch; die Geschwindigkeit wird nur durch den Wert der Pullups (und die Kapazität der Leiterbahnen und Chip-Eingänge) bestimmt. Der LSF0002 enthält genau zwei MOSFETs; damit baust du den "klassischen" Levelshifter.
Hallo, Danke Euch. Ich kann mich noch nicht entscheiden ob ich den VL53L8CX wie auf dem Board verwende oder "nur" den VL53L4ED. Wobei man mit 8x8 Zonen mehr machen kann. :-) Die 1 Zonen und 8x8 Zonen haben unterschiedliche Pinouts. Ob es weitere Unterschiede im Detail gibt habe ich nicht nachgeschaut. Danke auch für das Angebot und Erfahrungswerte vom Projekt, mein Board wird jedoch individueller mit Dip-Switche zum Pullup konfigurieren um am Bus flexibel zu bleiben. Danke Clemens für die Info.
:
Bearbeitet durch User
Hallo, kann mir bitte jemand sagen warum ST für die Pullups 47k verlangt? Etwas hoch oder? Sind auch nur max. 3,3V. @ Christian Was hast du verbaut?
:
Bearbeitet durch User
Veit D. schrieb: > kann mir bitte jemand sagen warum ST für die Pullups 47k verlangt? Etwas > hoch oder? Sind auch nur max. 3,3V. Vermutlich ist das ein CMOS-Bauteil, da würden auch 100k noch reichen. Der input leakage current sollte im Datenblatt stehen. Bei maximalem Eingangsleckstrom darf an dem Widerstand nur soviel Spannung abfallen, dass der gültige High-Pegel nicht unterschritten wird. Du kannst den Widerstand natürlich kleiner machen. In stark gestörter Umgebung macht das die Schaltung robuster. Im aktiven Zustand steigt dann aber die Stromaufnahme, und die Treiberleistung des steuernden Ausganges darf natürlich auch nicht überschritten werden. Wenn die Ansteuerung durch einen Microcontroller erfolgt, dann ist das wahrscheinlich totem pole. D.h. der Pin kann High und Low ausgeben. In diesem Fall ist der Pullup nur Failsafe für die Zeit, wo der Controller noch im Reset ist und die Initialisierung der Portpins noch nicht ausgeführt wurde.
Hallo, Danke schön. Wird von einem µC angesteuert. Hatte mich verguckt. Sind nur max. 1,8V.
:
Bearbeitet durch User
Veit D. schrieb: > @ Christian > Was hast du verbaut? VL53L3CX und TCA9517 als Pegelwandler. Alles 2k2. Gruss Chregu
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.