Forum: Analoge Elektronik und Schaltungstechnik 1:1 level Shifter


von Simonium (Gast)


Lesenswert?

Ich habe folgendes Problem:

Ein SPI Bus muss mit mindestens 10.8V laufen, der Mikrocontroller 
(ATSAMD21) kann jedoch nur 3.3V.

Ich habe diverse "Level-Shifter" gesehen, wo das Signal mit einem 
Pull-Up auf 12V gezogen wird, und dann mit einem Mosfet auf 0V, so hat 
man dan einen Levelshifter. Leider invertieren diese, das heist das 
Signal am Shifter is 1 wenn der Ausgang vom Mikrocontroller 0 ist. Bei 
einem GPIO ist das einfach lösbar indem man in Software das Signal 
umdreht.

Nun ist aber bei SPI das Problem das dies nicht möglich ist. Ich 
benötigen die beiden SPI Signale SCK und MOSI und CS genau so wie Sie 
aus dem Controller kommen.

Meine Idee wäre jetz so einen 74er Inverter vor jeden der 3 Mosfet zu 
setzen. Oder geht das einfacher?

von Stefan F. (Gast)


Lesenswert?

Simonium schrieb:
> Meine Idee wäre jetz so einen 74er Inverter vor jeden der 3 Mosfet zu
> setzen. Oder geht das einfacher?

Zeige erst mal den Schaltplan von deinem Levelshifter.

von r c (Gast)


Lesenswert?

Simonium schrieb:
> Leider invertieren diese, das heist das Signal am Shifter is 1 wenn der
> Ausgang vom Mikrocontroller 0 ist.

Was? Das wär mir neu.

von A. K. (Gast)


Lesenswert?

Es gibt auch Schaltungen die das Signal nicht "invertieren" also 
umdrehen.
Es gibt dafür auch fertige Treiber ICs, kann manchmal auch sinnvoll 
sein.

LG

von Ludwig (Gast)


Lesenswert?

N-Kanal Fet, Source an den Ausgang, Gate an Vcc, Drain über Pullup an 
12V.
Gruß Ludwig

von Klaus (Gast)


Lesenswert?

Simonium schrieb:
> Ein SPI Bus muss mit mindestens 10.8V laufen,

Halte ich für Unsinn. Da hat jemand seine Schaltung nicht verstanden.

MfG Klaus

von Gerd E. (robberknight)


Lesenswert?

Simonium schrieb:
> Ein SPI Bus muss mit mindestens 10.8V laufen

Hui, bist Du Dir da ganz sicher?

Das ist für SPI eine recht ungewöhnliche Spannung. SPI ist kein Feldbus 
oder ähnliches, sondern für die Kommunikation innerhalb einer Platine 
oder meinetwegen eines Moduls/Geräts gedacht, nicht für lange Leitungen. 
Master und Slaves sind daher normal ICs und gängige Spannungen max. 5V.

Wenn es wirklich SPI ist:

- Was für eine Taktrate?
- Wie lang sind die Leitungen?
- Sind die Leitungen an einem Stecker oder ähnlichem von außen 
zugänglich?
- Werden die Leitungen unter Spannung an-/abgesteckt?

Die Antworten darauf entscheiden ob Du eine Push-Pull-Stufe brauchst 
oder ob OpenDrain reicht und was für Schutzbeschaltungen Du brauchst.

von Der Zahn der Zeit (Gast)


Lesenswert?

Für eine solche Pegelumsetzungen nehme ich gerne Multiplexer, die mit 
dem kleinen Pegel der Ansteuerung (3,3 V) klar kommen. Hier könnte es 
ein DG4053 tun, der mit LV-CMOS- oder TTL-Pegeln bis zu +16 V 
Ausgangsspannung schalten kann. MAX4583 ist ähnlich, geht bis +12 V.

von Zeno (Gast)


Lesenswert?

Ludwig hat beschrieben wie es funktioniert, sogar bidirektional.

von Zeno (Gast)


Lesenswert?

Nachtrag: Source bekommt noch einen Pullup nach 3,3V

von Simonium (Gast)


Lesenswert?

Also hier ist z.b ein Link von einem der Level Shifter die ich kenne, 
dieser invertiert ja

https://hackaday.com/wp-content/uploads/2016/11/mosfet-step-up-microchip-ds41285a.jpg

Und der SPI Bus mus mit 12V laufen, weil das der IC welcher gesteuert 
wird so vorgibt.

http://ww1.microchip.com/downloads/en/DeviceDoc/20005851A.pdf

von Ludwig (Gast)


Lesenswert?

Simonium schrieb:
> Also hier ist z.b ein Link von einem der Level Shifter die ich kenne,
> dieser invertiert ja
>
> 
https://hackaday.com/wp-content/uploads/2016/11/mosfet-step-up-microchip-ds41285a.jpg

Wenn Du Gate und Source vertauschst invertiert die Schaltung nicht. Wenn 
der Port low ist, ist der Mosfet leitend und zieht Drain runter.
Ist der Port high, sperrt er und Drain geht auf Potential der 
Versorgung. Bei Zenos Vorschlag
zieht die Mosfet Diode den Port runter, wenn die Schaltung andersrum 
betrieben wird.
Gruß Ludwig

von Simonium (Gast)


Lesenswert?


von Ludwig (Gast)


Lesenswert?

Sorry, habe Mist geschrieben. Gate muss auf 3,3V, Source auf den 
Ausgangspin.

von Ludwig (Gast)


Lesenswert?

Geht auch mit 12V, der Mosfet wird's ja aushalten. Gruß Ludwig

von (prx) A. K. (prx)


Lesenswert?

Pegelwandler gibts auch nichtinvertierend:
https://www.mikrocontroller.net/wikifiles/1/19/Pw_trans_ni.png

: Bearbeitet durch User
von Zeno (Gast)


Lesenswert?

Ludwig schrieb:
> Sorry, habe Mist geschrieben. Gate muss auf 3,3V, Source auf den
> Ausgangspin.

Nein Gate komm auf 3,3V!

https://de.wikipedia.org/wiki/Pegelumsetzer#/media/Datei:Bidirektionaler_pegelumsetzer_wikide.svg

von Zeno (Gast)


Lesenswert?

Zeno schrieb:
> Nein Gate komm auf 3,3V!

Ihr macht einen ja ganz kirre. Mein Zitat war schon wieder die 
Korrektur.

Machs so wie auf dem verlinkten Bildle. Da funktioniert auch 
bidirektional. Habe genau diese Schaltung für den I2C Bus aufgebaut und 
funktioniert bestens.

von Jörn P. (jonnyp)


Lesenswert?

Ich habe für die Ansteuerung einen CD4504 genommen.

von Simonium (Gast)


Lesenswert?

Jörn P. schrieb:
> CD4504

Ich benötige aber 3.3V, nicht 5V, laut Mouser ist der CD4504 ein 
5V-Bauteil

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.