Hallo,
ich habe eine Platine mit einem ATMEGA1284 der auf 5V läuft.
Nun soll das Projekt um ein neues OLED Grafikdisplay (EA OLEDL128-6)
erweitert werden, was jedoch 3.3V Logik-Pegel (SPI) benötigt.
Die 4 SPI Pins CLK, MOSI, CS und D/C müsste ich daher von 5V auf 3.3V
transformieren.
Beim UART (19200baud) habe ich mir schon mit einem Spannungsteile
beholfen 1K/2K. Aber für SPI dürfte diese Lösung nicht geeignet sein.
Kann jemand einen Level-Translator empfehlen, der sich für SPI gut
eignet?
Am liebsten wäre mir natürlich billig, SMT und "handlötbar".
Reicht ein 74HC4050 für SPI?
Endgame schrieb:> Kann jemand einen Level-Translator empfehlen, der sich für SPI gut> eignet?
SPI hat ja den Vorteil, dass alle Leitungen unidirektional sind.
Maxim hatte sowas mal, weiß nicht, ob's die noch gibt.
Yep, MAX3391 oder MAX3392 sollte da passen. Digikey hat ihn
beispielsweise.
> Spannungsteile ... für SPI dürfte diese Lösung nicht geeignet ...
Wäre vielleicht doch einen Versuch wert.
Ich betreibe an einem ATmega1284 (mit 24 MHz) zwei SDCards mit
Spannungsteiler (in der SDC-Richtung) mit einem Takt von 12 MHz seit
einigen Jahren völlig problemlos.
jo mei schrieb:> Herman Kokoschka schrieb:>> Widerstände reichen da völlig.>> So ein Spannungsteiler stösst bei höheren SPI Taktraten> an seine Grenzen.
Was wiederum EMV-mässig günstig ist (wenn der "obere" Widerstand direkt
am uC sitzt). Wenn die 3.3V fehlen, ist der 4050 wieder im Vorteil; bei
solchen Display-Treibern traue ich den Eingangsschutzdioden nicht allzu
viel zu.
Bei dem Display (unidirektional) dürfte es völlig ausreichen, CLK und
MOSI über einen Level-Translator zu schicken.
CS und D/C sind bei weitem nicht so schnell - da reicht auch ein
Spannungsteiler.
Ich nehme gerne die kleinen von TI:
SN74LV1T34SN74LV1T125
Ja, ist sicher die "premium" Lösung, aber warum sich mit Krücken
zufrieden geben, wenn es auf die paar Cent nicht ankommt.
Schau mal die LVC Logikfamilie an. Da kannst du zumindest schon mal 5V
nach 3,3V umsetzen, wenn du das Gatter mit 3,3V betreibst, z.B. die
buffer 74lvc126 oder tri-state bus Treiber 74lvc245.
3,3V könnten als High-Pegel am Eingang reichen, ansonsten geht da ein
single Gatter mit TTL kompatiblen Eingängen, z.B. 74AHCT.
Gibt aber direkt für SPI gedachte High-speed Pegelwandler. Da kannst du
bei TI mal auf der Seite suchen, aber Standardlogik ist meist am
günstigsten.
Gustl B. schrieb:> TXS0104E
Hallo,
bin gerade zufällig hierüber gestolpert und klink' mich einfach mal ein
;)
Mein SPI Slave benötigt 3V, mein SPI Master kann nur 5V. Den
angesprochenen TXS0104E finde ich sehr interessant, zumal er wesentlich
günstiger ist als die MAX3372/92
Allerdings frage ich mich, wie ich OE sinnvollerweise beschalte.
Der darf nur 3.3V und aus meinem µC kommen ja 5. Ginge das wiederum mit
einem Spannungsteiler? Etwa so:
1
2
<µC-Pin>--------+
3
|
4
[10K]
5
|
6
+----<TXB0104.OE>
7
|
8
[20K]
9
|
10
GND-------------+
Dann wäre der 20K Widerstand gleichzeitig auch Pulldown beim Startup,
oder?
The TXS0104E is designed so that the OE input circuit is supplied by
VCCA.
Du verbindest also OE direkt mit VCCA. Wieso willst du das mit dem uC
schalten? Ich verwende den Stein auf mehreren Platinen auch für SPI und
der funktioniert wunderbar wenn OE dauerhaft High ist.
Aber ja, der Spannungsteiler sollte funktionieren. Oder eben ein zweiter
Pegelwandler für den OE^^.
Wenn kein MISO benötigt wird (keine Daten von Slave, so wie dieses OLED)
spielt es keine Rolle ob du einen Spannungsteiler oder eine Pegelwandler
nimmst. Kritisch wird es erst wenn die Laufzeit vom CLK zum Slave und
zurück vom Slave zum Master (MISO) grösser als der halbe SPI Takt wird.
In solchen Fällen nehme ich den 74HC4050. (und nicht den CD4050 wie ich
mal fälschlicherweise eingebaut hatte, warum sind SMD Teile auch immer
so klein beschriftet :-).
Ich kannte den TXS0104E auch nicht, der kommt wohl das nächste mal zum
Zug, sieht sehr gut aus.
Schmierfett schrieb:> Ginge das wiederum mit einem Spannungsteiler? Etwa so:
Ja, aber niederohmiger. Ich würde es mit 1kΩ und 2,2kΩ versuchen.
Vielleicht sogar noch weniger - je nach Übertragungsrate und
Anforderungen an die Flankensteilheit. Ist bei OE vielleicht noch egal,
aber bei MOSI und SCK wichtig.
Welche Datenrate willst du darüber machen? Der TXS0104E kann nur maximal
24 MBit/s. Wenn du mehr willst kann ich dir den TXS0108E empfehlen.
Warum auch immer ist der eine Ecke schneller und kann 110 MBit/s.
Gustl B. schrieb:> kann ich dir den TXS0108E empfehlen.
Den gibt es aus Fernost günstig auf Platinchen, habe ich sowohl am SPI
als auch I2C mehrfach eingesetzt.
Ist nur eine Richtung gefragt, haben die China MikroSD-Platinchen einen
74LVC125 drauf, den bekommt man auch günstig. Der wird mit 3V3
betrieben, darf aber 5V an den Eingängen.
In der Gegenrichtung, 3V3-Signal auf 5V-µC, habe ich einen 74HCT125 in
die Schaltung geschraubt - der erkennt high ab 2 Volt.
Man kann auch etwas bescheissen. HCMOS schaltet bei 2/3 Vcc. 3.3V sind
grad 2/3 von 5V. Wenn man also an den 5V etwas dreht und/oder an den
3.3V etwas dreht ist man auf der sicheren Seite. Man kann die 5V zB auf
4.6V erniedrigen, oder 3.3V auf 3.5V hoch.
Joggel E. schrieb:> Man kann auch etwas bescheissen. HCMOS schaltet bei 2/3 Vcc. 3.3V sind> grad 2/3 von 5V. Wenn man also an den 5V etwas dreht und/oder an den> 3.3V etwas dreht ist man auf der sicheren Seite.
Korrekt. Ich habe deswegen schon einige Arduino Nano Module absichtlich
mit 4,3V betrieben.
Stefan ⛄ F. schrieb:> Korrekt. Ich habe deswegen schon einige Arduino Nano Module absichtlich> mit 4,3V betrieben.
Hmm, per Diode in der 5V Versorgung?
Endgame schrieb:> Hallo,> Kann jemand einen Level-Translator empfehlen, der sich für SPI gut> eignet?> Am liebsten wäre mir natürlich billig, SMT und "handlötbar".
SO-14 ist zwar SMD, aber mit 1,27 mm Pin immer noch gut lötbar.
SCK, MOSI und SS: 74LVC14A Inv. paarweise. 74VHC08. 74VHC573. Und noch
1000 Variante aus LVC und VHC.
MISO: 74HCT125 oder andere Ventile aus HCT-Serie.
> Reicht ein 74HC4050 für SPI?
Für SCK, MOSI und SS reicht. Für MISO brauchst du etwas noch, mit 5 Volt
Vcc und Schwellspannung zwischen ca. 1 und 2,5 Volt. HCT-Serie paßt gut.
Gustl B. schrieb:> Der TXS0104E kann nur maximal> 24 MBit/s. Wenn du mehr willst kann ich dir den TXS0108E empfehlen.
Die sind gut, aber alles andere als "gut handlötbar".