3V3 bis 5V Pegelumwandlung

Ich arbeite derzeit an der Entwicklung einiger Messgeräte. Für Konvertierungen verwende ich einen kleinen ARM, der auf 3V3 läuft, und um die Ergebnisse anzuzeigen, verwende ich ein grafisches Display, das auf 5V läuft. Das bedeutet, dass ich die Spannungspegel von 3V3 auf 5V und umgekehrt verschieben muss.

Ich habe einige Nachforschungen zu diesem Thema angestellt und herausgefunden, dass es allein auf Stackexchange zahlreiche Schaltungen gibt (im gesamten Internet los), aber ich interessiere mich dafür, wie professionelle Entwickler dies tun und wie man schnelle Schaltgeschwindigkeiten für schnell erreicht Schnittstellen.

Es besteht immer die Option, einen Level-Shifter-IC 1 zu verwenden , aber diese sind teuer, und die meisten Unternehmen möchten möglicherweise zusätzliche Komponentenkosten vermeiden. Leute haben es bidirektional mit nur einem 2N7002 und zwei Widerständen gemacht[2], während andere Leute es mit einem Transistor und zwei Widerständen gemacht haben, die als Inverter konfiguriert sind.

Wie verschieben professionelle Entwickler den Spannungspegel von 3V3 auf 5V-Logik und umgekehrt? Ich habe noch nie Pegelwandler in einem professionellen Produkt gesehen (außer Ladepumpen für RS232 und dergleichen) - Verbinden sie nur 3V3- und 5V-Logik?

1 Zum Beispiel das SN74AVCB164245VR von TI

[2]

Schaltkreis

Ein 5-V-TTL-Logik-High-Pegel akzeptiert 3V3 leicht als High und offensichtlich ist 0V ein Low.
Profis halten sich nicht an eine Methode für alle Fälle, sondern wägen die Vor- und Nachteile der verschiedenen Methoden ab, um die beste Lösung für ihre Anwendung und Anforderungen zu finden.
Was sind Ihre spezifischen Anforderungen? Können Sie "schnelle Schaltgeschwindigkeiten für schnelle Schnittstellen" quantifizieren? Ist Ihre Schnittstelle bidirektional? Ist Ihre 3V3-Logik 5V-tolerant?
Falls Sie vermuten, dass die Logikpegel tatsächlich für die Anzeige wichtig sind, und vorausgesetzt, Sie haben mehrere Datenleitungen (SPI?), Können Sie so etwas wie 74LVC245 verwenden .
Ich habe von einem 5-V-Logikpegel gehört, der 3V3 als HIGH akzeptiert. Aber dann habe ich gehört, dass einige Displays und andere Dinge wie SPI-Schnittstellen die 3V3 aus unbekannten Gründen nicht als hoch akzeptieren. Das will ich nicht riskieren. Ja, ich verwende SPI und eine 8080-kompatible Schnittstelle. Meine Frage war so spezifisch wie möglich, ohne etwas auf meinen spezifischen Anwendungsfall einzuschränken.
Die Gründe sind nicht 'unbekannt': Sie sind in den Datenblättern angegeben!
Mir unbekannt, da ich keine weiteren Fragen gestellt habe.
Wie schnell fährst du damit? Ist es bidirektional? Wie günstig muss es sein? Sie müssen alle kennen, um die Entscheidung treffen zu können. Um dies in eine Richtung zu tun, gibt es viele billige Optionen, z. B. einige Fets oder eine billige generische Logik (74HC usw.). Um bidirektional zu werden, können Sie einen Trick mit einem FET verwenden, um sehr billig zu sein, oder einen Level-Shifter, wenn Sie ein paar Cent ausgeben müssen. Wenn es super schnell gehen muss, sind Sie eingeschränkter.
@user2628088 "Meine Frage war so spezifisch wie möglich, ohne etwas auf meinen spezifischen Anwendungsfall einzugrenzen." ... Wenn Sie keine Einzelheiten angeben können, ist diese Frage zu weit gefasst. Die Lösung von Wouter KANN völlig realisierbar sein, wenn Ihre Pins 5-V-tolerant sind, in den Open-Drain-Modus versetzt werden können und Sie auf 5 V hochziehen. Wenn Sie dies nicht im Datenblatt finden können, geben Sie einen Link dazu an und teilen Sie uns mit, welche Pins Sie verwenden.
Alles klar dann. Ich habe zwei spezifische Anwendungsfälle. Eines ist ein altes Grafikdisplay (LC), das ich behalten muss. Es hat eine 8080-Schnittstelle und benötigt 5V (nicht so hohe Geschwindigkeit). Andererseits habe ich einen ARM der Tiva C-Serie (129, nicht 123), der an seinen Pins nicht 5-V-tolerant ist und mit dem 5-V-Display kommunizieren muss. Andererseits habe ich einen DAC814 DAC, der einen HIGH-Zustand von +2 V bis (Vcc-1,4 V) erkennt, was je nach Temperatur zu 3,4 V führt. Um absolut sicher zu sein, dass es funktioniert, möchte ich die Ebenen für die SPI-Schnittstelle übersetzen.

Antworten (3)

Wir verwenden den bidirektionalen 4-Kanal- TXS0104E in einem kommerziellen Produkt, und er funktioniert sehr gut für uns.

In unserem Fall wird es verwendet, um von 3,3 V auf 1,8 V und umgekehrt umzuwandeln, aber es kann auch verwendet werden, um von 5 V auf 3,3 V und umgekehrt umzuwandeln (tatsächlich kann die hohe Seite zwischen 2,3 V und 5,5 V liegen, und die niedrige Seite von 1,65 V auf 3,6 V).

Der Chip enthält auch einen ESD-Schutz an allen Pins.

Es ist bei Digi-Key in einem 14-TSSOP-Paket für 1,87 $ in Einzelmengen (73 Cent in 1000) erhältlich . Es ist auch in einem klitzekleinen (1,9 x 1,4 mm) 12-DSBGA-Gehäuse erhältlich. Das ist ungefähr die gleiche Größe wie ein 0805-Widerstand. Sie können sie also problemlos inline auf einem parallelen Bus zwischen den Chips anbringen. Die Pins sind schön angeordnet, um diese auf beiden Seiten des Chips unterzubringen.

Meine Erfahrung mit auf HD44780 und S6B0107/S6B0108 (= KS0107B/KS0108B) basierenden Displays ist, dass sie nicht mit 3,3-V-Logikpegeln arbeiten.

Ich setze einen 1k-Pullup-Widerstand auf jeden Pin und verwende die Pins eines LPC1114 im Open-Drain-Modus. Das funktioniert gut für mich.

Ein Fachmann wird das tun, was der Situation angemessen ist. IME, ein High-Volume-Design, kombiniert einen 3-V-uC mit einem 3-V-Display. Für kostengünstige Designs können Sie sich die LCDs im Nokia 5510-Stil ansehen.

Nur zur Verdeutlichung, empfehlen Sie, auf 5 V hochzuziehen (natürlich mit einem 5-V-toleranten Pin)?
Wie kann ich für eine Situation empfehlen, die ich nicht kenne? Ich erzähle, was ich getan habe und was für mich funktioniert hat.
Natürlich kannst du das nicht. Ich habe nur um Klärung Ihrer speziellen Lösung gebeten. Manchmal werden Pull-Ups auf denselben Logikpegel (3V3) verwendet, um die volle Ausgangsspannung zu erreichen.
Sie können auf diese Weise verwendet werden, aber mit Open-Drain- (oder Switch-Out + Low / Input-) Pins, die 5-V-tolerant sind, können Sie auf diese Weise eine Pegelverschiebung vornehmen. Beachten Sie, dass es in meinem Fall nicht mit einfachen Ausgaben funktionierte.

Ich denke, das ist nützlich. Es ist ein Leitfaden von nxp zu Levelshifting-i2c-Leitungen mit zwei Mosfets.

http://www.nxp.com/documents/application_note/AN10441.pdf

I2C-Leitungen sind Open-Drain und bidirektional, was die Pegelverschiebung solcher Leitungen zu einem ganz besonderen Fall macht. mit anderen Worten: kann verwendet werden, ist aber wahrscheinlich übertrieben.