Pegelwandlung

Hallo zusammen

Ich möchte gerne einen Arduino micro mit einem XBee verbinden. Praktischerweise hat der Micro bereits einen 3.3V Regler verbaut, über den man den XBee versorgen kann. Allerdings bleiben da die Datenleitungen, deren Pegel gewandelt werden müssen, beziehungsweise die Din-Linie des XBees, da die 3.3V des XBee-Datenausgangs vom Arduino bereits als High-Pegel gewertet werden dürfte. Zumindest wird auf der Seite 378 im Datenblatt des Atmega32u4 als Mindestpegel 0.2VCC + 0.9V angegeben, was ich hoffentlich richtigerweise dahingehend interpretiere (0.2 * 5V + 0.9V = 1.9V < 3.3V).

Auf http://www.mikrocontroller.net/articles/Pegelwandler findet man verschiedene Ansätze, von denen ich einige verstehe, andere nicht so ganz. Fertige Pegelwandler IC's finde ich für eine einzelne Datenleitung etwas übertrieben, nicht gerade platzsparend und eher teuer. Lösungen, die die Schutzdioden missbrauchen finde ich irgendwie auch nicht so prickelnd. Bleibt noch der Spannungsteiler und eine Schaltung mit Hilfe eines Transistors. Wobei die Transistorschaltung in der Regel die Logik invertiert und der Spannungsteiler viel Strom frisst.

Gibt es keine Lösung, die mit einem Mosfet und einem oder einigen wenigen Widerständen funktioniert und nicht invertierend ist, ähnlich wie bei der Lösung für 5V -> 12V?
In einem Versuch hat die folgende Schaltung funktioniert, allerdings ist ein solches Beispiel nirgends zu finden. Für mich wäre das die einfachste Lösung. Allerdings befürchte ich grössere Nachteile, ansonsten wäre doch diese Lösung auch irgendwo aufgeführt.

Daher meine Fragen:

  • 3.3V -> 5V muss nicht gewandelt werden. Stimmts?
  • was ist an der angehängten Schaltung verkehrt? (5V -> 3.3V)
  • was wäre eurer Meinung nach die einfachste / eleganteste Lösung? Reicht unidirektional und von der Schaltgeschwindigkeit habe ich keine Ahnung.

Die einfachste Schaltung ist ein Spannungsteiler mit 1,8 und 3,3 kOhm Widerständen.

Da Du aber sowieso eine Adapter-Platine brauchst, weil die Pins des XBee im 2,0 mm Abstand sind, kontrolliere mal ob nicht da schon eine Pegelwandler drauf ist.

Grüße Uwe

Die "Adapterplatine" bau ich selbst. Der Micro und der XBee werden dann darauf gesockelt. Ansonsten befindet sich auf der Platine nur noch Kleinkram. Normalerweise verbaue ich nicht ganze Arduinos. Hier scheint es mir allerdings praktischer zu sein.

Kann mir möglicherweise jemand die bidirektionale Lösung im angehängten Bild erklären?

"Liegt die Senderseite auf Low, ist der Transistor durchgesteuert, weil die (kleinere) Versorgungsspannung am Gate anliegt und die andere Seite ist dann über den Pin mit Masse verbunden und liegt somit ebenfalls auf Low. (richtig?)
Liegt die Senderseite auf High, ist der Transistor gesperrt, weil [hier bitte Erklärung einfügen] und der Pull-Up auf der gegeüberliegenden Seite zieht den Empfänger ebenfalls auf High."

Und wer verrät mir noch, wieso das Bild im Eingangspost Quatsch ist?

Gruss und Dank

Hallo,

Artikel
http://www.exp-tech.de/Shields/Sparkfun-Logic-Level-Converter.html
Schematic

Das deine Schaltung Quatsch ist, wird garnicht geschrieben. 5V Signal -> 3.3V Empfänger reicht ein einfacher Spannungsteiler. 3.3V Signal -> 5V Empfänger kannst du ohne Zusatzschaltung anschließen. Denn bis 3V sollte die Gegenstelle noch das Signal als 1 erkennen. Schön ist das aber nicht umbedingt :wink:

Hey, Stefan! Danke für die Info. Eigentlich wollte ich dem letzten Post noch ein Bild anhängen. Lustigerweise stammt das von einem ganz ähnlichen Konverter, ebenfalls von Sparkfun und sieht gleich aus, wie die Transistorschaltung des verlinkten Breakoutboards.

Hitsuji:
Kann mir möglicherweise jemand die bidirektionale Lösung im angehängten Bild erklären?

"Liegt die Senderseite auf Low, ist der Transistor durchgesteuert, weil die (kleinere) Versorgungsspannung am Gate anliegt und die andere Seite ist dann über den Pin mit Masse verbunden und liegt somit ebenfalls auf Low. (richtig?)
Liegt die Senderseite auf High, ist der Transistor gesperrt, weil [hier bitte Erklärung einfügen] und der Pull-Up auf der gegeüberliegenden Seite zieht den Empfänger ebenfalls auf High."

...bezog sich auf das Bild hier:

Bildschirmfoto 2014-05-13 um 14.34.38.png