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.
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.
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.
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?
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 :)
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
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.
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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.