Hallo, ich habe gerade das erste mal ein DSO bzw MSO in der Hand. Dies teste ich gerade an einer Schaltung bei der ein SSD1306 OLED nicht immer zuverlässig initialisiert wird... Nun ist das Clock Signal relativ abgerundet am Anfang und auf dem Data Signal sind auch Störungen(?) vorhanden. Was sagt euch die Darstellung? Mir fehlt aktuell noch die Erfahrung das einzuschätzen
Tom schrieb: > Mir fehlt aktuell noch die Erfahrung das einzuschätzen Mir fehlt aktuell noch die Darstellung wie du genau misst. Masseprobleme? Die Pullups des I2C Bus dürften niederohmiger werden.
Die runden Flanken sind normal, das sieht bei I2C immer so aus. Die Störungen sind schon eher verdächtig.
Programmierer schrieb: > das sieht bei I2C immer so aus Nein! Vielleicht bei deinen mistigen Schaltungen.
Oder bei mistigen Ozys derem Grenzfrequenz im Bereich der I2C Frequenz liegt und die deshalb aus jedem Rechteck einen Sinus extrahieren ;-) MfG Michael
Michael_O schrieb: > derem Grenzfrequenz im Bereich der I2C Frequenz Ganz sicher ist das hier nicht der Fall. Das ist reines Ladeverhalten der Kapazitäten in der Schaltung. Die Einbrüche, die man sieht, sind Takteffekt, die von nicht ausreichend entkoppelten Treiberchips herrühren (können).
Tom schrieb: > Was sagt euch die Darstellung? Mir fehlt aktuell noch die Erfahrung das > einzuschätzen In die SDA-Leitung könntest du versuchsweise mal einen kleinen Widerstand (Wert 10..15% vom Pullup) hängen, damit du sehen kannst, welche L-Pegel vom Master und welche vom Slave kommen.
Tom schrieb: > [eine] Schaltung bei der ein SSD1306 OLED nicht immer > zuverlässig initialisiert wird aber wenn die Initialisierung mal funktioniert hat, läuft es lange Zeit fehlerfrei? Dieser Chip braucht eine relativ komplizierte Einschaltsequenz mit 2 Spannungen und einem langen Reset-Impuls. Und dann dauert es immer noch 100ms, bis er wirklich läuft. Falls das alles intern auf dem Modul gemacht wird, muss evt. die Versorgungsspannung vor dem Einschalten wirklich Null sein. So ähnlich wie beim PC: auschalten, 10 Sekunden warten, einschalten. Noch was eher unwahrscheinliches: Laut I2C-Manual UM10204 muss der Chip intern für eine Data Hold Time von 300ns sorgen, SDA darf sich 0ns nach SCL ändern. Im SSD1306-Datenblatt sieht es so aus, als ob man die 300ns extern einhalten muss. Auf dem Bild ist die Zeit kürzer (grob geschätzt).
:
Bearbeitet durch User
Ich sehe die Störungen als Übersprechen zwischen SDA und SCL. Vielleicht ist der Leiterbahnabstand zu gering.
Hallo, Vielen Dank schonmal für eure wirklich guten Antworten. Das ist sehr interessant für mich und ein gutes Testobjekt. Mit einem Oszi sieht man das ja erst überhaupt noch aus einem ganz anderen Blickwinkel. Mir ging es erst einmal ja darum, ob das Signal typisch ist oder fehlerbehaftet. Das Display hängt an einem SAMD21, auf dem Bus hängt noch eine RTC AB1805, dort in der Nähe sind auch die Pull-ups, in meinem Plan hatte ich 2k2 eingezeichnet, müsste aber nochmal nachmessen um das zu bestätigen. Ich meine die RTC brauchte solch niedrige. Die Platine lag jetzt eine Weile in der Ecke. Das Display meine ich ging anfangs zuverlässiger. Mal gehts an, mal nicht, mal zeigt das Display auch teils kryptischer Mist. Wenn man die Tastköpfe angeklemmt hat, scheint es immer anzugehen. Mein Verdacht wäre ein Lötfehler oder etwas mit den Pull-ups. SMD ist alles handgelötet mit Heißluft und 0603 als Standard. Die Abstände von Data und Clock müsste ich nochmal nachschauen. Ich dachte dass das bei i2c nicht so kritisch wäre!? Die Tastköpfe sind direkt am Display angeklemmt und die Masse beziehe ich auch direkt vom Board. Die Tastköpfe stehen auf 10x „welche L-Pegel vom Master und welche vom Slave kommen.„ Das verstehe ich nicht wie das gemeint ist? Vielen Dank
Elektroprofi schrieb: > die von nicht ausreichend entkoppelten Treiberchips herrühren (können). Ah da wollte ich auch noch nachfragen was entkoppelt in diesem Zusammenhang bedeutet?
Tom schrieb: > was entkoppelt in diesem > Zusammenhang bedeutet Bei jedem IC auf deiner Platine sollte (mind.) ein Keramik-Kondensator 100 nF sein, immer möglichst kurz und direkt zwischen Gnd und Vcc des jeweiligen Bauteils. Bei ICs mit mehreren Gnd/Vcc (grösser 44 Pin ect.) jeweils einer. Zusätzlich am Spannungseingang der Platine ein Elektrolyt- oder Tantal-Kondensator >= 100 uF. Verbindungen zum Display möglichst kurz. Falls am Display kein Elektrolyt- oder Tantal-Kondensator sitzt, unmittelbar am Displaystecker nochmals solch einen positionieren. Alle Gnd und Vcc Verbindungen mit möglichst breiteren Leiterbahnen. Lötaufbau statt Steckbrett, sollte klar sein. Gruss
Erich schrieb: > Bei jedem IC auf deiner Platine sollte Endlich mal wieder jemand der sich des Themas Kondensatoren ausreichend annimmt. Tom schrieb: > in meinem Plan hatte > ich 2k2 eingezeichnet, müsste aber nochmal nachmessen um das zu > bestätigen. Egal was jetzt drin ist, es ist zu hochohmig. Da Clock und Daten gleiche Qualität aufweisen ist es auch kein Lötfehler. Ich vermute dass Display und Clock IC jeweils schon auf dem Breakout-Board 10K Pullups haben, und da sind die resultierenden 5K für 400KHz Clock ein bisschen knapp. Ich habe aber solche Konstellationen auch schon problemlos mit 400KHz betrieben.
Tom schrieb: > Was sagt euch die Darstellung? Die ist einwandfrei, die Pullups sind schön zu erkennen. 2,2k ist ein guter Wert, der die max 3mA des I2C-Standards einhält. Es bringt nichts, den Pullup kleiner zu wählen. Nur mit Bus-Extender (P82B715) darf man kleiner werden. Das leichte Übersprechen dürfte vom gemeinsamen GND zum Oszi herrühren, ist also nur ein Meßfehler.
Hallo, Ok ich dachte mit "die von nicht ausreichend entkoppelten Treiberchips" wäre was an den Signalleitungen gemeint. Die Spannungsanschlüsse an den ICs haben jeweils 100n Kondensatoren. Elkos habe ich nicht auf der Platine, da die so große Leckströme bei meinem batteriebetriebenem Gerät hatten, dafür zwei größere MLCCs. Ich habe nochmal versucht genau die Anfangssequenz abzupassen und es scheint, als ob die Datenleitung etwas einbricht (viel ist es nicht von 3.3V auf ca 3V), aber daraufhin habe ich das Kabel vom Netzteil zur Platine getauscht und es scheint jetzt zuverlässig anzugehen
AtariST schrieb: > Ich sehe die Störungen als Übersprechen zwischen SDA und SCL. Vielleicht > ist der Leiterbahnabstand zu gering. Oder es ist nur 1 der beiden Masseklemmen irgendwo an GND angeschlossen. Oder die Masse ist ungünstig geführt. Oder sonst was... > und es scheint jetzt zuverlässig anzugehen Wenn irgendwas "scheint", dann bestenfalls die Sonne. Aber eine elektronische Schaltung sollte nicht nur "scheinbar zuverlässig" sein. Tom schrieb: > Mit einem Oszi sieht man das ja erst überhaupt noch aus einem ganz > anderen Blickwinkel. Ganz meine Worte. Und dann ist es wichtig, den Tastkopf richtig zu verwenden. Eine Massefeder am Tastkopf (Stichwort für Google) wäre ideal. Alles, was davon abweicht, macht die Sache schlechter. Und mein Geheimtipp, wo auch viele große Augen machen: miss Masse gegen Masse. Ja, genau: die Masseklemme links unten an die Masse und die Tastkopfspitze rechts oben an die Masse. Was siehst du? Ein Rauschen um +-0mV? Gut! Oder hektische Aktivität im 500mV Bereich? Übel!
:
Bearbeitet durch Moderator
Hallo beide Masseklemmen direkt vorne am Tastkopf waren direkt mit der Platine am gleichen Punkt verbunden
Tom schrieb: > ich habe gerade das erste mal ein DSO bzw MSO in der Hand. Dies teste > ich gerade an einer Schaltung bei der ein SSD1306 OLED nicht immer > zuverlässig initialisiert wird... Naja, man misst nicht mit 1:10-Tastkopf, wenn es nicht nötig ist. Und wenn doch, sagt man dem Oszi wenigstens, dass man einen solchen Tastkopf dran hat, damit die Darstellung der Pegel der Realität entspricht. > Nun ist das Clock Signal relativ abgerundet am Anfang und auf dem Data > Signal sind auch Störungen(?) vorhanden. Wenn man mal die Pegel mit 10 multpliziert, sind das für I2C sehr gute Signale. Die leichte Rundung an der steigenden Flanke ist völlig normal für OpenDrain. Die paar lächerlichen Störungen sind durch Übersprechen zwischen den beiden Signalen problemlos erklärbar und so gering, dass sie keine Rolle spielen sollten. > einer Schaltung bei der ein SSD1306 OLED nicht immer > zuverlässig initialisiert wird Software-Problem. Sehr wahrscheinlich irgendwelche Timing-Constraints verdaddelt. Wetten?
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.