5V-Devices am 3,3V-MSP430

Was wird wie gelöst, warum geht es nicht, wer bekommt es zum Laufen? Eure Projekte und Programme könnt ihr hier vorstellen, diskutieren und verbessern.
Post Reply
DL9MWE
Posts: 39
Joined: Sat 12. May 2012, 09:02

5V-Devices am 3,3V-MSP430

Post by DL9MWE »

Hallo MSP-Freunde,

will man ein IC, das mit 5V gespeist wird, an einen MSP430 anschließen, hat man das Problem der unterschiedlichen Pegel.
Relativ einfach ist die Sache, wenn unidirektionale Signale übertragen werden sollen.
Vom 5V-Device zum MSP genügt ein ordentlich dimensionierter Spannungsteiler.
Umgekehrt kann man den MSP-Ausgang oft direkt an den 5V-Eingang anschließen, weil der High-Ausgangspegel des MSP430 oberhalb des Mindestpegels für ein 5V-Device liegt. Das gilt zumindest für die meisten 5V-Eingänge.
Ausnahmen gibt es jedoch; z.B. das hier gerade verwendete FRAM FM24C64B. Das erwartet einen High-Pegel von 0,7*5V=3,5V. Das schafft ein 3V3-System nicht.

Richtig problematisch wird es aber, wenn eine bidirektionale Leitung vorliegt. Das z.B. bei I2C-Bausteinen für die SDA-Leitung der Fall.
Eine genial einfache Lösung habe ich hier gefunden: http://www.savagecircuits.com/content.p ... 3V-Devices sorry: diese Seite ist nicht mehr verfügbar.
Man nehme einen BS170 (FET), schließe das Gate an 3V3 und die Source an den 3V3 I/O-Pin sowie an einen Pull-Up-R nach 3V3 an. Bei I2C ist letzterer eh´vorhanden.
Der Drain-Anschluss liegt am 5V I/O-Pin und an einem Pull-Up-R nach 5V. Beide R´s sind normalerweise 4k7.

Funktionsweise: Wenn weder das 3V3- noch das 5V-Device eine Null auf den Bus legen will, ist der FET gesperrt. Beide erhalten über den jeweiligen Pull-Up eine pegelrichtige 1.
Will das 3V3-Device eine Null übertragen, zieht es die Source auf Null, der FET wird leitend und zieht die 5V-Seite ebenfalls auf (nahe) Null.
Umgekehrt sorgt ein Nullpegel auf der 5V-Seite für einen Stromfluss durch die Substrat-Diode zwischen Source und Drain und bewirkt (nahezu) Nullpegel auch auf der 3V-Seite.

Was mir ein wenig Gedanken macht, ist der Moment des Umschaltens, wenn der MSP eine Null senden will. Der FET wird leitend und verbindet die 5V-Seite mit der 3V3-Seite. Erst wenn der Stromfluss einsetzt, fällt über den Pull-Up auf der 5V-Seite genügend Spannung ab.
Aber es funktioniert hier seit etlichen Stunden, ohne den MSP zu zerstören.
Vielleicht sollte man eine 3V3-Zener-Diode vom MSP-IO-Pin nach Masse schalten, um ruhiger zu schlafen.

vy 73 de Matthias, DL9MWE
Post Reply