Das ist der MosFet, der das Levelshifting macht: Datenblatt
Das ist der MosFet, der das Levelshifting macht: Datenblatt
Gruß
Dirk
Hi!
So einen I2C-Pegelwandler gibts übrigens auf unserer Multi-IO fertig
Aber mal zurück zur Frage:
Der I2C-Bus funktioniert bidirektional, das heißt es sollen BEFEHLE und WERTE vom Master zum Slave und DATEN vom Slave zum Master kommen.
Der Master frägt im Bus jeweils nur eine Adresse ab (jeder Slave hat also eine eigene Adresse) woraufhin die genannte Adresse alle gewünschten Werte in einem Register übergibt. Oder der Master schickt Befehle durch ein Register an den Slave.
Das heißt, dass Signale mit 3,3V vom Master (RaspPi) an den Slave (RP6) "heraufgestuft" werden müssen zu 5V, ohne dass die Info (Nullen und Einsen) Verloren geht. Jede Null (0V) muss also 0V bleiben (dafür muss man nix weiter tun) , jede Eins (3,3V) muss also zu 5V werden.
Das erledigt dein MOSFET: Er shiftet dir 3,3V am "Eingang" zu 5V am "Ausgang".
Dann müssen die Signale (Nullen und Einsen) vom Slave von 5V auf 3,3V runtergeshiftet werden, wieder ohne Verlust der Info. Das geschieht über zwei Widerstände, die einen Spannungsteiler aufbauen. Aus den 5V werden also 3,3V gemacht, die übrigen 1,7V gehen auf GND, mal ganz salopp gesagt.
Und das ganze dann wieder vice versa. Daher zwei MOSFETs und vier Widerstände.
Grüße!
Lesezeichen