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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.