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
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.
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.
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.
Christian B. schrieb: > So wie ich das sehe ist das für einen unidirektionalen bus gedacht 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.
ich sehe keinen schaltplan, ich sehe 2 FETS, d.h. einen für die SDA und einen für die SCL Leitung, passt auch zu den RX und TX Beschriftungen (UART). aber die Datenleitung beim I²C ist nunmal bidirektional, wie soll das denn funktionieren?
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.
Leonardo schrieb: >> wie >> soll das denn funktionieren? > > siehe Anhang übrigens genial einfach, man muß blos darauf kommen.
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
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.
Mike schrieb: > Ausnahme: Der Slave kann den > SCL-Taktpuls verlängern, wenn er mehr Zeit zur Bearbeitung braucht. Das Clockstretching kann der Pi aber nicht.
Thomas T. schrieb: > und ein Schaltplan ist (zumindest auf dieser Website) nicht dabei. doch ist er und er zeigt den aufbau aus der app note, ich revidiere somit meine aussage und würde sagen, ja, das geht so.
oho, Asche auf mein Haupt... Documents: Schaltplan -> das klärt einiges trotzdem nochmal vielen Dank für die Hilfe. Runout
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.
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.