Forum: Mikrocontroller und Digitale Elektronik I2C VOL-Anpassung möglich?


von Marten M. (mcgonahy148)


Lesenswert?

Hallo zusammen,


Folgendes hätte ich vor, bereitet mir aber etwas Sorgen :-)

Über I2C spreche ich mit einem Atmega2560 (Master) und einem TCA9546A 
(I2C-Mux IC). Das schöne an dem I2C-MUX ist, dass er mit verschiedenen 
Spannungen umgehen kann z.B. 1.8V, 5V-Logik etc.

Der Atmega arbeitet mit Vcc=5V, also mit 5V-I2C-Pegeln. Der TCA soll auf 
1.8V betrieben werden bzw. muss es. Mit VIH kann dieser umgehen, also 
die 5V-Pegel die er bekommt als High vom Atmega.

Allerdings: VOL ist beim TCA max. 0.54V und beim Atmega der gibt 
VOL_max=0.9V (je nach Strom).

Wird also gefährlich dass er in den verbotenen Bereich kommt.

Kann ich mit einfachen Mitteln den VOL-Pegel versuchen etwas zu drücken, 
z.B. über Serien-Widerstand? Allerdings weiß ich nicht welchen Strom der 
TCA auf dem Bus zieht. Leitungsimpedanz ist dann auch noch so ein Thema, 
allerdings sind Controller und TCA vielleicht max. 5-10cm auseinander.

Ich möchte jetzt deswegen keinen extra I2C-Pegelwandler noch mit rein 
designen :-(


Gruß,
M

von Pete K. (pete77)


Lesenswert?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aber wieviel Strom willst du denn da rausziehen? Solange du z.B. nur 
10mA ziehst, bleibt der Ausgang unter 0,25V und ist damit locker im 
gewünschten Vol Bereich.
Grafik dazu findet sich im Datenblatt unter Punkt 32-23.

von Marten M. (mcgonahy148)


Lesenswert?

Pete K. schrieb:
> https://www.mikrocontroller.net/articles/Spannungsteiler

Analog ok, aber wir sprechen hier ja von einem Digitalsignal und Flanken 
etc. Das war ja meine Frage ob das so einfach geht mit einen 
Widerstand/Spannungsteiler...

von Marten M. (mcgonahy148)


Lesenswert?

Matthias S. schrieb:
> Aber wieviel Strom willst du denn da rausziehen? Solange du z.B. nur
> 10mA ziehst, bleibt der Ausgang unter 0,25V und ist damit locker im
> gewünschten Vol Bereich.
> Grafik dazu findet sich im Datenblatt unter Punkt 32-23.

Kann ich das so einfach raus lesen aus dem TCA-Datenblatt?
https://www.ti.com/product/TCA9548A#tech-docs

Da war doch auch was mit Leitungskapazität etc. wieviel Strom der 
kurzzeitig brauch oder?! 10mA klingt für mich jetzt nach zu viel auf so 
kurze Strecken um diese Leitung treiben zu können... (Ahja, LEDs sind 
keine drauf oder parallel-Caps).

Bei Ii steht im Datenblatt nur was von -1...+1uA bei SDA/SCL.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Marten M. schrieb:
> (Ahja, LEDs sind
> keine drauf oder parallel-Caps).

Das ist auf einem I²C Bus auch keine gute Idee. Der Löwenanteil des 
Stromes aus dem MC Pin geht in die Pullups des Busses. Wenn die also so 
dimensioniert werden, das du unter etwa 10-15mA bleibst, sollte das 
alles klappen und auch Low sauber erkannt werden.

Marten M. schrieb:
> Da war doch auch was mit Leitungskapazität etc. wieviel Strom der
> kurzzeitig brauch oder?!

Leitungs-C kannste bei 5-10cm erstmal völlig vergessen, denn du bist da 
ja unter 1MHz unterwegs. Und die Aufladung des empfangenden MOSFet im 
TCA ist so gering, das dafür das gleiche gilt. Die Dinger sind ja für 
den Busbetrieb und darauf bedacht, diesen möglichst wenig zu belasten.

von Achim S. (Gast)


Lesenswert?

Marten M. schrieb:
> Allerdings: VOL ist beim TCA max. 0.54V und beim Atmega der gibt
> VOL_max=0.9V (je nach Strom).

Ob die beiden VOL Werte zueinander passen, ist egal. Entscheidend ist, 
dass der VOL-Wert des Treibers zum VIL-Wert des Empfängers passt.

Marten M. schrieb:
> Analog ok, aber wir sprechen hier ja von einem Digitalsignal und Flanken
> etc. Das war ja meine Frage ob das so einfach geht mit einen
> Widerstand/Spannungsteiler...

Spannungsteiler funktionieren bei Analog- und bei Digitalsignalen. Aber 
bei I2C funktionieren sie nicht, weil dort mit open Drain Treibern und 
externem Pullup gearbeitet wird und die Signale bidirektional sind. Die 
Variante mit  Spannungsteiler kannst du also vergessen.

Aber Matthias hat dir ja die Lösung schon genannt: du wirst sicher eine 
Kombination von Pullup-Stärke und Übertragungsgeschwindigkeit finden, 
die funktioniert. Und natürlich wird es auch Kombinationen geben, die 
nicht funktionieren. Aber das ist immer so bei I2C, das ist kein 
spezifisches Problem deiner beiden Bausteine.

von Axel S. (a-za-z0-9)


Lesenswert?

Marten M. schrieb:

> Allerdings: VOL ist beim TCA max. 0.54V und beim Atmega der gibt
> VOL_max=0.9V (je nach Strom).
> Wird also gefährlich dass er in den verbotenen Bereich kommt.

Nein.

> Kann ich mit einfachen Mitteln den VOL-Pegel versuchen etwas zu drücken

Zieh einfach nicht unmäßig viel Strom aus dem Ausgang. Bei I²C kommt der 
Strom praktisch nur aus dem Pullup. Weniger als 1K wirst du nicht 
brauchen, das macht bei 5V dann 5mA. Damit liegt der Low-Pegel des AVR 
typisch bei 120mV. Da ist noch massig Luft.

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.