www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hoher LOW-Pegel bei Pegelwandler


Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Da fließt wohl aufgrund des Pull-Up-Widerstands ein Strom.
Das muß aber ein ganz hübsch großer sein, denn 1,5V/47Ohm = 30mA.
Wo kommt der her? Von den Pullups 10k und 120k kann der nicht kommen.
Das solltest du dir nochmal anschauen.

Und auch 450mV sind nicht wirklich ein guter Low-Pegel... :-o

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.