Ist ein N-Kanal-Mosfet sicher / zuverlässig für die Pegelverschiebung von UART von 3 V3 auf 5 V?

Ich bin mit einem Design beschäftigt, das einen Raspberry Pi über UART mit einem Arduino verbinden muss. Zuvor habe ich eine Schaltung entworfen, die gut funktionierte.

Zurück Design
(Quelle: protoneer.co.nz )

Aber jetzt möchte ich mit der Verwendung von SMD-Komponenten beginnen und plane die Verwendung der folgenden Komponente: BSS138BKS + 10k Resistor Bank.

Ich bin kein Experte für diese Dinge und verwende normalerweise Designs von anderen Schaltungen in meinen neuen Designs.

Meine Frage ist, ob der BSS138BKS, der wie im ursprünglichen Setup mit dem 2N7000 verwendet wird, ohne Probleme kontinuierlich laufen kann.

Und ist dies der richtige Weg, um die Pegel zwischen den beiden Geräten zu verschieben? (Ich möchte die Bretter nicht beschädigen).

Edit: Schaltung aktualisiertGeben Sie hier die Bildbeschreibung ein

Antworten (2)

Der BSS138 sollte in Ihrer Level-Shifter-Schaltung gut funktionieren. Stellen Sie nur sicher, dass Sie die G-, D- und S-Pins auf die gleiche Weise verbinden, die Sie für den anderen FET verwendet haben. Für einen Pegelumsetzer wie diesen ist es wichtig, dass der D-Pin (Drain) mit der Seite verbunden ist, die die 5-V-Pegel hat, damit die Body-Diode im FET nicht in eine kontinuierliche Vorwärtsvorspannung geht.

Diese Art von Pegelumsetzer unterstützt tatsächlich bidirektionale Signalisierung, funktioniert aber genauso gut mit der unidirektionalen Signalisierung Ihrer UART-Ports.

Wenn Sie es mit den BSS138-Teilen aufbauen, möchten Sie vielleicht die Anstiegszeit der Signale überprüfen, die den Pegelumsetzer passieren. Wenn sie für die Baudrate, die Sie verwenden möchten, zu langsam sind, müssen Sie möglicherweise den Wert der Pullup-Widerstände auf einer oder beiden Seiten der Übersetzer-FETs verringern.

Jede Schaltung erzählt eine Geschichte. danke für das bisschen mit den Klimmzügen. :)

Beziehen sich beide UARΤ-Verbindungen auf direkte Verbindungen zu den MCU-Pins? Wenn eine der beiden Platinen einen UART-Treiber (MAX232 oder ähnlich) verwendet, werden Sie Probleme haben, die durch die bipolaren Spannungen (ca. +8/-8 V) verursacht werden.

Ich habe noch keinen Pegelübersetzer wie diesen für UART-Verbindungen gesehen, nicht dass dies nicht möglich wäre, aber normalerweise gibt es schnellere Alternativen wie SPI oder I2C (TWI), die für kurze Entfernungen verwendet werden können. Wenn Sie UART verwenden, um das Signal über große Entfernungen übertragen zu können, wird es meiner Meinung nach nicht funktionieren. Sie müssen dedizierte UART-Treiber verwenden.

Sie können problemlos zwei MAX3232 (oder einen MAX232 für 5 V und einen MAX3232 für 3 V) mit ein paar SMD-Kondensatoren verwenden und die beiden Platinen verbinden.

Geben Sie hier die Bildbeschreibung ein


Beachten Sie, dass es für einen unidirektionalen Pegelumsetzer eine andere Option gibt, die eine Diode und einen Pull-up-Widerstand verwendet (wenn kein interner Pull-up verwendet werden kann).

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Grundsätzlich wird der Eingang entweder durch den Pull-up-Widerstand hochgezogen (wenn der Ausgang hoch ist) oder auf etwa 0,7 V heruntergezogen, wenn der Ausgang niedrig ist.
In der Richtung von 3 V bis 5 V liegt der Eingang entweder bei 0,7 V oder 4 V (3,3 + 0,7 V).
In Richtung 5 V bis 3 V liegt der Eingang entweder bei 0,7 V oder 3 V.

In beiden Fällen liegen die Spannungen im richtigen Bereich, um von den MCU-Eingängen als logisch hoch und logisch niedrig übersetzt zu werden.

Danke. Beide UART-Verbindungen sind MCU zu MCU. Als ich mir Ihren unidirektionalen Pegelübersetzer ansah, brauchte ich ein bisschen, um einen Ah-ha-Moment zu haben, aber ich mache mir Sorgen um den 5-V-RX. Wenn es nicht für die Eingabe eingestellt ist, sendet es möglicherweise 5 V über die Leitung an den 3v3-Tx, oder?
@BertusKruger Ja, aber Sie werden das gleiche Problem mit dem Mosfet-Übersetzer haben. Wenn die 5-V-Seite in Richtung 3 V zu 5 V zu einem Ausgang wird, erreichen die 5 V die 3-V-Seite durch die MOSFET-Substratdiode. So funktioniert die 5-V- bis 3-V-Richtung sowieso unter Verwendung der Substratdiode. Die einzige Möglichkeit, die MCU in einem solchen Fall (beide Ausgänge) zu schützen, besteht darin, einen Vorwiderstand hinzuzufügen, der den Strom zwischen den beiden E / A begrenzen kann.
@alexan: Soweit ich den Mosfet-Level-Shifter verstehe, ist das nicht wahr. Es gibt keine "Richtung", weil es bidirektional ist. Die Substratdiode liegt immer in Richtung 3V ->|- 5V und dient nur zum Übertragen von Low auf der 5V-Seite auf die 3V-Seite