Hoher LOW-Pegel bei Pegelwandler

Gast #1959426
Lesenswert?

Hallo zusammen,

ich entwickle grad eine Platine, welche über I²C-Bus mit einem Altera 
DE1-Board kommuniziert. Da die Platine mit 5V arbeitet, habe ich für die 
SCL und SDA Signale folgenden Pegelwandler eingebaut:
http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf

Als ich die Signale mit dem Oszilloskop angeschaut habe, hab ich 
festgestellt, dass das Signal beim LOW-Pegel noch über 1,5V hat (Messung 
im Anhang).
Da ich in der Elektrotechnik eher Fremd bin, wollte ich euch fragen, ob 
ihr mir vielleicht einen Hinweis geben könntet.

Weitere Infos:
- Pullup-Widerstände auf der 3,3V-Seite 120K, auf der 5V Seite 10K
- Auf dem Altera-Board sind an den I/O Pins 47 Ohm Schutzwiderstände 
verbaut.
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #1959454
Lesenswert?

Stefan schrieb:
> Da ich in der Elektrotechnik eher Fremd bin, wollte ich euch fragen, ob
> ihr mir vielleicht einen Hinweis geben könntet.
Ich würde eher sagen, da treiben 2 Teilnehmer auf die selbe Leitung. Der 
eine mit '0' der andere mit '1'...

Warum nimmst du nicht einfach Pullups auf 3V3 für den I²C?
Das müsste für den 5V-Teilnehmer noch ausreichen...
Und I²C hat ja nur 1 aktiven Pegel: die '0'.
Eine '1' wird über die Pullups erreicht.
Gast #1959467
Lesenswert?

Danke, auf die Idee bin ich noch gar nicht gekommen.

Ich habe auf der Platinen-Seite als Slave einen MAX127. Eigentlich 
sollte der doch gar nichts auf die Leitung legen, oder? Hab ich da 
irgendwo einen Denkfehler drin? Sieht ja irgendwie danach aus, als ob 
die Leitung dauerhaft auf High gezogen wird.
Moderator (Firma: Titel) Persönliche Seite #1959530
Lesenswert?

Stefan schrieb:
> Sieht ja irgendwie danach aus, als ob
> die Leitung dauerhaft auf High gezogen wird.
Es ist immer irgendwie ein Gebastel, einen bidirektionalen Bus mit 
unterschiedlichen Pegeln zu betreiben.
http://ics.nxp.com/support/documents/logic/pdf/an10145.pdf
http://delphys.net/d.holmes/hardware/levelshift.html

> Ich habe auf der Platinen-Seite als Slave einen MAX127. Eigentlich
> sollte der doch gar nichts auf die Leitung legen, oder?
Der legt zumindest am Schluss noch ein ACK auf die Leitung...

Stefan schrieb:
> habe ich ... folgenden Pegelwandler eingebaut:
Welche Transistoren hast du verwendet?
Gast #1959622
Lesenswert?

Lothar Miller schrieb:
> Es ist immer irgendwie ein Gebastel, einen bidirektionalen Bus mit
> unterschiedlichen Pegeln zu betreiben.
Dazu kommt, dass ich ein absoluter Neuling bin. Bin Student und mache 
gerade ein Praktikum im Labor der Hochschule. Aber ohne Herrausforderung 
wärs auch langweilig ;)

Lothar Miller schrieb:
> Der legt zumindest am Schluss noch ein ACK auf die Leitung...
Das ACK erkennt man auf dem Oszilloskop auf recht eindeutig, da zieht es 
den Pegel auch ganz kurz nach unten.

Lothar Miller schrieb:
> Welche Transistoren hast du verwendet?
Das ist ein BSN10A.

Ich habe noch denTip bekommen, dass es an dem Schutzwiderstand auf dem 
DE1 liegen könnte. Da fließt wohl aufgrund des Pull-Up-Widerstands ein 
Strom. Ich habe diesen Widerstand überbrückt, und nun liegt beim 
Low-Pegel nur noch eine Spannung von 450mV an.

Ich danke dir trotzdem vielmals für deine Unterstützung :)
Gast #1959685
Lesenswert?

Hm jap, da hast du vollkommen recht, das ist jetzt kein 
zufriedenstellendes Ergebnis, da hab ich bislang nur die Ursache des 
hohen Low-Pegels gefunden.

Bin grad auch weiter auf der Suche, allerdings ist mir das Ganze 
momentan ein Rätsel. Ich werde mich morgen nochmal mit meinem Prof 
zusammensetzen, vielleicht fällt dem auch noch etwas auf.
Gast #1968885
Lesenswert?

Hi,

sorry, hab ganz vergessen hier zu schreiben.
Die Lösung war unglaublich simpel: beide Transistoren waren hinüber... 
Da hät ich noch lang nach dem Fehler in der Schaltung suchen können.

Aber ich danke trotzdem vielmals für die tolle Unterstützung :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren