Bidirektionaler Levelshifter für I²C/TWI
Ich hab irgendwann besteht das Problem, das man Gräte mit unterschiedlichen Versorgungs- und Logikspannungen über einen Bus betreiben will. Bei SPI oder USART ist das relativ Wurscht, da für beide Datenrichtung eine separate Leitung existiert. Da helfen Transistoren, Logikgatter oder Spannungsteiler. Bloß was tun bei TWI/I²C ? Schließlich ist der Bus bidirektional. Es muss also ein Levelshifter her. Eine Lösung ist die Nutzung von integrierten Schaltkreisen wie dem PCA9306. Allerdings sind die recht schwer zu bekommen bzw. recht teuer. Eine funktionierende Lösung mit 4 Widerständen und zwei N-Kanal-Mosfets zeigt die nächste Abbildung. Die Funktion ist, bis auf das Abkoppeln vom Bus identisch. Vorteil ist der geringer Kostenfaktor von zirka einem Euro.
Quellen: