Elektronikwissen im Bereich "PC-/Mikrocontroller-Technik"

Elektronikwissen zu: bidirektionaler Pegelwandler (Bidirectional Level Shifter)

4,50
Ein häufiges Problem in der Schaltungsentwicklung sind die unterschiedlichen Versorgungsspannungen digitaler Schaltkreise.

Beispielsweise möchte man einen ATmega-Mikrocontroller mit einem speziellen Sensor-IC verbinden. Dieses IC arbeitet z. B. wie der BMA020 mit einer Betriebsspannung von 2 bis 3,6 V. Viele ATmega-Mikrocontroller lassen sich hingegen in einem weiten Spannungsbereich von 1,8 bis 5,5 V verwenden, so dass im einfachsten Fall beide Bausteine mit gleicher Versorgungsspannung (z. B. 3,3 V) betrieben und daher direkt verbunden werden könnten.

Möchte man den ATmega jedoch mit hoher Taktrate (>16 MHz) verwenden, so sollte man ihn mit mehr als 4,5 V betreiben. Dadurch ergibt sich der typische Fall, dass eine 3,3-V-Schaltung mit einer 5-V-Schaltung verbunden wird. Wie schaltet man in dem Fall aber die Datenleitungen mit so unterschiedlichen Signalpegeln zusammen?

Im oberen Schaltbild ist der einfache Fall zweier unidirektionaler Leitungen (klar definierte Ein- und Ausgänge) dargestellt. Hier können die 3,6-V-Ausgangsleitungen direkt am Eingang der 5-V-Schaltung und die 5-V-Ausgangsleitungen über einen Spannungsteiler am Eingang der 3,6-V-Schaltung angeschlossen werden. Damit ist jedoch häufig kein zu 100 % sicherer Betrieb möglich, da es durch Last auf der Versorgungsspannung zu signifikanten Einbrüchen kommen kann, da man sich in Regelbereichen bewegt, die außerhalb der typischen Bauteiledefinition liegen. Zudem können Störsignale auf den Datenleitungen zu Beeinträchtigungen im Datenverkehr führen.

Unterscheiden sich die verwendeten Spannungspegel noch weiter (z. B. 5 und 2,5 V) oder sollen die Datenleitungen bidirektional genutzt werden, wie es beispielsweise bei der SDA-Leitung auf einem I²C-Bus oder bei den MISO/MOSILeitungen auf einem Multi-Slave-SPI-Bus der Fall ist, funktioniert die oben gezeigte einfache Schaltung gar nicht mehr. Für solche Fälle werden auf dem Halbleitermarkt spezielle Treiberbausteine angeboten, die meist recht teuer sind. Dabei gibt es als ideale Alternative den im unteren Schaltbild gezeigten Schaltungsvorschlag (hier für 2 Signalleitungen), der auch in einer Application Note von NXP [1] zu finden ist. Dieser hervorragende Pegelwandler weist die folgenden Vorzüge auf:

 

  • geringer Schaltungsaufwand (nur 2 Widerstände und 1 NMOS-Transistor)
  • nahezu beliebige Spannungspegel, die sich sogar während des Betriebs ändern dürfen
  • Signale bleiben steilfl ankig, daher auch für schnelle Übertragung geeignet
  • minimaler Stromverbrauch
  • bidirektionaler Betrieb möglich
  • Abschalten von UDD2 ist zulässig, da: UDD1 ≥ UDD2 = 0

Die Pull-up-Widerstände sorgen für korrekte High-Pegel auf beiden Spannungsseiten. Links 5 V und rechts 2,5 V. Dabei sperrt der Transistor, da die Gate-Source-Spannung 0 V beträgt (UDD2 = 2,5 V am Gate und 2,5 V über den Pull-up-Widerstand auch am Source-Anschluss).

Sobald auf einer Seite der Datenleitung der Spannungs pegel aktiv auf „low“, also gegen Masse, geschaltet wird, ändert sich auch der Zustand auf der anderen Seite. Dabei müssen beide Fälle getrennt voneinander betrachtet werden: Schaltet die linke Seite gegen Masse, fließt ein Strom durch die interne Body-Diode des Transistors, wodurch das Spannungspotential auf der rechten Seite sinkt, die Gate-Source- Spannung also steigt und sich der NMOS-Transistor öffnet. Dadurch liegt auch die rechte Seite auf Massepotential. Schaltet dagegen die rechte Seite gegen Masse, beträgt die Gate-Source-Spannung sofort 2,5 V, wodurch sich wiederum der Transistor öffnet und auch die Spannung auf der linken Seite gegen Masse geht.

[1] NXP Application Note AN97055 “Bi-directional level shifter for I²C-bus and other systems.”
http://ics.nxp.com/support/documents/i2c/pdf/an97055.pdf

Lesen Sie zu diesem Thema im ELV-Journal:
3-Achsen-Beschleunigungssensor 3D-BS - Modul mit SPI- und I2C-Schnittstelle
Beim 3D-BS handelt es sich um ein winziges Sensor-Modul, das bereits mit dem digitalen 3-Achsen-Beschleunigungssensor BMA020 von Bosch Sensortec bestückt ist. Dieser Sensor erzeugt zwischen 25 un...