I2C Levelshifter 3,3<->5V zw. Rasp und Stepper-Drv.

OP #4205445
Lesenswert?

Hallo Zusammen,

ich möchte einen Raspberry Pi 2 und einen Stepper-Treiber (TMC223)
per I2C verheiraten.
Der Raspi hat 3,3V der Treiber 5V Spannungsebene für SDA + SCL.

Ich verwende einen diskreten Levelshifter von Watterott.
Die Anschlussbezeichnungen nur Tx + RX.

Das Rasp-Pinniung ist:

1 - 3,3V
3 - SDA
5 - SCL
6 - GND

Die "Adernfarben"
blau - SDA
gelb - SCL
rot - +VB
schwarz - gnd

Könnte die Verdrahtung so funktionieren wie abgebildet?
Mehr Informationen über das Platinchen gibt es bei Watterott
auch nicht.

Grüße Runout
Angehängte Dateien:
Gast #4205547
Lesenswert?

Solange R1 und R2 auf dem Treiber nicht bestückt sind brauchst Du keinen 
Pegelwandler.
Der Pegel auf den I2C-Leitungen wird von den PullUps bestimmt, beim Pi 
liegen sie gegen 3,3Volt und der Treiber hat keine (R1+R2). Du hast also 
3,3Volt mit denen beide Boards klarkommen.
#4205577
Lesenswert?

Guest schrieb:
> Solange R1 und R2 auf dem Treiber nicht bestückt sind brauchst Du keinen
> Pegelwandler.
> Der Pegel auf den I2C-Leitungen wird von den PullUps bestimmt, beim Pi
> liegen sie gegen 3,3Volt und der Treiber hat keine (R1+R2). Du hast also
> 3,3Volt mit denen beide Boards klarkommen.

Das stimmt nicht.
Im Datenblatt des TMC223 findet sich auf Seite 29 eine Tabelle mit den 
elektrischen Charakteristika der I2C-Schnittstelle. Ohne Pegelwandler 
kannst du laut Datenblatt nur maximal 100kHz fahren, mit Pegelwandler 
laufen auch 350kHz noch sicher.
Und um generell Probleme zu vermeiden, sollte man mit dem High-Pegel von 
digitalen Schnittstellen immer oberhalb von 0,7..0,8*VDD liegen.
#4205792
Lesenswert?

Thomas T. schrieb:
> Könnte die Verdrahtung so funktionieren wie abgebildet?
> Mehr Informationen über das Platinchen gibt es bei Watterott
> auch nicht.

nein, kann es vermutlich nicht. So wie ich das sehe ist das für einen 
unidirektionalen bus gedacht, der I²C ist aber zumindest auf der SDA 
Leitung bidirektional.
Als reiner Pegelshifter würde sich z.B. ein PCA9306 anbieten oder ein 
ADUM1251, der isoliert das ganze zusätzlich noch galvanisch.
Gast #4205815
Lesenswert?

Rudolph schrieb:
> Wie man im Schaltplan von dem Ding sehen kann sind da FETs verbaut,
> das ist schon Bi-direktional.
> Grundlage dafür dürfte eine uralte Applikation-Note von Phillips zum I2C
> gewesen sein.

Nur weil da ein FET drauf ist, kannst Du das sagen? Wow...

Die AppNote zum Vergleich der Beschaltung gibt's hier: 
http://www.nxp.com/documents/application_note/AN10441.pdf
Bei 5V <-> 3,3V funktioniert die Schaltung recht gut.
OP #4205822
Lesenswert?

danke erstmal für die vielen Infos.

Das hier ist das Objekt der Begierde:
http://www.watterott.com/de/Pegelwandler

Die App-Note von Phillips kenne ich.
Aber die Anschlussbelegung ist doch etwas verwirrend
und ein Schaltplan ist (zumindest auf dieser Website) nicht dabei.
Vielleicht ist das Teil von SparkFun (weil rot) und ich bekomm dort
die nötigen Infos.

Viele Grüße
Runout
Gast #4205827
Lesenswert?

Das Datenblatt des TMC223 sagt, dass 3V High-Level-Spannung bei 
Taktfrequenzen bis 100kHz ausreichen. Also Pullups an 3.3V und es sollte 
ohne Levelshift funktionieren.

I2C Leitungen funktionieren nach dem Wired-AND-Prinzip: Ein externer 
Pullup-Widerstand zieht die Leitung im inaktiven Zustand auf Vdd (hier 
3.3V). Sobald ein Teilnehmer sendet, zieht er SDA mittels MOSFET auf 
Masse. SDA ist dabei bidirektional, d.h. sowohl Master als auch Slave 
können ihn auf Masse ziehen. Das I2C-Protokoll stellt sicher, dass dies 
immer nur einer zur gleichen Zeit tut. SCL wird normalerweise nur vom 
Master - hier der Raspi - bedient. Ausnahme: Der Slave kann den 
SCL-Taktpuls verlängern, wenn er mehr Zeit zur Bearbeitung braucht.
Gast #4205860
Lesenswert?

Ich hatte mal so einen Levelshifter verwendet. Er hat die Signalflanken 
deutlich verschlechtert und die Low Pegel waren beinahe im illegalen 
Bereich meiner Anwendung (nämlich 0,4V. 0,5V wäre die Grenze gewesen).

Ich musste auf 100kHz runter gehen, 400kHz ging damit nicht.

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