Einfache Schaltung 3,3V->5V (Teensy 3.1+WS2812B+MSGEQ7)

Hallo,

okay, der Link kam von ArduFE, nicht von Dir.

Ja wir können uns auf den 74HCTxx einigen. :slight_smile: Muß funktionieren. Hab nochmal selbst nachgeschaut. :wink:
Seite 5. http://www.nxp.com/documents/data_sheet/74HC_HCT00.pdf
Ab 2V Eingang "High" und Ausgang mindestens 4,4V "High".

Entschuldigung für meine Verwirrung.

Ganz viel Low ist fast schon ein kleines Bisschen High :stuck_out_tongue:

Es muss wie gesagt nicht unbedingt ein Bustreiber sein. Du kannst auch einfache Logikgatter nehmen. UND oder ODER mit beiden Eingängen zusammengeschaltet. Oder wie auch gesagt einfach zwei NANDs hintereinander. Oder wenn es nur invertierende Bustreiber gibt, dann wieder zwei Gatter hintereinander.

Wichtig ist eben HCT und nicht HC. HC ist normales HighSpeed CMOS. Das erkennt High erst ab 2/3 Vcc, was nicht zuverlässig geht. HCT ist Ausgangsseitig CMOS, aber erkennt TTL-Pegel an den Eingängen.

nix_mehr_frei:
Ganz viel Low ist fast schon ein kleines Bisschen High :stuck_out_tongue:

[nonsens an]0,8 Volt werden bei den HCT ja "noch" sicher als Low erkannt ... was passiert jetzt, wenn man ein 4fach-OR Gatter hat und alle mit so einem LOW versorgt? Dann liegen ja 4 x 0,8 Volt an ... ist das dann 1 x HIGH und das OR somit erfüllt????[nonsens aus] :smiley:

Serenifly:
Wichtig ist eben HCT und nicht HC. HC ist normales HighSpeed CMOS. Das erkennt High erst ab 2/3 Vcc, was nicht zuverlässig geht. HCT ist Ausgangsseitig CMOS, aber erkennt TTL-Pegel an den Eingängen.

Richtig. Weswegen man für HCT in der verlinkten Tabelle bei den Eingängen bei TTL schauen müsste. Aber das hat sich ja mittlerweile geklärt.

Wenn man mit 3,3 V Boards arbeitet, ist der erwähnte 74HCT125 übrigens ein recht nützliches Teil. Die Ausgangspins sind bis 20 mA belastbar. Man kann damit Lasten schalten, ähnlich wie mit den normalen Ausgängen der 5V Controller.

dafür muss es übrigens nicht unbedingt ein Bustreiber sein. Auch ein "einfaches" Logik-Gatter wie der 74HCT08 liefert zum Beispiel ein "Output Current" von max. 25 mA . Zumindest lt. NXP Datenblatt ... das kann von Hersteller zu Hersteller ein wenig variieren.

Das ist richtig. Aber der andere limitierende Faktor ist die maximale Belastbarkeit von GND und VCC. Die ist bei den Logik-Gatter-IC meist 50mA. Beim 125er sind es 70mA, genausoviel wie beim 245er, wo aber acht Ausgänge was haben wollen.

Der 125er hat sich bei mir u.a. am Beaglebone und am Arduino Due bewährt.

das ist ein valider Punkt ... stimmt.

Ja, als LED Treiber habe ich die auch schon missbraucht :slight_smile:

Wegen dem hier übrigens:

In diesem Falle könnte man beim 74HCH125 auch die unbenutzten OE auf High legen, dann schalten sie die unbenutzen Ausgänge hochohmig, da kann denen nichts passieren.

Würde ich auch so machen :slight_smile:

Bei solchen ICs mit getrennten Gattern kann man unbenutzte Gatter zwar offen lassen und es funktioniert noch alles, aber die ziehen dann auch u.U. mehr Strom als wenn sie beschaltet sind. Und wenn man schon einen Tristate Treiber mit Enable Pins für jedes einzelne Gatter hat kann man sie auch nutzten.

EDIT:
Wobei das genau genommen für CMOS-Eingänge gilt. Ich nehme mal an HCT verhält sich genauso. Schadet aber so oder so nichts.

Helmuth:
Suche also eine einfache Schaltung

Die einfachste Schaltung benötigt nur zwei Dioden und einen PullUp-Widerstand:

                              ______
3.3V -------|<---------+----|______|-------- 5V
            D1         |        R1
                       |
                       |
                       |
3.3V -------|<---------+---------------- 5V Input
Output      D2

Effekt:
Wenn der 3.3V Output HIGH ist, wird der 5V Input vom PullUp-Widerstand auch auf HIGH gezogen. Konket auf 5V abzüglich 3.3V zuzüglich des Spannungsabfalls an D1 von ca. 0,7V, d.h. HIGH= ca. 4,3V 4.0V.

Wenn der 3.3V Output LOW ist, wird der 5V Input auf LOW gezogen, abzüglich des Spannungsabfalls an der Diode D2 von ca. 0,7V, d.h. LOW= ca. 0,7V.

Falls also die WS2812 mit LOW=0,7V und HIGH=4,0V laufen ==> Problem gelöst.
Diode z.B. 1N4148, PullUp z.B. 4,7K oder 10K.

Risiken und Nebenwirkungen:
Der 5V PullUp versucht, die 3.3V Spannung auf HIGH aufzuladen, d.h. es fließt durch den Pullup-Widerstand immer ein kleiner Strom in die 3.3V Spannungsversorgung hinein. An der 3.3V Spannung muss daher stetes mindestens so viel Strom von anderen Teilen der Schaltung (zum Beispiel dem Mikrocontroller selbst) verbraucht werden wie durch den Pullup hinein fließt, damit der Stromfluss nicht zu einem Spannungsanstieg an der 3.3V Spannung führt.

Quelle dieser Trickschaltung:
Microchip Compiled Tips ‘N Tricks Guide
3V Tips ‘n Tricks ==> TIP #7 3.3V ? 5V Using a Diode Offset
http://ww1.microchip.com/downloads/en/DeviceDoc/01146B.pdf

Edit/Nachtrag: Korrekturen im Beitrag wg. Reply #33.

Nachdem ich Tip #10 gelesen habe verstehe ich jetzt auch glaube ich wieso das hier funktioniert:
http://forum.arduino.cc/index.php?topic=264900.msg1868133#msg1868133

Da hat einer ein TFT Display an den Arduino angeschlossen und das ging nur mit Widerständen in den Datenleitungen. Wenn man nicht an eventuell vorhandene Schutzdioden denkt erscheint das seltsam.

Hallo,

könnte funktionieren. Wobei das sehr verwirrend beschrieben ist. Mußte das mehrfach lesen. Zudem in der Schaltung Input mit Output laut meiner Meinung nach vertauscht ist, was die Betrachtung nicht leichter macht. Man gibt ja 3,3V rein und möchte 5V raus haben. Ich würde dennoch das mit den Logikgatter vorziehen, ich selbst würde den OPV Komparator aufbauen, aber egal. Die 0,7V der Diode für Low sind knapp an den max. 0,8V für Low. Auch wenn die Diode praktisch gesehen nur 0,5 - 0,6V hat. Der verbotene Logikpegel Bereich ist da nah dran. Muß nicht sein wenn man es vermeiden kann. Meine Meinung.

Hallo,

die einfache Schaltung läßt mir keine Ruhe. :slight_smile: Die werden sich schon dabei was gedacht haben. Nur wofür 3,3V Ub und D1 gut sein sollen weis ich dennoch nicht. Die kann man doch auch weglassen. Und um einen noch niedrigeren LOW Pegel zubekommen, könnte man eine Schottkydiode verwenden. Hat so ca. 0,4V.

            ______                  
5V Ub  ----|______|-------
              R1         |        
                         |
                         |
3.3V   -------|<---------+--------- 5V Output
Input         D2

Wenn der 3.3V Output HIGH ist, wird der 5V Input vom PullUp-Widerstand auch auf HIGH gezogen. Konket auf 5V abzüglich des Spannungsabfalls an D1 von ca. 0,7V, d.h. HIGH= ca. 4,3V.

Das sehe ich ein wenig anders:

Der 5V Eingang wird, über   5V - R - + - D - 3.3V (High), auf ca. 3.3V + 0.7V an + angehoben.
So habe ich auch die Tips'n'Tricks Erläuterung im Link verstanden.

4V sollte als high reichen, eine Schottky Diode zu verwenden ist allerdings eher kontraproduktiv.

die einfache Schaltung läßt mir keine Ruhe. smiley Die werden sich schon dabei was gedacht haben. Nur wofür 3,3V Ub und D1 gut sein sollen weis ich dennoch nicht.

So richtig verstehe ich das auch nicht.
Wenn der Contollerpin High ist, wird der 5V High Pegel quasi mit einem Spannungsteiler erzeugt. Evtl. ist das sauberer.
Ich hätte Bauschmerzen weil bei dieser Lösung der Controller Pin (3,3 Volt Logic) auf 5 Volt gezogen wird.

Jurs sagt das macht nicht, ich glaube jurs fast alles.

Bei meinem Nucleo verwende ich die CD4504 Ic's. Das funktioniert einwandfrei und ich belaste den Pin nicht.

michael_x:

Wenn der 3.3V Output HIGH ist, wird der 5V Input vom PullUp-Widerstand auch auf HIGH gezogen. Konket auf 5V abzüglich des Spannungsabfalls an D1 von ca. 0,7V, d.h. HIGH= ca. 4,3V.

Das sehe ich ein wenig anders:

Der 5V Eingang wird, über    5V - R - + - D - 3.3V (High), auf ca. 3.3V + 0.7V an + angehoben.
So habe ich auch die Tips'n'Tricks Erläuterung im Link verstanden.

Stimmt, Du hast Recht!

Ich habe meinen Beitrag in Reply #29 entsprechend angepasst/korrigiert.

michael_x:
eine Schottky Diode zu verwenden ist allerdings eher kontraproduktiv.

Ganz genau!

Und der Anschluß über Diode an 3.3V Betriebsspannung ist von den Schaltungsmachern offenbar deshalb vorgesehen worden, weil sie davon ausgehen, dass eine 3.3V Spannungsversorgung wohl den Strom locker aufnehmen kann, der über den PullUp ständig nach 3.3V fließt, OHNE dass dabei die Spannung Richtung 5V hochgezogen wird und dabei möglicherweise Schäden auftreten. Etwas, das der Schaltungsdesigner einem gewöhnlichen 3.3V Output-Pin wohl nicht zutraut.

Hallo,

... eine Schottky Diode zu verwenden ist allerdings eher kontraproduktiv.

Warum das denn?

Nur ob der Spannungsteiler
5V Ub --- R1 --- Diode D1 --- 3,3V Ub
nun parallel dran hängt oder nicht, ist in meinem Augen nutzlos. Es werden 2 Spannungsquellen kurzgeschlossen und der R1 begrenzt den Kurzschlusstrom.

Der Strom fließt dennoch
5V Ub --- R1 --- Diode D2 --- 3,3V µC Pin
Wenn der µC Pin auf Masse liegt, ratet mal wo der Strom am liebsten hin will ....
R1 muß genau dimensioniert werden. Genau wie in dem "Trick pdf" beschrieben. Pauschale Empfehlungen kann man da nicht geben.

Ich sag mal so. Nette Idee, wirklich, die Schaltung, kann man mal probieren wenn man Zeit hat. Für Helmuth ist das aber bestimmt nichts. Wir können aber gerne noch weiter darüber reden.

Wir können aber gerne noch weiter darüber reden.

:wink:

Nette Idee, wirklich, die Schaltung, kann man mal probieren wenn man Zeit hat. Für Helmuth ist das aber bestimmt nichts.

Sehe ich auch so.
Helmuth ist mit einem einzelnen IC sicher besser bedient, auch wenn der ein paar Cent teurer kommt, größer ist, und zu 3/4 unbenutzt ist.

ratet mal wo der Strom am liebsten hin will

Das ist schon klar: Er fliesst in den Output Pin und muss daher durch den Widerstand begrenzt werden.
Der Widerstand sollte auch nicht so klein sein, dass sich ein erheblicher Spannungsteiler-Effekt ergibt. Sowohl Low ( 0V )
als auch High (3.3V) sollten am 5V Eingang entsprechend erkannt werden.

Doc_Arduino:

... eine Schottky Diode zu verwenden ist allerdings eher kontraproduktiv.

Warum das denn?

Eine normale Diode erzeugt in beiden Fällen einen Offset von ca. 0.7 V (bei einem kleinen Strom evtl. weniger), so dass
0.7V immer noch Low und 4.0V sicher High ist.
Mit einer Schottky-Diode hätte man 0.3V (Low) bzw. 3.6V (High), was bei High etwas knapp ist (auf jeden Fall nicht so gut).

Im umgekehrten Fall 5V -> 3.3V ist eine Schottky Diode sicher sinnvoller:

                  +-- 10k --- 3.3V Vcc
                  |
5V Signal -- |< --+---------> 3.3V Signal
Output                        Input 

GND ------------------------- GND

[ edit: Ascii Grafik :wink: ]

Hallo allerseits,

habe einen 74HCT245 bekommen. Datenblatt hier: http://www.nxp.com/documents/data_sheet/74HC_HCT245.pdf

Ich wuerde den jetzt wie folgt anschliessen:

Pin Symbol verbinden mit

20  Vcc    +5V
10  GND    GND von Teensy und WS2812B
2   A0     Output Pin vom Teensy
18  B0     Din vom WS2812B
19  OE     GND ("activate LOW")
1   DIR    +5V (?)

Ist das so korrekt? Bin unsicher mit DIR - da steht im Datenblatt (wenn ich das richtig verstehe) "High: A=input B=A".

Gruesse

Helmuth

Korrekt. Dieser Treiber ist bidirektional. Entsprechend muss man die Richtung umschalten.

Du willst A = Eingang und B = Ausgang. Also gilt die zweite Zeile. "A = input, B = A" und damit DIR = High