Hallo,
ich verwende den angehängten Levelshifter um bidirektional von 1,8V auf
5V und umgekehrt zu kommen. Das funktioniert bei der RS232 auch sehr
gut. Jetzt habe ich aber ein Problem. Ich möchte einen Puls der 1µs lang
ist von 1,8V auf 5V mit dem gleichen Levelshifter bringen. Leider
scheint der Puls aber zu schnell zu sein. Der Pegel auf der highside
schafft es gerade mal auf 2V. Jetzt habe ich den Pullup auf der highside
auf 1K geändert und jetzt schafft er es auf 3,5V. Gibt es eine
Möglichkeit, um den FET schneller zu sperren oder leitend zu machen?
Danke und Gruss
Nils
Ach so, in meinem Fall ist es so das 1 Sek die 1,8V auf low gezogen
werden und dann kommt der 1µs Puls und danach sind die 1,8V wieder low.
Mir scheint es so als kommt der Source anschluss nicht schnell genug auf
die Spannung die benötigt wird um den Fet zu sperren. Gibt es eine
Möglichkeit extra Energie in Source zu stecken?
> Leider scheint der Puls aber zu schnell zu sein.> Der Pegel auf der highside schafft es gerade mal auf 2V.
Wie sehen die Signale an D und S mit dem Oszi aus?
Hast du auf der 1,8V Seite ein schönes 1us-Rechteck?
EDIT:
> Gibt es eine Möglichkeit extra Energie in Source zu stecken?
Da hilft nur mehr Strom...
Mach mal den 10k Pullup auf der 1,8V-Seite deutlich niederohmiger (<1k).
Nein, ein niederohmigerer Widerstand wird vermutlich nicht helfen.
Die Idee der Schaltung ist ja, dass bei (Drain/ Source) Spannung
oberhalb der kritischen Schwelle der FET hochohmig wird und die Ströme
auf der niedrigen Seite stark gegrenzt.
Allerdings ist die Gate-Threshold nicht passend.
Laut Datenblatt liegt diese bei
Min Typ Max
0,8V 1,7V 2V
oberhalb des Source-Potentials.
Leg die Gate-Spannung mal um 1V - 1,4V oberhalb von 1,8V (also 2,8V -
3,2V).
Ich habe diese Schaltung mit Busschaltern (32Bit von IDT) bis 100MHz
betrieben (5V -> 3,3V mit 4,3V VCC des Logic-Bausteins).
Mischu schrieb:
> Leg die Gate-Spannung mal um 1V - 1,4V oberhalb von 1,8V (also 2,8V -> 3,2V).
Und wie verhinderst du dann, dass nicht die 3V am Eingang des 1,8V Chips
liegen?
Janz einfach, die 3 Volt liegen nur am Gate und dieses ist galvanisch
von Drain und Source abgekoppelt!!
Steigt die Spannung auf der 5V Seite von 0V -> 5V ist der MOSFET voll
leitend bis die Sourcespannung einen Wert erreicht hat, so dass die
Gatespannung nur noch knapp oberhalb der Thresholdspannung liegt.
guckst Du hier:
http://focus.ti.com/lit/an/scda003b/scda003b.pdf
Aber in der Schaltung oben zieht der PullUp die rechte Seite auf die
Spannung am Gate.
In deinem PDF erfolgt die Umschaltung auch nicht automatisch, sondern
über /OE. Die Schaltung oben ist recht intelligent und schaltet durch
den Tristate Zustand der Pins um.
Im Anhang eine Simulation. Blau ist die 5V Seite, grün die 1,8V Seite.
Tristate/Hochohmig wird durch die Schalter simuliert.
diese Schaltung hat Eigenschaften wie ein Open-Collector (und arbeitet
ja auch nur mit solchen Ausgängen).
HL-Flanke ist sehr schnell, weil der Transistor die Leitung nach Masse
zieht.
LH dagegen ist sehr langsam, und ist abhängig von der RC-Konstante, die
durch den/die PullUp-R und die parasitären C's gebildet wird.
Deswegen C's und/oder R reduzieren ... (z.b. ganz zarte Mosfets nehmen -
die Schaltung müsste ja auch mit bipolaren Transitoren + ext.
Bypassdiode gehen - da sind vermutlich die effektiven parasitären C's
generell niedriger)
Ansonsten irgendwelche IC's nehmen, die dafür gemacht sind.
Alexander Schmidt schrieb:
> In deinem PDF erfolgt die Umschaltung auch nicht automatisch, sondern> über /OE. Die Schaltung oben ist recht intelligent und schaltet durch> den Tristate Zustand der Pins um.
Äh, das stimmt so nicht! Das /OE ist an dem IC noch dran und wird nicht
benötigt (dauernd an).
Außerdem hast Du in deiner Simu den Idealfall angenommen, dass die
5V-Logik Seite bis auf 0V hinunter aussteuert.
Der OP hat leider nicht geschrieben um welche Pegelformate es sich
handelt.
Bei 5V-TTL ist low als < 0,8V definiert. Dazu kommt noch der
Spannungsabfall an der Diode...
Das klappt mit einem Mosfet deutlich besser.
Der MAX3370 ist auch nichts anderes.
@ Alexander Schmidt (esko)
> Geht ganz gut.
freut mich, daß es so kommt, wie es kommen musste ;-)
@ Michael O. (mischu)
>Bei 5V-TTL ist low als < 0,8V definiert. Dazu kommt noch der>Spannungsabfall an der Diode...
Wenn wir CMOS annehmen, gehts schon ganz gut. Und mit Schottky-Diode
(gewählt gewählter Typ) hat man vielleicht nur 0,3-0,4V Verlust.
Die Diode leitet laut Simulation nie, also fällt dort auch keine
Spannung ab. Die Pegel sind daher fast ideal mit L=0,3V H=2,0V auf 1,8V
Seite
und L=0,3V H=5,0V auf der 5V-Seite.
Wird Zeit das mal auf dem Steckbrett aufzubauen.
Michael O. schrieb:
> Äh, das stimmt so nicht! Das /OE ist an dem IC noch dran und wird nicht> benötigt (dauernd an).
Ah sorry, hatte das PDF nur überflogen.
> Außerdem hast Du in deiner Simu den Idealfall angenommen, dass die> 5V-Logik Seite bis auf 0V hinunter aussteuert.
Die Logik ist bei mir mit einem Innenwiderstand von 50ohm (5V) bzw.
10ohm (1,8V) versehen.
Das sieht man auch im Bild an dem leicht angehobenen L-Pegel.
> Der OP hat leider nicht geschrieben um welche Pegelformate es sich> handelt.
Von 5V auf 1,8V.
> Bei 5V-TTL ist low als < 0,8V definiert.
Ist mir nicht klar worauf du hinauswillst.
@ Alexander Schmidt (esko)
>Die Diode leitet laut Simulation nie, also fällt dort auch keine>Spannung ab. Die Pegel sind daher fast ideal mit L=0,3V H=2,0V auf 1,8V>Seite>und L=0,3V H=5,0V auf der 5V-Seite.
Gut - das mußt Du mir jetzt mal erklären, wie der L-Pegel von links nach
rechts ohne Diode und ohne Verluste geshiftet wird. Ich sehe jedenfalls
keinen Strompfad, der da ohne Diode gangbar wäre (in der Mosi.Variante
haben wir die Diode ja auch als nötigen Bestandteil)
Oder hast Du einen kaputten Transistor in deiner Simu ? ;-)
ahhh - ich glaube, ich hab's begriffen - bipolare T's lassen sich ja
auch revers betreiben, was in dem Fall geschied, und zeigen selbst da
noch Stromverstärkung, wenn auch nicht so besonders. Das kommt uns hier
natürlich zu gute ....
Jens G. schrieb:
> ahhh - ich glaube, ich hab's begriffen - bipolare T's lassen sich ja> auch revers betreiben,
So isses. Das ist eine der ganz wenigen Schaltungen, wo der Invers-
betrieb nutzbringend angewandt wird.
Die Levelshifter-Schaltung mit dem BJT hat aber auch einen kleinen
Schönheitsfehler: Wird die 5V-Seite als Eingang genommen, enstehen auf
der 1,8V-Seite unschöne Spannungsspitzen beim Umschalten von Low nach
High, da der Transistor vor dem Umschalten in Sättigung ist und deswegen
danach noch kurzzeitig voll leitend ist. Dadurch können bei steilen
5V-Flanken die vollen 5V auf die 1,8V-Seite gelangen. Das macht der
Mosfet besser.
Hallo,
vielen Dank für die ganze Resonanz. Einen fertigen Baustein kann ich
derzeit nicht nehmen, weil das Layout schon steht. Ich werde wohl mal
versuchen einen FET mit kleinerer Gate Kapazität und selben Pinout zu
finden. Eine Reduzierung des 1,8V Pullups auf 1k hatte ich schon
versucht, bevor ich hier geschrieben hatte. Das hat aber auch nichts
gebracht.
Die Simulation von Alexander Schmidt ist übrigens perfekt. Genau so
sieht mein Signal nach dem Shiften aus. Vielleicht kannst du ja mal eine
Gatekapazität von 35pf oder so annehmen um zu schauen, was das bringen
würde.
Grüsse
Nils
Alexander Schmidt schrieb:
>> Bei 5V-TTL ist low als < 0,8V definiert.> Ist mir nicht klar worauf du hinauswillst.
Das Äquivalent in der Menschenwelt ist eine Fremdsprache.
Ohne Italienischkenntnisse kannst Du Dich mit keinem Italiener in seiner
Landessprache unterhalten.
Hier bedeutet das:
In der digitalen (binären) Welt gibt es nur die Zustände '1' oder '0'.
Diese müssen von der konkreten Bauteilen in eine Spannung übersetzt
werden.
5V TTL definiert dass eine Spannung kleiner als 0,8V als logisch low und
eine Spannung > 2V als logisch high zu interpretieren ist.
CMOS definiert jedoch <30% x VCC als low und > 70% x VCC als high.
Darüber hinaus gibt es eine ganze Reihe von Pegeldefinitionen mit
jeweiligem Gültigkeitsbereich.
Dabei gibt es leider kombinationen (mal von Kurzschlüssen durch
Pegelwandlern abgesehen) bei denen die Schwellenwerte-Paare nicht
passen.
Beispiel: 5V TTL <=> Levelshifter <=> 1,8V CMOS
1,8VCMOS
low: < 30% x 1,8V = 0,54V
high: > 70% x 1,8V = 1,26V
5VTTL:
low: < 0,8V
high: > 2,0V
1.Richtung: 5V <= 1,8V - High Pegel werden nicht erkannt, da der
1,8V Ausgang nicht genügend Spannung liefert.
*Hier kein Problem,* da die Pullups für einen ausreichend hohen Pegelsorgen
2.Richtung: 5V => 1,8V - Low Pegel werden nicht erkannt, wenn das
TTL-Signal (plus Spannungsdrop am Levelshifter) nicht kleiner als 0,54V
wird. Hier kann es sehr wohl ein Problem geben
Michael O. schrieb:
> 5VTTL:> low: < 0,8V> high: > 2,0V
Du musst bei den Pegeln zwischen Ein- und Ausgängen unterscheiden. Die
von dir genannten Spannungen sind die Eingangsschwellwerte. Die
Ausgangspannungen müssen bei low deutlich darunter und bei high deutlich
darüber liegen, um einen ausreichenden Störabstand zu gewährleisten.
Beim SN74LS00 von ON ist bspw. Vol maximal 0,4V (sogar noch bei 4mA) und
Voh minimal 2,7V, so dass der Low-Pegel durchaus noch zu den 0,54V von
1,8V-CMOS komatibel ist.
Nils schrieb:
> Die Simulation von Alexander Schmidt ist übrigens perfekt. Genau so> sieht mein Signal nach dem Shiften aus.
Bist du da sicher? In der Simu ist die Wandlung 1,8V -> 5V gut, und
umgekehrt schlecht (langsame Flanke durch RC-Glied).
Laut deiner Beschreibung im ersten Post ist es bei dir umgekehrt?!
> Vielleicht kannst du ja mal eine Gatekapazität von 35pf oder so annehmen> um zu schauen, was das bringen würde.
Die Gatekapazität war vorher 100pF, bei 50pF sieht die Flanke gut aus.
PullUp links 1k, rechts 4k.
Michael O. schrieb:
> 2.Richtung: 5V => 1,8V - Low Pegel werden nicht erkannt, wenn das> TTL-Signal (plus Spannungsdrop am Levelshifter) nicht kleiner als 0,54V> wird. Hier kann es sehr wohl ein Problem geben
Der Spannungsdrop ist praktisch Null. Wenn der Ausgang also 0,3V
liefert, dann kommen die auch auf der 1,8V Seite an.
Da die L-Pegel praktisch immer mit einem N-Mosfet nach 0V gezogen werden
liefern praktisch alle Treiber auch <0,5V.
Richtig, du hast recht. Ich hatte das falsch rum gelesen. Es ist genau
umgekehrt, aber die Signalform ist gleich.
Ich werde am Montag mal den BSN20 bestellen und dann deine Werte
verwenden. Mal sehen ob mich das meinem Ziel näher bringt.
Gruss
Nils
@Nils
>Ich werde am Montag mal den BSN20 bestellen und dann deine Werte>verwenden. Mal sehen ob mich das meinem Ziel näher bringt.
Das klappt aber nur, wenn du ihn ganz niederohmig betreibst. Statt 10k
nun 1k zu verwenden, oder sogar noch weniger, ist vielleicht aber ein
wenig kritisch. Statt 500µA fließen jetzt 5mA...
Kai Klaas
@Kai
ja, deswegen sagte ich ja schon mit den angegebenen Werten. So
niederohmig muss das ganze denke ich gar nicht sein, das brachte vorher
schon keine dolle Besserung. Ich denke die 1k und 4k reichen aus. Will
ja auch keinen Stromfresser haben.
@ Disco Stu
Das Problem dabei ist das das Layout wie gesagt schon fertig ist und ich
jetzt erst mal versuche eine Lösung zu finden die da rein passt. Wenn
die Simulation stimmt, dann habe ich die mit dem BSN20 gefunden.
>@ Disco Stu>Das Problem dabei ist das das Layout wie gesagt schon fertig ist und ich>jetzt erst mal versuche eine Lösung zu finden die da rein passt. Wenn>die Simulation stimmt, dann habe ich die mit dem BSN20 gefunden.
ist eigentlich auch nichts anderes als die Schaltung mit nur einem
Transistor. Man kann die beiden Transitoren einfach als parallel
geschaltet betrachten, nur eben "anti-parallel" zu einander. Wo ist der
Vorteil ???
Hallo Nils,
>So niederohmig muss das ganze denke ich gar nicht sein, das brachte>vorher schon keine dolle Besserung. Ich denke die 1k und 4k reichen aus.>Will ja auch keinen Stromfresser haben.
Was brauchst du denn für eine Antiegszeit der Flanke?
Kai Klaas
Hi,
ich brauche auch einen Level Shifter für 1,8V <-> 5V. Dazu habe ich die
Schaltung mit dem Mosfet aufgebaut. Als Mosfet verwende ich einen BSN20
und die Widerstände haben 4,7k. Jedoch funktioniert die Schaltung nur
für 5V -> 1,8V. Wenn ich jedoch die 1,8V Seite auf Masse lege, schaltet
die 5V Seite nicht um. Sie funktioniert erst ab 2,2V <-> 5V.
Ist der Mosfet für 1,8V <-> 5V nicht geeignet oder liegt der Fehler wo
anders?
Jörn