Ich möchte, dass mein Raspberry Pi GPIO-Port mit einer digitalen Schaltung kommuniziert, die mit der doppelten GPIO-Spannung arbeitet. Die Kommunikation erfolgt mit einer relativ hohen Frequenz (bis zu 500 kHz).
Die Hauptfrage ist, wie ich die Spannung an einem GPIO-Ausgangspin verstärke. Reicht ein einfacher 2n2222-Transistor? Meine größte Sorge ist die Frequenz. (Auch den richtigen Schaltplan und die richtigen Kondensator- / Widerstandswerte erhalten.)
(Bonusfrage ist für die andere Richtung: Wie kann man die Eingangsspannung reduzieren. Mein erster Gedanke ist ein Spannungsteiler mit zwei Widerständen, aber andererseits, wird er bei 500 kHz gut funktionieren?)
bearbeiten:
Offensichtlich habe ich noch nichts von Level-Shifting und Level-Übersetzern gehört. :)
Die Übersetzer, die ich sehen kann, sind jedoch alle 3V3 <-> 5V. Ich hätte gerne etwas Bidirektionales, das mit etwa 7 V betrieben werden kann und 9 V bequem aushält. Was ist der standardmäßige nächste Schritt (falls vorhanden) über 3,3/5? (Ich nehme an, es gibt keine 3V3 <-> 7V-Übersetzer;), aber vielleicht gibt es einen 9V- oder 12V-Standard, der am unteren Ende 5V hat, und ich könnte 3V3 <-> 5V <-> 9V serialisieren?)
Oder gibt es vielleicht eine einfache Möglichkeit, meinen eigenen Übersetzer für meine ungewöhnlichen Spannungsanforderungen zu rollen? (natürlich mit Blick auf 500kHz)
bearbeiten:
Vielen Dank an alle, die einen Spannungsübersetzer vorgeschlagen haben.
Tatsächlich scheint es einen höheren Standard zu geben - für 15-V-CMOS.
Wenn ich das richtig verstehe, können die Signaleingangs- und -ausgangsspannungen durch die für einen Chip bereitgestellten "Stromversorgungs" -Spannungen gesteuert werden. Ich kann also beliebige seltsame Spannungen verwenden, solange ich ein geeignetes Netzteil finde.
Einige Kandidaten sind TI CD40109B, CD4504 und Pololu 2595.
Für genau diesen Zweck habe ich den BSS138- Mosfet mit 10k-Klimmzügen verwendet. Ich konnte eine zuverlässige Kommunikation von 250.000 mit einem Mikro erreichen, das mit 16 MHz lief. Ein Step bis 500kHz geht sicher, nur konnte ich das mit einem langsamen Mikro nicht zuverlässig testen.
Außerdem ist der Begriff für das, was Sie beschreiben, als Level Shifting bekannt ;
Sie können ein Board mit denselben Mosfets bei Spark Fun abholen .
Das kannst du vielleicht gebrauchen . Es ist ein bidirektionaler 8-Kanal-Pegelübersetzer: -
Eine Seite arbeitet mit Logikpegeln von 1,2 bis 3,6 Volt und die andere Seite arbeitet mit Logikpegeln von 1,6 bis 5,5 Volt.
Ich hätte gedacht, dass, wenn Ihre High-Side-Spannungslogik 6,6 Volt beträgt, die Versorgung eines Eingangspins mit einem Logikpegel von 5 Volt (76%) immer noch in Ordnung wäre. Beim Ausspeisen eines 6,6 Volt Logikpegels sollten Sie das Gerät mit einem 1kOhm Vorwiderstand schützen.
Oder Sie könnten dieses Gerät verwenden, das TXS0108E: -
Geschwindigkeiten über 2Mbpsec laut Datenblatt.
Ich glaube nicht, dass die Transistorlösung bei 500 kHz funktionieren wird. Maxim Integrated hat diese netten ICs, die Sie verwenden können. MAX3002 zum Beispiel wandelt jede Spannung in jede Spannung um, ist bidirektional und hat keinen Richtungspin.
Olin Lathrop
Matt B.
Billy Bob
Schnitzel